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