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
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 ‐