циклу Паскаля з постусловіем
: = 1; k: = 0;: = y * 3;: = k +1; y> M;
Проте неважко переконатися в тому, що при M <1 буде отриманий неправильний результат k = 1, тоді як повинно бути отримано k = 0: в цьому випадку попередньо сформований значення k = 0 є остаточним результатом і дії , передбачені в циклі, виконуватися не повинні.
Для завдання подібного роду обчислювальних процесів, коли число повторень циклу заздалегідь невідомо і дії, передбачені в циклі, можуть взагалі не виконуватися, і служить оператор циклу з передумовою. Цей оператор циклу має в Паскалі наступний вигляд:
B do S,
де while (поки), do (робити, виконувати) - службові слова, В - логічне вираження, S - оператор. Тут оператор S виконується нуль або більше разів, але перед кожним черговим його виконанням обчислюється значення виразу В, і оператор S виконується тільки в тому випадку, коли значення виразу У true. Виконання оператора циклу завершується, коли вираз У вперше приймає значення false. Якщо це значення вираз У приймає при першому ж його обчисленні, то оператор S не виконається жодного разу. p align="justify"> У розглянутій нами задачі правильне значення k при будь-якому значенні М може бути отримано наступним чином:
Приклад коду оператора циклу Паскаля з передумовою
: = 1; k: = 0; y <= M do: = y * 3;: = k +1;;
Оператор циклу Паскаля з передумовою можна вважати найбільш універсальним - з використанням таких операторів можна задати і циклічні процеси, що визначаються операторами циклу з параметром і постусловіем.
Відзначимо відмінності та особливості гарного стилю роботи з розглянутими циклічними операторами.
Цикл з передумовою While (поки умова істинно) Цикл з постусловіем Repeat (до істинності умови) 1. До початку циклу повинні бути зроблені початкові установки змінних, керуючих умовою циклу, для коректного входу в цікл2. У тілі циклу повинні бути присутнім оператори, що змінюють змінні умови так, щоб цикл через деяке число ітерацій завершілся3. Цикл працює поки умова істинно (поки True) 3. Цикл працює поки умова брехливо (поки False) 4. Цикл завершується, коли умова стає помилковим (до False) 4. Цикл завершується, коли умова стає істинним (до True) 5. Цикл може не виконатися жодного разу, якщо початкове значення умови при вході в цикл False5. Цикл обов'язково виконається як мінімум один раз6. Якщо в тілі циклу потрібно виконати більше одного оператора, то необхідно використовувати складовою оператор6. Незалежно від кількості операторів у тілі циклу, використання складеного оператора не требуетсяЦікл з лічильником (з параметром) For В· Початкова установка змінної лічильника циклу до заголовка не потрібно ...