Pascal - operatory

Operator to symbol, który mówi kompilatorowi, aby wykonał określone operacje matematyczne lub logiczne. Pascal dopuszcza następujące typy operatorów -

  • Operatory arytmetyczne
  • Operatorzy relacyjni
  • Operatory boolowskie
  • Operatory bitowe
  • Ustaw operatory
  • Operatory łańcuchowe

Omówmy kolejno operatory arytmetyczne, relacyjne, boolowskie i bitowe. Później omówimy operatory zbiorów i operacje na łańcuchach.

Operatory arytmetyczne

Poniższa tabela przedstawia wszystkie operatory arytmetyczne obsługiwane przez Pascala. Przyjmij zmiennąA posiada 10 i zmienną B mieści 20, a następnie -

Pokaż przykłady

Operator Opis Przykład
+ Dodaje dwa operandy A + B da 30
- Odejmuje drugi operand od pierwszego A - B da -10
* Mnoży oba operandy A * B da 200
/ Dzieli licznik przez mianownik B / A da 2
% Operator modułu i reszta po dzieleniu całkowitoliczbowym B% A da 0

Operatorzy relacyjni

Poniższa tabela przedstawia wszystkie operatory relacyjne obsługiwane przez Pascala. Przyjmij zmiennąA posiada 10 i zmienną B mieści 20, a następnie -

Pokaż przykłady

Operator Opis Przykład
= Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. (A = B) nie jest prawdą.
<> Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. (A <> B) jest prawdą.
> Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. (A> B) nie jest prawdą.
< Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <B) jest prawdą.
> = Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A> = B) nie jest prawdą.
<= Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <= B) jest prawdą.

Operatory boolowskie

Poniższa tabela przedstawia wszystkie operatory boolowskie obsługiwane przez język Pascal. Wszystkie te operatory działają na operandach boolowskich i dają wyniki boolowskie. Przyjmij zmiennąA jest prawdziwe i zmienne B ma fałsz, więc -

Pokaż przykłady

Operator Opis Przykład
i Nazywany operatorem logicznym AND. Jeśli oba operandy są prawdziwe, warunek staje się prawdziwy. (A i B) jest fałszem.
i wtedy Jest podobny do operatora AND, jednak gwarantuje kolejność, w jakiej kompilator ocenia wyrażenie logiczne. Operandy od lewej do prawej i po prawej są oceniane tylko wtedy, gdy jest to konieczne. (A, a następnie B) jest fałszem.
lub Nazywany operatorem logicznym OR. Jeśli którykolwiek z dwóch operandów jest prawdziwy, warunek staje się prawdziwy. (A lub B) jest prawdą.
albo Jest podobny do logicznego OR, jednak gwarantuje kolejność, w jakiej kompilator ocenia wyrażenie logiczne. Operandy od lewej do prawej i po prawej są oceniane tylko wtedy, gdy jest to konieczne. (A lub B) jest prawdą.
nie Nazywany operatorem Boolean NOT. Służy do odwracania stanu logicznego argumentu. Jeśli warunek jest prawdziwy, wówczas operator logiczny NOT sprawi, że będzie fałszywy. nie (A i B) jest prawdą.

Operatory bitowe

Operatory bitowe pracują na bitach i wykonują operacje bit po bicie. Wszystkie te operatory działają na operandach całkowitych i dają wyniki w postaci liczb całkowitych. Tabela prawdy dla bitowych i (&), bitowych lub (|) i bitowych nie (~) jest następująca -

p q p & q p | q ~ p ~ q
0 0 0 0 1 1
0 1 0 1 1 0
1 1 1 1 0 0
1 0 0 1 0 1

Załóżmy, że A = 60; i B = 13; teraz w formacie binarnym będą wyglądać następująco -

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A ^ B = 0011 0001

~ A = 1100 0011

W poniższej tabeli wymieniono operatory bitowe obsługiwane przez Pascal. Załóżmy, że zmienna A zawiera 60, a zmienna B 13, a następnie:

Pokaż przykłady

Operator Opis Przykład
& Operator binarny AND kopiuje trochę do wyniku, jeśli istnieje w obu operandach. (A i B) da 12, czyli 0000 1100
| Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek operandzie. (A | B) da 61, czyli 0011 1101
! Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek operandzie. To samo co | operator. (A! B) da 61, czyli 0011 1101
~ Operator dopełniacza binarnego jest jednoargumentowy i powoduje „odwracanie” bitów. (~ A) da -61, czyli 1100 0011 w postaci uzupełnienia do 2 ze względu na liczbę binarną ze znakiem.
<< Binarny operator przesunięcia w lewo. Wartość lewego operandu jest przesuwana w lewo o liczbę bitów określoną przez prawy operand. A << 2 da 240, czyli 1111 0000
>> Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. >> 2 da 15, czyli 0000 1111

Należy pamiętać, że różne implementacje Pascala różnią się operatorami bitowymi. Free Pascal, kompilator, którego tutaj użyliśmy, obsługuje jednak następujące operatory bitowe -

Operatorzy Operacje
nie Bitowe NIE
i Bitowe i
lub Bitowe OR
xor Wyłączne OR bitowe
shl Przesunięcie bitowe w lewo
shr Przesunięcie bitowe w prawo
<< Przesunięcie bitowe w lewo
>> Przesunięcie bitowe w prawo

Pierwszeństwo operatorów w Pascalu

Pierwszeństwo operatorów określa grupowanie terminów w wyrażeniu. Ma to wpływ na sposób oceny wyrażenia. Niektórzy operatorzy mają wyższy priorytet niż inni; na przykład operator mnożenia ma wyższy priorytet niż operator dodawania.

Na przykład x = 7 + 3 * 2; tutaj x ma przypisane 13, a nie 20, ponieważ operator * ma wyższy priorytet niż +, więc najpierw jest mnożony przez 3 * 2, a następnie sumowany do 7.

Tutaj operatory o najwyższym priorytecie pojawiają się na górze tabeli, a operatory o najniższym priorytecie - na dole. W wyrażeniu najpierw zostaną ocenione operatory o wyższym priorytecie.

Pokaż przykłady

Operator Precedens
~ nie, Najwyższa
*, /, div, mod i, &
|,!, +, - lub,
=, <>, <, <=,>,> =, in
albo jeszcze, a potem Najniższa