Цикл з лічильником
Цикли з лічильником складають такий клас, в яких виконання виконавчої частини повинно повторюватися заздалегідь певне число раз. Цикли з лічильником використовуються досить часто, і тому в мові Паскаль для цих цілей є спеціальна конструкція.
Можна, звичайно, цикли з лічильником моделювати за допомогою операторів while і Repeat, але структура циклу з лічильником простіше.
for i: = A to B do
begin
.
end;
for i: = A downto B do
begin
.
end;
Тут змінна i - керуюча змінна або змінна циклу,
А - початкове значення змінної циклу,
В - кінцеве значення змінної циклу.
При переході до обробки оператора циклу for керуючоїзмінної присвоюється заданий початкове значення. Потім в циклі виконується виконавчий оператор (або складовою оператор). кожен раз при виконанні виконавчого оператора керуюча змінна збільшується на 1 (для for. to) або зменшується на 1 (для for. downto). Цикл завершується при досягненні керуючоїзмінної свого кінцевого значення.
1) for i: = 1 to ListSize do
begin
readln (Number):
S: = S + Number;
end;
2) for Dlina: = 15 downto 1 do
writeln (Sqr (Dlina));
3) for x: = 1 to 10 do
for y: = 1 to 10 do
writeln (x, '*', y, '=', x * y);
4) for Range: = Number + 1 to Multi * 3 do
writeln (Sqrt (Range));
У разі використання програми for комп'ютер виконує за програміста чорнову роботу по ініціалізації керуючоїзмінної і по її збільшення (зменшення) при кожному повторенні циклу. Єдине обмеження полягає в тому, що тип керуючої змінної не повинен бути real. Мінлива циклу не повинна змінюватися будь-якими операторами всередині циклу. До неї можна звертатися і використовувати в обчисленнях, але не можна присвоювати нове значення. Присвоювання можуть виконуватися тільки механізмом самого циклу. Таким чином, наступний цикл є некоректним:
Керуюча змінна повинна описуватися, як і будь-яка інша змінна. Зазвичай змінна циклу має тип integer, але пізніше Ви розгляньте інші типи даних, які можуть зазначатися в циклі for.
Увага! Слід пам'ятати, що керуюча змінна не може бути типу real.
Виконавча частина циклу може бути або простим, або складеним оператором. Якщо початкове значення циклу for. to більше кінцевого значення, то ніякі операції не виконав. Таким чином, наступний оператор не призведе ні до яких дій
for j: = 1 to 0 do
writeln (j);
Однак цикл, представлений в такій формі, роздрукує цілі числа від одиниці до десяти: