Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
2. Комп'ютер сам вирішить,
що робити і чого не робити
2.1. Оператори розгалуження та складений
Майже кожний, хто провчився в школі років вісім, пам'ятає, як обчислювати дійсні корені квадратного рівняння ax2+bx+c=0 (природно, за умови a 0):
(1) прочитати коефіцієнти a, b, c;
(2) обчислити d=b2-4ac;
(3) якщо d>0, то обчислити x1=(-b- )/(2a), x2=(-b+ )/(2a);
у противному випадку
якщо d=0, то обчислити x1=-b/(2a),
інакше нічого не робити.
Майже кожний розуміє, що він задає три різні послідовності дій. Яка саме виконується, залежить від конкретних значень a, b, c. Пункт (3) алгоритму задає перевірку, яка з умов d>0, d=0 або d>0 справджується, і залежно від цього ті або інші дії.
Умову будемо розуміти як фразу, що може бути або істинною, або хибною. У мові Паскаль умову можна відтворити бульовим виразом, як правило, із змінними. Його значеннями можуть бути true або false – це залежить від значень змінних. Звичайно, умови можуть бути тотожно істинними або тотожно хибними – вони відтворюються виразами, швидше за все, без змінних. Втім, вирази z or not z і z and not z мають значення відповідно true і false незалежно від значення z.
Перевірка умови при виконанні програми – це обчислення відповідного бульового виразу.
Перевірка умов і виконання залежно від цього різних дій задається в мові Паскаль операторами розгалуження. Вони мають дві форми – повну та скорочену. Оператор розгалуження в повній формі має вигляд:
if умова then оператор else оператор
Ключові слова if, then, else – це англійські "якщо", "то", "інакше". Для полегшення читаності програми оператор розгалуження часто записують "східцями":
if умова
then
оператор
else
оператор
або