Wyrażenia 1. Można wykonywać następujące operacje arytmetyczne (operatory): potęgowanie ** mnożenie i dzielenie * / dodawanie i odejmowanie + -

Podobne dokumenty
FORTRAN 90 wykład 4 & 5

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

OBLICZENIA NA DANYCH

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie Delphi obliczenia, schematy blokowe

Cw.12 JAVAScript w dokumentach HTML

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Algorytmika i Programowanie VBA 1 - podstawy

1. Wypisywanie danych

Laboratorium Programowanie Obrabiarek CNC. Nr H7

Wprowadzenie do języka Pascal

Odczyt danych z klawiatury Operatory w Javie

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

Odwrotna Notacja Polska

Podstawowe wyrażenia matematyczne

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Właściwości i metody obiektu Comment Właściwości

Elementy języków programowania

Wstęp do programowania. Różne różności

Liczby zespolone. x + 2 = 0.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wyrażenia arytmetyczne

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawy i języki programowania

C++ wprowadzanie zmiennych

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Podstawy i języki programowania

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Programowanie w języku Java

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

dr inż. Jarosław Forenc

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

4. Funkcje. Przykłady

1 Funkcje elementarne

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Podstawy programowania w języku C i C++

JAVAScript w dokumentach HTML - przypomnienie

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

WYRAŻENIA ALGEBRAICZNE

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

Podstawy programowania C. dr. Krystyna Łapin

Wstęp do programowania

Zmienne, stałe i operatory

Podstawy programowania skrót z wykładów:

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

LICZBY ZESPOLONE. 1. Wiadomości ogólne. 2. Płaszczyzna zespolona. z nazywamy liczbę. z = a + bi (1) i = 1 lub i 2 = 1

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Język C zajęcia nr 11. Funkcje

Warunki logiczne instrukcja if

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Pascal - wprowadzenie

Funkcje Andrzej Musielak 1. Funkcje

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

3. Instrukcje warunkowe

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Stałe oznaczane są słowem kluczowym final. Do stałej wartość można przypisać tylko raz. Dobrą konwencją jest nazywanie stałych wielkimi literami

Języki programowania zasady ich tworzenia

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 4. Karol Tarnowski A-1 p.

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Kształcenie w zakresie podstawowym. Klasa 1

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Języki programowania wysokiego poziomu. PHP cz.2.

Programowanie Komputerów

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Wstęp do informatyki- wykład 2

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Część 4 życie programu

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

1 Podstawy c++ w pigułce.

Stałe i zmienne znakowe. Stała znakowa: znak

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Lab 9 Podstawy Programowania

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Języki i metodyka programowania. Wprowadzenie do języka C

Język ludzki kod maszynowy

Algorytmy i struktury danych. Wykład 4

Cyfrowy zapis informacji

MATERIAŁY DO ZAJĘĆ II

Przeciążanie operatorów

Transkrypt:

Wyrażenia 1 Wyrażenia Analogicznie do trzech typów stałych i zmiennych: numerycznych (w tym: całkowitych, rzeczywistych i zespolonych), logicznych i tekstowych w Fortranie występują trzy grupy wyrażeń: arytmetyczne, logiczne i tekstowe. Wyrażenia arytmetyczne W wyrażeniu arytmetycznym mogą wystąpić następujące elementy (operandy): stałe arytmetyczne (całkowite, rzeczywiste oraz zespolone) zmienne elementy tablic wywołania funkcji Można wykonywać następujące operacje arytmetyczne (operatory): potęgowanie ** mnożenie i dzielenie * / dodawanie i odejmowanie + - Operatory zostały podane w kolejności odpowiadającej ich priorytetom. Jeżeli w wyrażeniu występują operatory o takim samym priorytecie, to: dla potęgowania ** obliczenia wykonuje się w kolejności od prawej strony wyrażenia do lewej, czyli wartość wyrażenia a**b**c oblicza się jako a**(b**c). Jest to oczywiste, jeśli c popatrzy się na tradycyjny zapis b a. dla pozostałych operatorów obowiązuje kolejność od lewej do prawej. Np. wartość wyrażenia a/b*c oblicza się jako (a/b)*c. Nawiasy okrągłe ( ) pozwalają zmienić tę kolejność, np. w wyrażeniu a/(b*c) naturalna kolejność została zaburzona. Uwagi: Można wykorzystywać tylko nawiasy okrągłe. Liczba nawiasów otwierających musi być taka sama jak liczba nawiasów zamykających. Dwa operatory nie mogą wystąpić obok siebie. W związku z tym zapis a*-b jest niepoprawny i należy zastąpić go przez a*(-b). Zabronione są następujące operacje: dzielenie prze zero, podnoszenie zera do ujemnej lub zerowej potęgi. Typ wyniku Każdy operand wyrażenia arytmetycznego (w szczególności stała lub zmienna) posiada typ. Również wartość wyrażenia arytmetycznego posiada typ, a jak wiadomo, z faktem przypisania do określonego typu wiążą się określone konsekwencje. Sprawa jest prosta gdy oba operandy mają ten sam typ. W takim przypadku wynik również ma ten typ. Należy przy tym zwrócić szczególną uwagę przypadek dzielenia całkowitoliczbowego. Dzielenie całkowitoliczbowe Zgodnie z podaną przed chwilą zasadą, jeśli dwa operatory mają typ całkowity, to również wynik operacji, np. dzielenie, ma typ całkowity. Co będzie zatem wynikiem działania 1/3? Skoro musi mieć on typ całkowity, to z całą pewnością nie może być równy 0.3333, bo jest to wartość rzeczywista. W arytmetyce całkowitoliczbowej 1/3 = 0. Podobnie, 9/10=0, -9/10=0,

Wyrażenia 2 11/10=-1. W szczególności wartością wyrażenia a**(1/k), dla k całkowitego i różnego od 1, bez względu na wartość zmiennej a, jest 1 (dlaczego?). W przypadku operatorów różnych typów, typ wyniku jest zgodny z typem tego operandu, który zajmuje wyższą pozycję na liście: comple, double precision, real, integer. W związku z tym, o ile wynik wyrażenia 1/k (przy założeniu, że k jest zmienną całkowitą i różną od 0 oraz 1) był równy 0, to dla wyrażenia 1./k już tak nie jest. Wynika to z zastąpienia stałej całkowitej (1) stałą rzeczywistą (1.), co powoduje zmianę typu wyniku na rzeczywisty. Na marginesie zwracamy uwagę, że zapis a**(1./k) odpowiada k a. Funkcje standardowe Omawianie wyrażeń arytmetycznych jest dobrym momentem do wspomnienia o funkcjach standardowych, nazywanych też funkcjami wbudowanymi (ang. intrinsic). Fortran 90 posiada 113 funkcji wbudowanych, które można podzielić na kilka (nieformalnych) kategorii: Funkcje podstawowe, wśród których z kolei wyróżnia się funkcje matematyczne, numeryczne, znakowe oraz bitowe; Sprawdzające; Przekształcające. Aby funkcja została wykonana należy ją wywoa. Standardowe funkcje matematyczne: zapis w Fortranie sin() cos() tan() asin() acos() atan() abs() sqrt() ep() log() log10() zapis matematyczny sin cos tan arcsin arccos arctan e ln log 10 Obiekt w powyższym zestawieniu pełni rolę argumentu, w języku programowania nazywanego parametrem. Od wartości parametru zależy wartość funkcji. W chwili wywoa nia funkcji wartość parametru musi być znana. Dla powyższych funkcji argumenty muszą mieć typ REAL, DOUBLE PRECISION lub COMPLEX Wszystkie funkcje akceptujące argumenty typu REAL akceptują również argumenty typu DOUBLE PRECISION. Natomiast nie wolno ich wywoływać z parametrami o typie całkowitego. W szczególności wywołanie EXP(1) jest błędne (poprawnie: jest EXP(1.) lub EXP(1d0)); podobnie niepoprawne jest wywołanie SQRT(9) (poprawnie: SQRT(9.), SQRT(9.e0) lub SQRT(0.9d1)). Uwagi: Parametry funkcji trygonometrycznych są podawane w radianach. (1 radian = 180/π stopni). Dla funkcji asin i acos argument musi należeć do przedziału [-1, 1].

Wyrażenia 3 Próba wyznaczenia wartości funkcji dla parametru nie należącego do jej dziedziny zakończy się porażką, czyli błędem wykonania (ang. run time error). Np. błędem zakończy się próba wyznaczenia pierwiastka kwadratowego lub logarytmy z wartości ujemnej. Na marginesie... Funkcje trygonometryczne można wykorzystać do uzyskania wartości π, wiedząc że arctan1 / 4 albo arcsin 0.5 / 6, patrz przykłady programów. Inne funkcje standardowe AINT(a) ANINT(a) CEILING(a) CMPLX(,y) DBLE() DIM(,y) FLOOR(a) INT(a) MAX(a1,a2,a3,...) MIN(a1,a2,a3,...) MOD(a,p) NINT() REAL() Obcięcie do wartości całkowitej; przy czym również wynik ma typ rzeczywisty. Wartością AINT(1.8) jest 1.0, zaś wartością AINT(-1.8) jest 1.0. Wynikiem działania jest najbliższa argumentowi liczba całkowita. Zarówno parametr jak i wynik mają typ rzeczywisty. Wartością ANINT(1.8) jest 2.0, zaś wartością ANINT(-1.8) jest 2.0. Najmniejsza liczba całkowita większa niż lub równa wartości argumentu. Argument ma typ rzeczywisty, zaś wynik ma typ całkowity. Wartością CEILING(1.8) jest 2, zaś wartością ANINT(-1.8) jest 1. Konwersja dwóch wartości rzeczywistych na wartość zespoloną, gdzie jest częścią rzeczywistą a y jest częścią urojoną. Konwersja argumentu (o typie całkowitym, rzeczywistym lub zespolonym) do typu DOUBLE PRECISION. Argumenty muszą mieć typ REAL lub INTEGER. Jeśli >y to wtedy wartością DIM(,y) jest wartość -y. Jeśli <y, wartością DIM(,y) jest 0. Największa liczba całkowita mniejsza niż lub równa wartości argumentu. Argument ma typ rzeczywisty, zaś wynik ma typ całkowity. Wartością FLOOR(1.8) jest 1, zaś wartością FLOOR(-1.8) jest 2. Obcięcie do wartości o typie INTEGER. Obcięcie następuje w stronę zera, wartością INT(0.9) jest 0, wartością INT(-0.9) jest 0. Wartość maksymalna z argumentów. Muszą wystąpić co najmniej dwa argumenty o typie INTEGER lub REAL. Wartość minimalna z argumentów. Muszą wystąpić co najmniej dwa argumenty o typie INTEGER lub REAL. Reszta z dzielenia a/p wyznaczona według wzoru a- INT(a/p)*p. Argumenty muszą mieć typ INTEGER lub REAL, p musi być różne od zera. Zaokrąglenie wartości rzeczywistej do najbliższej wartości całkowitej. Jeśli >0, NINT() wyznacza się jako INT(+0.5). Jeśli <0 to NINT() jest równe INT(- 0.5). Konwersja na typ REAL.

Wyrażenia 4 SIGN(a,b) Wynik jest równy ABS(a)*(b/ABS(b)), co jest równoważne przeniesieniu znaku drugiego argumentu na pierwszy argument. Argumenty mają typ rzeczywisty lub całkowity. Wyrażenia tekstowe W wyrażeniu tekstowym mogą wystąpić następujące elementy (operandy): stałe i zmienne tekstowe podłańcuchy wywołania funkcji tekstowych Dostępna jest tylko jedna operacja, jaką można wykonywać na tekstach; jest nią konkatenacja. Operator konkatenacji oznacza się symbolem //. Konkatenacja polega na zlepianiu ze sobą stałych lub zmiennych tekstowych występujących w wyrażeniu, np. wynikiem 'A'//'la'//' ma kota' jest 'Ala ma kota'. Nawiasy nie mają wpływu na działanie operatora konkatenacji. Podłańcuchy (ang. substring) Podłańcuch jest spójnym fragmentem zmiennej tekstowej. Definiuje się go jako nazwa(pierwszy_znak : ostatni_znak), gdzie wartość pierwszy_znak wskazuje na położenie pierwszego znaku podłańcucha w zmiennej nazwa. Brak tego elementu w definicji podłańcucha jest równoważne podaniu wartości 1. Wartość ostatni_znak wskazuje na ostatni znak w podłańcuchu, a jej brak oznacza, że końce zmiennej i podłańcucha pokrywają się. Jeśli wartością zmiennej tekst jest Ala ma kota to: tekst(5:6) ma tekst( :3) (albo tekst(1:3) Ala tekst (8:) (albo tekst (8:11) kota tekst(:) Ala ma kota Standardowe funkcje tekstowe Oznaczenia: i stała/zmienna całkowita str łańcuch znakowy ch znak Wynikiem jest i-ty znak z tablicy znaków ASCII; wartość ACHAR(i) argumentu musi być z przedziału 0-127. Np. wartością ADJUSTL(str) ADJUSTR(str) ACHAR(113) jest p. Argumentem funkcji jest łańcuch znakowy, zaś wynikiem jest ten sam łańcuch, z którego usunięto spacje wiodące, dopisując je na końcu. Np. wartością ADJUSTL (' ALA') jest 'ALA '. Argumentem funkcji jest łańcuch znakowy, zaś wynikiem jest ten sam łańcuch, z którego usunięto spacje końcowe, dopisując je na początku łańcucha jako spacje wiodące. Np. wartością ADJUSTR ('KOT ') jest ' KOT'.

Wyrażenia 5 Oznaczenia: i stała/zmienna całkowita str łańcuch znakowy ch znak CHAR(i) IACHAR(ch) ICHAR(ch) INDEX(str, substr) LEN(str) LEN_TRIM(str) LGE(str1, str2) LGT(str1, str2) LLE(str1, str2) LLT REPEAT(str,i) TRIM(str) VERIFY(str, set) Wynikiem jest i-ty znak z tablicy porządku leksykograficznego kompilatora; wartość argumentu musi być z przedziału 0-127. Najczęściej wynik jest taki sam jak dla funkcji ACHAR. Argumentem jest pojedynczy znak, zaś wynikiem jest położenie znaku w tablicy znaków ASCII; np. IACHAR( p ) ma wartość 113. Argumentem jest pojedynczy znak, zaś wynikiem jest położenie znaku w tablicy porządku leksykograficznego kompilatora. Najczęściej wynik jest taki sam jak dla funkcji IACHAR. Argumentami są dwa łańcuchy znakowe, str oraz substr, zaś wynikiem jest pierwsze wystąpienie łańcucha substr w łańcuchu str; np. wartością INDEX('galanteria','ala') jest 2. Wynikiem jest długość łańcucha str Wynikiem jest długość łańcucha str z pominic iem spacji końcowych. jest wartość logiczna. Odpowiada relacji większy lub równy. jest wartość logiczna. Odpowiada relacji większy niż. jest wartość logiczna. Odpowiada relacji mniejszy lub równy. jest wartość logiczna. Odpowiada relacji mniejszy niż. konkatenuje łańcuch str i razy; np. wynikiem REPEAT('Aa',3) jest 'AaAaAa'. usuwa końcowe spacje. Argumentami są łańcuchy znakowe, zaś wynikiem jest położenie w łańcuchu pierwszego znaku, który nie znajduje się zmiennej set. Na przykład wartością VERIFY ('ALA','A') jest 2, natomiast wartością VERIFY('ALA','LA') jest 0. Wyrażenia relacji Wyrażenia relacji służą do porównywania wartości dwóch wyrażeń arytmetycznych lub tekstowych. Wynik wyrażenia ma wartość logiczną.true. gdy relacja zachodzi oraz.false. w przeciwnym przypadku. Nie można porównać ze sobą wartości wyrażenia arytmetycznego i tekstowego.

Wyrażenia 6 Elementy wyrażenia relacji (operandami) są: wyrażenia arytmetyczne wyrażenia znakowe Operatory relacji (operandy): Dopuszczalne są dwa równorzędne sposoby zapisywania operatorów relacji. Jeden z nich, literowy, jest zapisem pochodzącymym ze starych wersji języka Fortran; zapis za pomocą symboli matematycznych pojawił się w Fortranie 90..GE. > większe niż.gt. >= większe równe.le. <= mniejsze równe.lt. < mniejsze niż.ne. /= nie równe.eq. == równe Na przykład wartością 5.LT. 10 jest.true., zaś wartością 100.NE.100 jest.false. Uwagi: W jednym wyrażeniu relacji można używać dwóch zapisów. W operatorach dwuznakowych, np. == lub <= nie można umieszczać spacji. Kolejność wykonywania obliczeń podczas wyznaczania wartości operatora relacji jest taka, że najpierw wyznaczane są wartości porównywanych wyrażeń. Dlatego wartością wyrażenia relacji 3+1.GT. 2 jest.true. Sposób zapisu wartości rzeczywistych w pamięci komputera oraz związany z tym fakt, że wartości te są reprezentowane w sposób przybliżony sprawia, że relacja.eq. lub.ne. w odniesieniu do wartości rzeczywistych nie ma realnego znaczenia. Zamiast relacji.eq.y zaleca się stosować porównanie w postaci: abs(-y).lt.eps, gdzie eps jest zmienną o małej wartości. W przypadku porównywania ze sobą łańcuchów znakowych obowiązuje kolejność alfabetyczna zgodna z kolejnością znaków ASCII. Wartością wyrażenia OLA.GT. ALA jest.true. Gdy porównywane łańcuchy mają różną długość, krótszy z nich dla celów porównania rozszerzany do rozmiaru dłuższego poprzez dopisanie na końcu odpowiedniej liczby spacji. Wyrażenia logiczne Wartość wyrażenia logicznego ma typ logiczny. Wyrażenie jest prawdziwe (.TRUE.) lub fałszywe (.FALSE.). W wyrażeniu logicznym mogą wystąpić następujące elementy (operandy): stałe i zmienne logiczne; elementy tablic logicznych; wywołania funkcji logicznych; wyrażenia logiczne. Wyrażenia logiczne konstruuje się w oparciu następujące operatory logiczne:.not. negacja.and. koniunkcja.or. alternatywa.eqv. tożsamość.neqv. nie tożsamość

Wyrażenia 7 Operatory zostały podane według ich priorytetów, czyli kolejności w jakiej wykonywane są działania podczas wyznaczania wartości wyrażeń logicznych. Kiedy dwa operatory mają ten sam priorytet, to najpierw wykonywana jest operacja znajdująca się z lewej strony; Operator.NOT. poprzedza argument; pozostałe operatory wymagają podania dwóch argumentów w kolejności: argument1 operator agrument2. Wynik działania operatorów logicznych podaje następująca tabela: a b.not.a a.and.b a.or.b a.eqv.b a.neqv.b.true..true..false..true..true..true..false..true..false..false..false..true..false..true..false..true..true..false..true..false..true..false..false..true..false..false..true..false. Jeżeli w wyrażeniu występują operatory arytmetyczne, znakowe, relacji oraz logiczne to obowiązuje następująca kolejność wykonywania działań: operacje arytmetyczne i znakowe (wyrażenia arytmetyczne i tekstowe) wartości wyrażeń relacji (wyrażenia relacji) operacje logiczne. Umieszczenie w wyrażeniu nawiasów okrągłych pozwala zmienić tę kolejność.