ReWiA 2.0 html manual
-------------------------- Wyrażenia arytmetyczne ---------------------------
Jako wartość prawie każdego parametru w dowolnej komendzie, zamiast liczby
lub tekstu, można podać wyrażenie arytmetyczne. Składają się na nie zmienne
różnych typów, operatory jedno i dwuargumentowe, funkcje oraz nawiasy.
Załóżmy, że chcemy obliczyć iloczyn dwóch liczb. W tym celu wystarczy napisać
(ReWiA z powodzeniem może służyć jako podręczny kalkulator z funkcjami) :
PRINT 123456*7654.34e2
Gdy nie pamiętamy wartości liczby e, to piszemy :
PRINT exp(1)
Operator podstawienia jest zrealizowany jak w języku C, tzn. oprócz
podstawienia wartości pod zmienną, zwraca jako wynik podstawioną wartość. Tak
więc linia :
PRINT %x=3*3+4*4
spowoduje podstawienie liczby 25 jako wartość zmiennej %x, a następnie jej
wydrukowanie. Możliwe są wielokrotne podstawienia, np. po wykonaniu linii :
PRINT %x=1.89+(%y=cos(0)+56)
zmienna %x otrzyma wartość 58.89, a zmienna %y wartość 57. Operatory mają
zróżnicowane priorytety wiązania parametrów. Dla przykładu, operator mnożenia
ma wyższy priorytet niż operator dodawania, co powoduje, że wynikiem wyrażenia
:
2+3*4
jest liczba 14. Podobnie w wyrażeniu :
1:2:%x=45.6
wartość 45.6 zostanie podstawiona nie pod zmienną %x a pod punkt o adresie
1:2:%x, gdyż operator adresowy ':' ma wyższy priorytet wiązania argumentów.
Kolejność wiązania argumentów można zmienić nawiasami. Dla przykładu powyżej
aby wartość 45.6 była podstawiona pod zmienną należy napisać :
1:2:(%x=45.6)
Ogólnie można stwierdzić, że najwyższy priorytet mają funkcje, potem
operatory jednoargumentowe (za wyjątkiem not), na końcu operatory
dwuargumentowe. W przypadku operatorów o jednakowym priorytecie wyrażenia są
one obliczane od lewej do prawej strony (wiązanie lewostronne) za wyjątkiem
operatorów podstawienia, które muszą być obliczane od prawej do lewej. Tak
więc wyrażenia :
3e200*3e200*3e-200
nie da się obliczyć, gdyż najpierw będzie liczony iloczyn 3e200*3e200 co
spowoduje wystąpienie nadmiaru zmiennopozycyjnego (zakres -1e308 do 1e+308).
Przy pisaniu wyrażeń należy zwracać uwagę na następujące ograniczenia :
- w wyrażeniach nie są dozwolone spacje (chyba, że użyte jako wartość
tekstów, np. "ala ma kota")
- długość tekstów jest ograniczona do 64 znaków. Poza tym wiele komend
dodatkowo ogranicza długość dozwolonych tekstów (np. HEADER, FDTITLE).
- ponieważ nie są dozwolone spacje każdy operator którego nazwa składa się
z liter (np. not, or, and) musi mieć argumenty wzięte w nawiasy, np.
not(6)or(7)
Zobacz też :
Lista dostęnych funkcji w wyrażeniach
Lista dostęnych operatorów w wyrażeniach