16.06.2015 Views

ForthLogic inst prog H P.1.2 120113.pdf - F&F

ForthLogic inst prog H P.1.2 120113.pdf - F&F

ForthLogic inst prog H P.1.2 120113.pdf - F&F

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Instrukcja <strong>prog</strong>ramowania w języku <strong>ForthLogic</strong> wersja <strong>P.1.2</strong><br />

FOVER A, B, C ‐‐‐> A, B, C, B<br />

FROT A, B, C ‐‐‐> B,C,A<br />

FSWAP A, B, C ‐‐‐> A, C, B<br />

Do pracy z dowolnym elementem stosu matematycznego służą słowa:<br />

FPICK (wziąć) ‐ powiela n dany element stosu matematycznego (licząc od zera) i kładzie go na szczyt stosu (0 FPICK =<br />

FDUP; 1 FPICK = FOVER).<br />

FROLL (obrócić) ‐ przestawia n górny element stosu matematycznego (licząc od zera) na szczyt stosu zgodnie z ruchem<br />

wskazówek zegara (2 FROLL = FROT; 1 FROLL = FSWAP; 0 FROLL jest „pustą” operacją).<br />

FPICK An,An‐1,...Ao,n ‐‐‐> An,An‐1,...Ao,An<br />

FROLL An,An‐1,...Ao,n ‐‐‐> An‐1,...Ao,An<br />

Aby „zobaczyć” górny element w stosie matematycznym stosowane jest słowo „F.” (kropka) lub FE. (FLOAT ENGINEER ‐<br />

kropka):<br />

‐ F. (FLOAT kropka) ‐ zdejmuje górny element ze stosu matematycznego, wprowadza go do bufora wyjściowego i drukuje<br />

na terminalu jako liczbę rzeczywistą w formacie z sześcioma znakami po przecinku (bez początkowych zer i ze znakiem<br />

minus, jeśli jest to liczba ujemna).<br />

‐ FE. (FLOAT ENGINEER ‐ kropka) ‐ zdejmuje górny element ze stosu matematycznego, wprowadza go do bufora<br />

wyjściowego i drukuje na terminalu jako liczbę w postaci wykładniczej (w notacji naukowej), np. ‐1,234E‐02; 1,98E+12, z<br />

sześcioma znakami po przecinku (bez początkowych zer i ze znakiem minus, jeśli jest to liczba ujemna).<br />

Aby "zobaczyć" zawartość obu stosów nie zmieniając ich stanu, stosujemy słowa pomocnicze .S (dla stosu danych) i .FS (dla<br />

stosu matematycznego), które odpowiednio drukują na terminalu zawartość stosu danych i stosu matematycznego (w<br />

nawiasach kwadratowych []). Górne znaczenia na stosie znajdują się po prawej stronie. Znaczenia ze stosu<br />

matematycznego drukowane są w postaci liczb wykładniczych z 6 znakami po przecinku.<br />

Precyzję przedstawienia liczb przy wydruku (czyli ilość cyfr po przecinku) można ustalić za pomocą systemowej zmiennej<br />

FPREC!, która domyślnie jest równa 6. Dla ustanowienia nowego znaczenia dla systemowej zmiennej FPREC istnieje słowo<br />

FPREC!, które ze szczytu stosu danych zdejmuje liczbę, która stanowi liczbę drukowanych cyfr po przecinku (zakres 0÷6).<br />

Przykład: 2 FPREC! ustanawia precyzję 2, co znaczy, że liczby ze stosu matematycznego będą drukowane z dokładnością<br />

do 2 cyfr po przecinku. Jeżeli precyzja jest równa 0, to oznacza brak cyfr po przecinku w ogóle (przekształcenie do liczby<br />

całkowitej). Uwaga! Po zaniku napięcia zasilania i ponownym starcie fort‐system kasuje ustawiona wartość precyzji i<br />

powraca do domyślnej (6).<br />

Aby „poznać” liczbę elementów na stosie danych i matematycznym, stosujemy słowa DEPTH i FDEPTH.<br />

‐ DEPTA kładzie na szczyt stosu danych liczbę elementów na tym stosie;<br />

‐ FDEPTH kładzie na szczyt stosu danych liczbę elementów na stosie matematycznym.<br />

DEPTH An,An‐1,...,A1 ‐‐‐> An,An‐1,...,A1,n<br />

FDEPTH F:An,An‐1,...,A1 ‐‐‐> F:An,An‐1,...,A1<br />

‐‐‐> An,An‐1,...,A1,n<br />

Wymienione słowa pracują z elementami, które już znajdują się na stosie. A jak dodać element na stos? Język <strong>ForthLogic</strong><br />

ma następującą zasadę domyślną: jeżeli forth‐system nie zna wprowadzonego słowa, to przed zawiadomieniem<br />

użytkownika o błędzie rozpatrzy to słowo jako zapis liczby. Jeżeli słowo składa się z samych cyfr z ewentualnym<br />

początkowym znakiem minus, to błędu nie ma – jako rozpoznane kładzie na szczyt stosu danych. Jeśli słowo składa się z<br />

cyfr rozdzielonych przecinkiem (.) z ewentualnym początkowym znakiem minus lub liczby w postaci liczby wykładniczej (za<br />

pomocą liter e albo E i możliwym znakiem minus eksponenta) to kładzie je na szczyt stosu matematycznego.<br />

Dla bezpośredniego przenoszenia liczb z jednego stosu na drugi służą słowa D>F i F>D:<br />

‐ Słowo D>F zdejmuje górne znaczenie ze szczytu stosu danych i przenosi na szczyt stosu matematycznego z odpowiednim<br />

przekształceniem na liczbę zmiennoprzecinkową (5 ‐> 5.000000).<br />

‐ Słowo F>D zdejmuje górne znaczenie ze szczytu stosu matematycznego i przenosi na szczyt stosu danych z<br />

zaokrągleniem do liczby całkowitej.<br />

‐ 13 ‐

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!