Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова робота1_1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
287 Кб
Скачать
☆

7.5 Оператори переходу

Оператор переходу goto викликає передачу управління оператору, якому передує мітка, вказана в даному операторі переходу.

При використовуванні оператора переходу повинні дотримуватися наступні правила:

1. мітка, яка указується в операторі переходу, повинна знаходитися в тому ж блоці або модулі, що і сам оператор переходу. Іншими словами, не допускаються переходи з процедури або функції або в середину неї.

2. перехід ззовні всередину структурного оператора (тобто перехід на більш глибокий рівень вкладеності) може визивати непередбачувані ефекти, хоча компілятор не видає повідомлення про помилку. Наприклад, ви не повинні переходити в тіло циклу for.

7.6 Структурні оператори

Структурні оператори будуються з інших операторів, порядок виконання яких повинен бути послідовним (складові оператора і оператори над записами), визначуваним умовною передачею управління (умовні оператори) або що повторюється (оператори циклу).

7.7 Складові оператори

Складові оператори задають порядок виконання операторів є їх елементами. Вони повинні виконуватися в тому порядку, в якому вони записані. Складові оператори обробляються, як один оператор, що має вирішальне значення там, де синтаксис Паскаля допускає використовування тільки одного оператора. Оператори полягають в обмежувачі begin і end, і відділяються один від одного крапкою з комою.

Наведемо приклад складового оператора:

begin

Z := X;

X := У;

У := Z;

end;

7.8 Умовні оператори

Умовні оператори дозволяють вибрати для виконання один з складових операторів (або не вибрати жодного).

7.8.1. Оператор умови (if)

У виразі повинен виходити результат, стандартний, що має булевий тип. Якщо результатом виразу є істинне значення (True), то виконується оператор, наступний за ключовим словом then.

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

Синтаксична неоднозначність, що виникає в конструкції:

if e1 then e2 else e3

дозволяється шляхом наступної інтерпретації цієї конструкції:

if e1 then

begin

if e2 then

s1

else

s2

end

В загальному випадку ключове слово else зв'язується з найближчим ключовим словом if, яке ще не пов'язане з ключовим словом else.

Наведемо два приклади оператора if:

if X < 1.5 then

Z := X+Y

else

Z := 1.5;

if P1 <> nil then

P1 := P1^.father;

7.8.2. Оператор варіанту (case)

Оператор варіанту (case) складається з виразу (переключателя) і списку операторів, кожному з яких передує одна або більш констант (вони називаються константами вибору) або ключове слово else. Перемикач (селектор) повинен мати порядковий тип (розміром в байт або слово). Таким чином, рядковий тип і довгий цілий тип є неприпустимими типами перемикача. Все константи вибору повинні бути унікальними і мати порядковий тип сумісний з типом перемикача.

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

Наведемо деякі приклади оператора варіанту:

case Operator

plus: X := X+Y;

minus: X := X-Y;

times: X := X*Y;

end;

case I

0, 2, 4, 6, 8: Writeln(' Парна цифра');

1, 3, 5, 7, 9: Writeln('Не парна цифра');

10..100: Writeln('Між 10 і 100');

end;