ЛОГІЧНІ ВИРАЗИ. ОПЕРАТОР УМОВНОГО ПЕРЕХОДУ.
![]() |
Зміст | Задачі | ![]() |
При написанні програми, поряд з арифметичними виразами часто використовуються логічні вирази. Без них неможливо обійтися при написанні умовних операторів, а також циклів 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 краще уникати із-за їх складності аналізу при відлагодженні програми.