ЛОГІЧНІ ВИРАЗИ. ОПЕРАТОР УМОВНОГО ПЕРЕХОДУ.

Попередня сторінка Зміст Задачі Наступна сторінка

При написанні програми, поряд з арифметичними виразами часто використовуються логічні вирази. Без них неможливо обійтися при написанні умовних операторів, а також циклів while та repeat. До складу логічних виразів входять змінні типу boolean, які можуть приймати одне з двох значень: True(істинно), або False(хибно). Над ними визначені логічні операції: And (логічне множення), Or (логічне додавання), Not (логічне заперечення) та Xor (виключне АБО). Якщо P і Q - булеві змінні, то значення Not P, Not Q, P And Q, P Or Q і P Xor Q матимуть вигляд:

P

Q

Not P

Not Q

P And Q

P Or Q

P Xor Q

False

True

False

True

False

False

True

True

True

False

True

False

True

True

False

False

False

False

False

True

False

True

True

True

False

True

True

False


Всі операції відношення: = (дорівнює), <>(не дорівнює), < (менше), >(більше), <=(менше або дорівнює), >=(більше або дорівнює) дають результат типу boolean. Нижче наведені логічні операції в порядку зменшення їх пріоритету, причому операції, записані в одному пункті мають однаковий пріоритет: 1) Not; 2) And; 3) Or, Xor; 4) =, <>, <, >, <=, >=.

Якщо у виразі не використовують круглі дужки, то логічні операції виконуються в порядку зменшення їх пріоритетів. Операції однакового рангу виконуються зліва направо. Для зміни порядку виконання операцій в логічних виразах використовують круглі дужки.

Наприклад, обчислення виразу

(A=B) and (C<=D)

буде виконуватись в такій послідовності: спочатку визначається значення підвиразу A=B, потім підвиразу C<=D і тільки після цього виконується логічна операція And.

Булевий тип визначений так, що False < True. Це означає, що операції відношення можуть бути застосовані не тільки до даних цілого, дійсного та символьного типів, але й до даних булевого типу.

Умовні оператори забезпечують виконання чи невиконання деякого оператора або послідовності операторів в залежності від заданих умов.

Паскаль дозволяє використання двох умовних операторів if і case.

Умовний оператор if є одним із найпоширеніших засобів, що змінює природний порядок виконання програми. Він може приймати одну з наступних форм:

1.if <умова>then <оператор1> else <оператор2>; 
2. if <умова> then <оператор>;

Тут ключові слова if, then, else означають "якщо" , "то", "інакше".
< Умова >
- це логічний вираз, значення якого має булевий тип.
< Оператор >
може бути простим або складним. Складний оператор містить довільну кількість простих операторів розділених крапкою з комою і взятих в операторів дужки begin і end.
В першому випадку, якщо умова істинна, то виконується <оператор 1>, якщо хибна - то <оператор2>.

Приклад.

if A>B then WriteLn (’A більше B’) else WriteLn (’A менше або рівне B’);

В другому випадку , якщо умова істина , то виконується < оператор >, якщо хибна - то наступний оператор після if.

Приклад.

A:=2 ;B:=8; C:=20;
IF A>B THEN C:=A+B;
WriteLn (‘C=’, C:2);

В результаті на екрані з'явиться повідомлення C=20 , оскільки умова A>Bхибна, оператор присвоєння C:=A+B не виконувався.

Один оператор if може входити в склад іншого оператораif. В такому випадку говорять про вкладеність операторів:

if <умова1> then
 if <умова2> then <оператор1> else <оператор2>
else if <умова3> then<оператор3> else <оператор4>; 

При вкладеності умовних операторів if кожне else відповідає тому then, яке безпосередньо йому передує. Тому <оператор3> виконуватиметься, якщо <умова1>=false, <умова2>=true. Конструкція з ступенем вкладеності 2-3 краще уникати із-за їх складності аналізу при відлагодженні програми.



Попередня сторінка Зміст Задачі Наступна сторінка