Лекційний матеріал:
Структурні оператори являють собою
угрупування, побудовані з інших операторів за строго визначеними правилами. Усі
структурні оператори підрозділяються на три групи:
· складені;
·
умовні;
· повтору.
Складений оператор являє собою групу з
довільного числа операторів, відділених один від одного крапкою з комою, і
обмежену операторними дужками begin і end.
Формат опису:
begin
< оператор >;
...;
<
оператор >;
end;
Складений оператор сприймається, як єдине ціле, і може знаходитися в
будь-якому місці програми.
Умовні оператори забезпечують
виконання або невиконання деякого оператора, групи операторів або блока в
залежності від заданих умов. Використовуються умовні оператори в таких
алгоритмах, де можливі декілька варіантів розв'язання задачі в залежності від
початкових умов.
Паскаль допускає використання двох умовних операторів:
if та case.
Умовний оператор (команда розгалуження) є одним із
самих поширених засобів, що змінюють лінійний порядок виконання операторів
програми. Він може приймати одну з наступних форм:
Перша або повна форма:
if < умова >
then
begin
<серія 1>;
end
else
begin
<серія 2>;
end;
Мовою блок-схем ця команда записується у наступному вигляді:
Друга або скорочена форма команди розгалуження:
if < умова >
then
begin
<серія>;
end;
Мовою блок-схем вона записується так:
У повній формі команди умовного переходу виконується <серія 1>,
якщо умова істинна, і <серія 2>, якщо вона хибна. В скороченій
формі - серія виконується тільки у випадку, якщо умова істинна, у протилежному
випадку команда розгалуження закінчується і виконується наступний за нею
оператор.
Один оператор if може входити до складу іншого. У цьому
випадку говорять про вкладеність операторів. При вкладеності операторів кожне
else відповідає then, що йому передує.
Умова - вираз
булівського типу, тобто це речення, на яке можна відповісти "так" або "ні".
Умова може бути простою або складеною. Складені умови утворюються з простих
за допомогою логічних операцій and, or, not, причому
вочевидь, що службове слово or використовується, якщо необхідно
виконання хоча б однієї умови, а службове слово and - якщо
необхідно одночасне виконання всіх умов.
Наприклад, мама дозволила мені піти
погуляти, якщо я "виконав уроки" та (англійською and)
"помив посуд". Тільки при виконанні обох умов мені дозволено піти до
друзів.
Другий приклад: якщо сьогодні "вихідний" або
(англійською or) "святковий день" або
"канікули" або "я хворий", я не піду до школи.
Виконання хоча б однієї з умов приведе до того, що я залишусь вдома і не піду до
школи. Зовсім не обов'язково, щоб одночасно було свято, вихідний, канікули та ще
й хвороба, щоб не треба було йти до школи.
Службове слово not
виконує заперечення умови, тобто, якщо вона була істиною, то стає хибною і,
навпаки, якщо була хибною - стає істиною. Наприклад, якщо на вулиці
не (англійською not) йде дощ, то я залишу вдома
парасольку. В цьому випадку "йде дощ" - умова, яка може бути істиною чи
хибною в залежності від погоди на вулиці. А слово не заперечує цій
умові, тобто робить її хибною, якщо дощ дійсно йде, і, навпаки, істиною, якщо
дощу немає.
Примітка: на цьому етапі можна запропонувати дітям
придумати свої приклади простих та складених умов, причому особливу увагу
звертайте на правильне використання службових слів "та" і
"або".
При написанні програм на мові Паскаль в записі умов
можуть використовуватися всі можливі операції відношення (дорівнює, не дорівнює,
менше, більше, не більше, не менше тощо). Результат виразу має булівський тип.
Наприклад,
(x > 4) and (x < 10)
При x =
5 ця умова буде істиною, а при x = 25 - хибною.
Задача №81.
Обчислити значення логічних виразів.
1) x
< y
При x = -2.5, y = 0.1 ця умова буде істиною
(запропонуйте дітям вибрати такі значення x та y, при яких ця
умова буде хибною).
2) a and not (b = c)
При a
= false, b = false, c = true умова буде
хибною (false), тому що при з'єднанні двох умов службовим словом
and, якщо одна з умов хибна, то й вся умова хибна (зверніть увагу
дітей на те, що це легко запам'ятовується, якщо перевести слово
and українською. Дійсно, якщо хоч одна з умов, поєднаних словом
"та", не являється істиною, то й весь логічний вираз буде
хибним.
3) not (a and b) or b = a
При a
= true, b = false ця умова буде істиною, тому що (a and b)
- хибна (одна з умов хибна); not (a and b) - істина (заперечність
хибності); not (a and b) or b = a - істина (бо, якщо з
двох, поєднаних службовим словом or, умов хоч одна істина, то весь
вираз істинний).
4) not (a and (x < y))
or (x < 0)
При a = true, x = -0.1, y =
0.7 умова буде істиною, тому що друга з умов (х < 0) буде істиною, а
при з'єднанні двох умов службовим словом or достатньо одній з них
бути істиною, щоб весь логічний вираз був істинним.
Задача №82.
Записати у вигляді логічних виразів висловлювання,
наведені нижче:
1) значення х не належить інтервалу (0;1)
(x
<= 0) or (x >= 1)
3) точка M(x, y)
лежить в другій чверті координатної площини
(x < 0) and
(y > 0)
4) точка M(x, y)лежить всередині або
на межі одиничного круга з центром у початку координат
(sqr(x)
+ sqr(y) <= 1)
6) координати дійсного вектора
x(x1, x2, x3) утворюються неспадну послідовність і
всі вони невід'ємні
(x1 <= x2) and (x2 <=
x3) and (x1 >= 0) and (x2 >= 0)
and (x3 >= 0)
8) 3 > B і C > 0,1
(3
> B) and (B >= C) and (C >
0.1)
Задача №84.
Записати за допомогою умовного оператора виконання
дій:
1) дійсне значення х замінити його абсолютною величиною
if
x < 0
then x := -x;
2) менше з двох дійсних значень
x та y (або будь-яке з них, якщо вони рівні) замінити
нулем
if x < y
then x := 0
else y
:= 0;
4) присвоїти змінній x значення 0, якщо її початкове
значення належало інтервалу (0,2)
if (0 <= x) and
(x <= 2)
then x := 0;