Тема 2. Основні поняття мови Паскаль. Стандартні типи даних.  Оператори воду-виводу

Лекція 5

 

Структура розгалуження. Умовний оператор.  Вкладена конструкція

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

 Паскаль допускає використання двох умовних операторів: 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 — якщо необхідно одночасне виконання всіх умов.

Службове слово not виконує заперечення умови, тобто, якщо вона була істиною, то стає хибною і, навпаки, якщо була хибною — стає істиною.

 При написанні програм на мові Паскаль в записі умов можуть використовуватися всі можливі операції відношення (дорівнює, не дорівнює, менше, більше, не більше, не менше тощо). Результат виразу має булівський тип.

Структура вибору, оператор варіанта

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

Відмінність від оператора розгалуження полягає у тому, що кількість можливих альтернативних варіантів може бути значно більшою ніж 2. Вибір варіанта визначається не значенням логічного виразу, а значенням параметра, що є величиною одного із порядкових типів. Загальна структура:

CASE <параметр> OF

 <значення1> : <оператор>;

 <значення2> : <оператор2>;

...

 <значення n> : <оператор n>

END

ELSE <оператор n+1> ;

Параметр може бути або константою, або змінною, або виразом деякого порядкового типу.

Значення 1, 2... – деякі можливі значення відповідного порядкового типу, яких може набувати параметр. В залежності від значень параметра виконується один з операторів. Якщо список значень складається з декількох елементів, то вони перераховуються через кому.

Зафіксовані значення параметрів можуть бути не лише окремими зображеннями відповідного типу, а цілими, інтервальними або переліком декількох значень.

Якщо реальне значення параметра не співпадає ні з жодним значенням, то виконується альтернативна частина else.

Складова частина else <команда n+1> може бути відсутня – тоді матимемо коротку форму команди case. Оскільки вона не обов’язкова, то її відсутність означає не виконання жодної дії.

Дія команди: якщо значення виразу збігається зі значенням з найближчого списку, то виконується відповідна команда, що записана після двокрапки ‘:’, і на цьому виконання команди case закінчується. Якщо ні, то виконується команда після слова else.

 

Оператор безумовного переходу

Для зміни порядку виконання програми і переходу з одного місця програми (з одного рядка) в інший рядок використовують оператор  оператор безумовного переходу.

Оператор безумовного переходу має вигляд:

goto <мітка>;

і означає перейти на оператор з <міткою>.

Мітка оператора – будь-яка кількість букв і цифр, яка повинна починатися з букв, і міститися в адресному рядку.

За міткою ставиться двокрапка.

Обов’язково мітки описуються  в описовій частині після службового слова LABEL.

 

Контрольні запитання:

1.  Що таке розгалуження.

2. Охарактеризуйте вкладену конструкцію.

3. Структура вибору.

4. Правила використання оператора безумовного переходу.