В мові Pascal присутній ряд операцій для роботи з логічним типом даних – boolean.
Логічна змінна може приймати тільки два значення – True(істине) або False(хибне).
Операції порівняння
Порівняння – це прості умовні вирази, які порівнюють два значення та повертають True або False.
Free Pascal підтримує такі операції порівняння:
Рівно = (еквівалент)
Повертає True, якщо порівнювані об’єкти рівні, в іншому випадку повертає False.
Не рівно <>
Повертає True, якщо порівнювані об’єкти не рівні, в іншому випадку повертає False.
Більше >
Повертає True, якщо перше значення більше за друге, інакше – False.
Більше рівне >=
Повертає True, якщо перше значення більше рівне другому, інакше – False.
Менше <
Повертає True, якщо перше значення менше за друге, інакше – False.
Менше рівно <=
Повертає True, якщо перше значення менше чи рівне другому, інакше – False.
Приклад програми з операціями порівняння:
program Compare;
var
x, y : integer;
begin
x := 7;
y := 42;
writeln(x = y); //Хибність
writeln(x <> y); //Істина
writeln(x > y); //Хибність
writeln(x < y); //Істина
readln;
end.
За допомогою операцій порівнянн можна порівнювати різні типи даних – числа, символи, рядки, логічні значення, однак змінні, що порівнюються повинні бути одного і того ж типу даних.
Логічні операції
Для складних условних конструкцій використовуються логічні операції. В Паскалі підтримуються наступні логічні операції: and, or, not, xor.
Логічне заперечення not
Повертає True, якщо вираз рівний False, в іншому випадку повертає True.
Логічне множення and (конюнкція)
Перший операнд | Другий операнд | Результат операції and |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Де 0 – False, 1 – True
Логічне додавання or (дизюнкція)
Перший операнд | Другий операнд | Результат операції or |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Виключне або xor (строга дизюнкція)
Перший операнд | Другий операнд | Результат операції xor |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Логічні операції застосовуються не тільки до значень типу boolean та логічних виразів. Їх можна застосовувати до числових значень. При цьому вони працюють з представленням чисел в двійковій системі. Оскільки операції працюють з бітами числа, їх також називають битовими операціями.
Приклад бітових операцій:
program BitOperation;
var
a, b, c : Int8;
begin
a := not 120; //a = -121
b := 30 and 21; //b = 20
c := 42 or 21; //c = 63
writeln('a = ', a);
writeln('b = ', b);
writeln('c = ', c);
readln;
end.
not(17010) = not(011110002) = 100001112 = -12110
3010 and 2110 = 000111102 and 000101012 = 000101002 = 2010
4210 or 2110 = 001010102 and 000101012 = 001111112 = 6310
Приорітет операцій
- Найбільший приорітет має оператор not;
- Наступний по приорітету and;
- Потім виконується or;
- В кінці виконуються оператори поріняння: <, >, <=, >=, =, <>.