Оператор циклу з параметром For
Цикл з параметром for використовується зазвичай в тих випадках, коли заздалегідь можна визначити кількість повторень циклу. Цикл з параметром for служить для організації n-кратного виконання тіла циклу для значень параметра циклу з деякої впорядкованої дискретної множини.
Схема оператора циклу з параметром.
- Оператор циклу з параметром має дві форми запису:
- for параметр := вираз_1 to вираз_2 do
- тіло_циклу;
- for параметр := вираз_1 downto вираз_2 do
- тіло_циклу;
Параметр (його ще називають параметром циклу, індексом, лічильником) – це змінна дискретного типу, тобто типу, на безлічі значень якої визначено поняття «попередній елемент» і «наступний елемент». Найчастіше використовується змінні типу integer (але допустимі char і boolean). Не дозволений до застосування параметр типу real.
Вираз_1 (початкове значення параметра) – це константа, змінна або вираз того ж типу, що й параметр циклу.
Вираз_2 (кінцеве значення параметра) – має той же спосіб визначення, що і вираз_1.
Тіло_циклу – це оператор, наступний за ключовим словом do. Якщо необхідно повторити кілька операторів, то вони укладаються в операторні дужки begin і end, і тілом циклу стає составний оператор.
Розглянемо процес виконання циклу з параметром:
1. Цикл for/to for i := a to b do тіло_циклу;
Параметру циклу i присвоюється початкове значення а. Воно порівнюється зі значенням b, якщо в упорядкованій множині i передує b або збігається з ним, то виконується тіло циклу, далі параметру i присвоюється нове значення, наступне за тим, яке у нього було (i := a + 1). Після, відбувається наступне порівняння i з кінцевим значенням b, і якщо під час перевірки з’ясується, що поточне значення i слідує за кінцевим значенням b (i > b), то відбувається вихід з циклу і виконається наступний за тілом циклу оператор.
2. Цикл for/downto for i := a downto b do тіло_циклу;
Цей цикл виконується наступним чином. Параметру циклу i присвоюється початкове значення а. Значення параметра порівнюється з кінцевим значенням. Якщо в упорядкованій множині воно передує кінцевому значенню (i < b), то відбувається вихід з циклу, в іншому випадку виконується тіло циклу, змінній i присвоюється попереднє значення (i := a – 1) і відбувається наступне порівняння параметру з кінцевим значенням.
Зауваження.
- Цикл з параметром зручно використовувати в тих випадках, коли кількість повторень можна визначити заздалегідь.
- Тіло циклу for може не виконатися жодного разу, так відбувається, коли в упорядкованій безлічі кінцеве значення параметра циклу передує початковому значенню (у випадку з to) або початкове значення передує кінцевому (в випадку з downto). Це відбувається тому, що перевірка умови в циклі for відбувається перед виконанням циклу. Тому у мові PascalABC цикл з параметром є окремим випадком циклу з передумовою і має таку ж структурну схему.
- Параметр циклу не повинен змінюватися будь-яким оператором всередині циклу. Параметр може довільним чином використовуватися у виразах в тілі циклу, але присвоювати йому нового значення всередині циклу небажано, тому що це може привести до непередбачуваних наслідків.
- Параметр циклу, як і будь-яка інша змінна, повинен бути описаний в розділі змінних.
- Після виконання оператора циклу параметр циклу вважається невизначеним і не повинен використовуватися в наступних операторах без попереднього привласнення йому значення.
- Дозволено використання вкладених циклів. Їх реалізація повинна проводиться за тими ж правилами, що і для циклів з передумовою.
Приклад: створити програму яка обчислює суму ряду 1+2+3+…+n:
- Program SumRow;
- var
- i, n : integer;
- Sum : real;
- write('Введіть кількість членів ряду');
- Sum := Sum + i;