Оператор циклу з параметром 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) і відбувається наступне порівняння параметру з кінцевим значенням.

Зауваження.

  1. Цикл з параметром зручно використовувати в тих випадках, коли кількість повторень можна визначити заздалегідь.
  2. Тіло циклу for може не виконатися жодного разу, так відбувається, коли в упорядкованій безлічі кінцеве значення параметра циклу передує початковому значенню (у випадку з to) або початкове значення передує кінцевому (в випадку з downto). Це відбувається тому, що перевірка умови в циклі for відбувається перед виконанням циклу. Тому у мові PascalABC цикл з параметром є окремим випадком циклу з передумовою і має таку ж структурну схему.
  3. Параметр циклу не повинен змінюватися будь-яким оператором всередині циклу. Параметр може довільним чином використовуватися у виразах в тілі циклу, але присвоювати йому нового значення всередині циклу небажано, тому що це може привести до непередбачуваних наслідків.
  4. Параметр циклу, як і будь-яка інша змінна, повинен бути описаний в розділі змінних.
  5. Після виконання оператора циклу параметр циклу вважається невизначеним і не повинен використовуватися в наступних операторах без попереднього привласнення йому значення.
  6. Дозволено використання вкладених циклів. Їх реалізація повинна проводиться за тими ж правилами, що і для циклів з передумовою.

Приклад: створити програму яка обчислює суму ряду 1+2+3+…+n:

  • Program SumRow;
  • var
    • i, n : integer;
    • Sum : real;
  • begin
    • write('Введіть кількість членів ряду');
    • readln(n);
    • Sum := 0;
    • for i := 1 to n do
      • Sum := Sum + i;
  • writeln('Сума ', n, ' членів ряду = ', Sum);
  • end.