Мета: Сформувати навички і вміння застосовувати оператори розгалуження мови Pascal для розв’язування задач. Розвивати логічне мислення при складанні алгоритмів.
Короткі теоретичні відомості.
Умови використовуються в програмах для організації розгалужень і дій, що повторюються. Умовою в мові є логічний вираз - вираз типу Boolean. Булеві значення – це логічні істинностні значення: True (істина) і False (хибність).
Цей тип даних, як і інші прості типи даних, упорядкований. На ньому визначені функції Ord, Succ, Pred.
Таким чином, мають місце наступні співвідношення:
· False < True,
· Ord (False)=0, Ord (True)=1,
· Succ (False)=True, Pred (True)=False.
На множині < False, True > визначені логічні операції.
Операції:
· And - логічна кон’юнкція ( і )
· Or - логічна диз’юнкція ( або )
· Not - логічне заперечення ( ні )
Ці операції визначаються наступними таблицями істинності:
Відношення, що були визначені раніше для простих стандартних типів, є операціями, результат яких має логічний тип. Іншими словами, булеве значення дає будь-яка з операцій відношень : =, < > , <= , < , > , >= , in.
Для типу Boolean визначені стандартні функції, які приймають значення цього типу (логічні значення):
· Odd(Х) { Odd(Х) = True, якщо Х - ціле непарне число; Odd(Х) = False, якщо Х - ціле парне число}
· Eoln(F) { кінець рядка в текстовому файлі}
· Eof(F) { кінець файла}
Функції Eoln(F) і Eof(F) ми розглянемо при вивченні файлів.
Умови можна класифікувати як прості і складені. Прості умови визначені діаграмою:
Складені умови конструюються з простих за допомогою логічних операцій.
Логічні вирази перетворюються за законами логіки висловлювань. Наприклад,
Not((A > 0) And (B <> 0)) <==> Not(A > 0) Or Not(B <> 0) <==> (A <= 0) Or (B = 0)
Перетворення логічних виразів часто призводять до зменшення їх складності і, тим самим, оптимізації програми за часом.
Декілька операторів, які виконуються послідовно, можна об’єднувати в один складений оператор.
Складений оператор передбачає виконання операторів, які в нього входять (компоненти) у порядку їх написання. Службові слова Begin і End грають роль дужок операторів – вони виділяють тіло складеного оператора.
Складений оператор означається діаграмою:
Оператори вибору призначені для виділення зі списку компонент одного-єдиного оператора, який і виконується. Таким чином, оператори вибору реалізують керівну структуру “розгалуження”. У якості оператора вибору у мові визначені умовний оператор і оператор варіанта.
Існують дві форми умовного оператора:
· If < умова > Then < оператор >
· If < умова > Then < оператор > Else < оператор >
Вони відповідають базовим керівним структурам короткого і повного розгалуження. Умова – це вираз типу Boolean.
Синтаксична діаграма умовного оператора має вигляд:
Відзначимо, що наступна конструкція мови, яка складається із вкладених розгалужень, синтаксично двозначна (допускає два різних варіанти синтаксичного аналізу).
If <умова 1> Then If <умова 2> Then <оператор 1> Else <оператор 2>
Для того, щоб усунути цю двозначність, у мові обрано 1-ий варіант інтерпретації у відповідності до правила: роздільнику else відповідає найближчий попередній роздільник then.