Основні теоретичні відомості
Цикл — це група операторів, що виконуються багаторазово.
Оператор while визначає операції, які циклічно виконуються до того моменту, поки вираз, що стоїть після while, стане хибним. Цей оператор називається оператором циклу з передумовою: спочатку перевіряються умови, і якщо умови виконуються, то потім виконується тіло оператору. Тому можлива ситуація, коли тіло циклу може бути не виконаним жодного разу. Форма запису оператора наступна:
while (вираз) оператор; або while (вираз) {група операторів}
де вираз – це умова виконання тіла циклу.
Наприклад:
const n=25;
int i=0;
while (i<n) i++;
При організації циклу, коли його тіло повинно бути виконане фіксовану кількість разів необхідно реалізувати три операції: ініціювання лічильника, порівняння його з повним значенням межі і збільшення (зменшення) лічильника при кожному проходженні циклу. В С є спеціалізований оператор циклу типу for, в якому органічно поєднано організацію цих трьох операцій.
В операторі for використовуються три вирази, що керують роботою цикла. Вони розділені символом ; . Початковий вираз обчислюється тільки один раз до початку виконання одного з операторів циклу. Якщо вираз-перевірка буде істинним (не рівним нулю), тіло циклу виконається один раз. Потім обчислюється величина виразу коректування і визначається знову величина виразу-перевірки. Оператор циклу for - оператор з передумовою, отже знову ж може трапитися, що тіло циклу не виконається жодного разу. Він має таку форму:
for (ініціювання; умова_виконання; вирази_корекції) оператор
ініціювання_циклу – послідовність визначень та виразів, розділених комами. Всі вирази, що входять до ініціалізації циклу розраховуються тільки один раз при вході до цикла;
вирази_корекції – розраховуються на кожній ітерації після виконання операторів тіла циклу і до наступної перевірки умови_виконання.
Наприклад:
int i;
for (i=0; i<n; i++) cout<<i;
Тіло цикла виконується так довго, поки вираз-перевірка не стане хибним (рівним нулю).
Якщо умова_виконання не змінюється або відсутня, то цикл нескінченний.
Наприклад:
for ( ; ; ); // нескінченний цикл
for ( ;1; ); // нескінченний цикл
Для багатьох обчислювальних задач корисним є використання циклу з постумовою (умовою на виході). В цьому випадку тіло циклу обов`язково виконається як мінімум один раз. В С такий оператор циклу реалізується конструкцією do while. Взагалі цикл має вигляд:
do оператор while (вираз);
Проілюструємо його виконання таким прикладом:
do
{ ch=getchar();
putchar(ch);
} while (ch!=`\n`);
Прикладом використання циклів може стати алгоритми розрахунку сум, добутку та ін.
Алгоритм розрахунку суми
Крок 1. Ініціалізація змінної суми (s=0) та змінної циклу (i=0).
Крок 2. Якщо зміна циклу більше кількості ітерацій, перехід на крок 4, інакше перехід на крок 3.
Крок 3. Накопичуємо суму. Збільшуємо оператор циклу (і++), перехід на крок 2.
Крок 4. Кінець
Приклад: Розрахувати
int s, i;
s=0;
for (i=0; i<20; i++) s+=i;