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

Лекція 7

 

Ітераційні цикли. Вкладені циклічні структури

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

 Відзначимо відмінності та особливості хорошого стилю роботи з розглянутими циклічними операторами.

Цикл з передумовою While (поки умова істинна)

Цикл з післяумовою Repeat (до істинності умови)

 1. До початку циклу повинні бути зроблені початкові установки змінних, керуючих умовою циклу, для коректного входу в цикл

 2. У тілі циклу повинні бути присутніми оператори, що змінюють змінні умови так, щоб цикл через деяке число ітерацій завершився

 3. Цикл працює поки умова істинна (поки True)

 3. Цикл працює поки умова помилкова (поки False)

 4. Цикл завершується, коли умова стає помилковим (до False)

 4. Цикл завершується, коли умова стає істинним (до True)

 5. Цикл може не виконатися жодного разу, якщо початкове значення умови при вході в цикл False

 5. Цикл обов'язково виконається як мінімум один раз

 6. Якщо в тілі циклу потрібно виконати більше одного оператора, то необхідно використовувати складений оператор

 6. Незалежно від кількості операторів у тілі циклу, використання складеного оператора не потрібно

Цикл з лічильником (з параметром) For

 · Початкова установка змінної лічильника циклу до заголовка не потрібно

 · Зміна в тілі циклу значень змінних, що стоять у заголовку не допускається

 · Кількість ітерацій циклу незмінно і точно визначається значеннями нижньої і верхньої меж і кроку збільшення

 · Нормальний хід роботи циклу може бути порушений оператором goto або процедурами Break і Continue

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

Оператор, який виконується в циклі, сам може бути циклом. Це відноситься до всіх видів циклів. У результаті ми отримуємо вкладені цикли.  Механізм роботи вкладених циклів зручніше за все розглянути на прикладі вкладених циклів з параметром. Нехай нам потрібно описати роботу електронного годиника, починаючи з моменту  0 годин, 0 хвилин,   0 секунд. Значення хвилин стане рівним 1 тільки після того, як секунди «пробіжать» всі послідовні значення від 0 до 59.  Години змінять своє значення на 1 тільки після того, як хвилини «пробіжать» всі послідовні значення від 0 до 59. Таким чином, виведення всіх значень часу від початку доби до кінця доби може бути представлений наступним фрагментом програми:

 For h: = 0 to 23 do

 For m: = 0 to 59 do

 For s: = 0 to 59 do

 Writeln (h ,':', m ,':', s);

 Для зручності реалізації циклічних структур на Паскалі в останніх версіях мови введені, застосовувані всередині циклів. Вони розширюють можливості використання циклів і покращують структуру програми.

 У процесі виконання тіла циклу до повного завершення циклу можуть виникнути додаткові умови, що вимагають завершення циклу. У цьому випадку цикл може бути припинений оператором break.

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

 

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

1. Що таке вкладені циклічні структури.

2. Охарактеризуйте оператори break та continue.