Параметр циклу може бути лише змінною цілочисельного типу.
Параметр циклу змінюється автоматично через одиницю.
Якщо в циклі стоїть to, то параметр циклу збільшується на 1, а якщо downto – то зменшується на 1.
Цикл з передумовою
Інколи при організації циклів постає необхідність перевірити умову виконання циклу, тобто чи взагалі на даному етапі слід виконувати цикл. Такий спосіб організації циклів називають циклом з передумовою. З філософської точки зору і розглянутий в попередньому параграфі цикл можна віднести саме до таких циклів, але ми вже домовились, що виділимо цикли з передумовою в окрему групу.
Знову, приведемо спочатку програмну реалізацію задачі про знаходження суми перших ста натуральних чисел з використанням оператора циклу з передумовою, а потім детально його розглянемо.
Program summa2; { варіант з використанням циклу з передумовою }
var i, sum: integer;
Begin
sum:= 0;
i:= 1; { початкове значення параметра циклу }
While i <= 100 do { цикл з передумовою! }
Begin
sum:= sum + i; { до суми додаємо чергове число }
inc (i); { рівнозначно запису i:= i+1 }
End; { кінець циклу }
Write ('S = ',sum);
Readln;
End.
Розшифруємо нове словосполучення, яке і є початком циклу з передумовою:
While i <= 100 do
перекладається так:
Поки і менше або рівне 100 виконувати
Це і є спосіб організації циклу з передумовою. У загальному випадку цикл з передумовою записується так:
whileзмінна – умова do
На алгоритмічній мові цикл з параметром організовуються наступним чином (в застосуванні до нашої задачі):
поки і <= 100
Пц
Sum:= Sum +i
i:= i+1
Кц
У машинному розумінні цикл розшифровуються так: поки для змінної і виконується задана умова виконувати наступні інструкції. В умовах поставленої нами задачі в приведеній вище програмі розуміється наступне: поки змінна і менша або рівна 100 виконувати операцію додавання до змінної Sum значення змінної і та збільшувати параметр і на 1.
Звертаємо увагу, що в циклах з передумовою значення змінної–параметра (в нашому випадку і) автоматично не змінюється. Тобто, як нам потрібно змінювати параметр – змінну, що відповідає за умову виконання циклу, ми повинні вказувати самостійно у самому циклі. Більше того, якщо ми забудемо змінювати цю змінну в тілі циклу, то такий цикл буде виконуватись “вічно”, якщо до початку циклу змінна відповідала умові виконання циклу. В цьому випадку ми будемо змушені припинити його виконання апаратним шляхом, або знову ж таки при допомозі електрика, який економить електроенергію.
Оскільки в даній задачі ми змінюємо змінну і на одиницю, то даний цикл також виконуються 100 разів, але порахувати кількість разів виконання циклу ми вже не можемо застосовуючи якусь конкретну формулу. В загальному випадку цикл з передумовою може:
n не виконуватись жодного разу;
n виконуватись скінчену кількість разів;
n бути “вічним”.
Параметр циклу ми можемо збільшувати або зменшувати на яку завгодно величину, тобто параметр циклу може бути як цілим так і дробовим числом, або взагалі відноситись до інших типів змінних – логічних, символьних і т.д.
Знову пояснимо логіку машинного мислення при виконанні циклу з передумовою. До початку організації циклу ми присвоюємо значення 0 шуканій сумі і крім того, обов’язково задаємо значення параметра циклу – змінної і. Цикл починається з значення параметру рівного 1, ПЕОМ перевіряє, чи 1<=100, отримує результат “так”, виконує операцію циклу Sum:= Sum +1, в результаті якої значення Sum = 1, збільшує значення параметра і на 1, і стає рівним 2. Знову перевіряється умова 2<=100, отримується результат “так”, виконується операція циклу Sum:= Sum +2, в результаті якої значення Sum = 3, збільшується значення параметра і на 1, і стає рівним 3 і т.д. На 99 кроці значення Sum було 4950 і параметр і став 100, перевіряється чи 100<=100, отримується результат “так”, виконується операція циклу Sum:= Sum +100, в результаті якої значення Sum = 5050, збільшується значення параметра і на 1, і стає рівним 101. Перевіряється чи 101<=100, отримується результат “ні” і цикл на цьому закінчується. Наступною виконується операція, що йде за циклом: надрукувати результат. Весь хід приведених “машинних роздумів” зручно привести в такій таблиці.
і | і <= 100 | дія | S |
так | +1 | ||
так | +2 | ||
так | +3 | ||
так | +4 | ||
... | ... | ... | ... |
так | +99 | ||
так | +100 | ||
ні | – |
На відміну від циклу з параметром у циклі з передумовою необхідно практично завжди ставити операторні дужки Begin... End.
Приведемо приклад використання циклу з передумовою, де операторні дужки не ставляться і, крім того, параметром циклу служить не додаткова змінна, а співвідношення між змінними, що використовуються в циклі, тобто логічна умова.