Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСП_ЛЕК-1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
415.74 Кб
Скачать

2. Оператор for.

Оператор for переважніше для організації циклів з лічильниками.

Цикл із параметром має наступний формат:

for (ініціалізація; вираз; модифікації) оператор;

Ініціалізація використається для оголошення й присвоєння початкових значень величинам, використовуваним у циклі. У цій частині можна записати трохи операторів, розділених комі (операцією «послідовне виконання»), наприклад, так:

for (int i = 0, j = 2; ...

int k, m;

for (k = 1, m = 0; ...

Областю дії змінних, оголошених у частині ініціалізації циклу, є цикл1. Ініціалізація виконується один раз на початку виконання циклу.

Вираз визначає умова виконання циклу: якщо його результат, наведена до типу bool , дорівнює true, цикл виконується. Цикл із параметром реалізований як цикл із передумовою.

Модифікації виконуються після кожної ітерації циклу й служать звичайно для зміни параметрів циклу. У частині модифікацій можна записати трохи операторів через кому. Простий або складовій оператор являє собою тіло циклу. Кожна із частин оператора for може бути опущена (але крапки з коми треба залишити на своїх місцях!).

Приклад (оператор, що обчислює суму чисел від 1 до 100):

for (Int i = 1, s = 0; 1<=100; i++) s += i;

Приклад (програма друкує таблицю значень функції в=х2+1 в введеному діапазоні):

#Include <stdio.h>

Int main(){

float Xn, Xk, Dx, X;

printf (“Уведіть діапазон і крок зміни аргументу: ");

scanf (“%f%f%f”, &Xn, &Xk, &Dx );

printf (“| X | Y |\n");

for (X = Xn; X<=Xk; X+=Dx)

printf (" | %5.2f | %5.2f |\n”, X*X + 1);

return 0;

}

Приклад (програма знаходить всі дільники цілого позитивного числа):

#Include <iostream.h> Int main(){

Int num, half, div;

cout << “\n Уведіть число : "; cin >> num;

for (half = num / 2, div = 2; div <= half; div++)

if (!(num %div))cout << div <<"\n";

return 0;

}

Два останніх приклади виконують ті ж дії, що й приклади для циклу із передумовою, але записані більш компактно й наочно: всі дії, пов'язані з керуванням циклом, локалізовані в його заголовку.

Любою цикл while може бути наведений до еквівалентному йому циклу for і навпаки за наступною схемою:

for (b1: b2; bз) оператор b1;

while (b2){ оператор; bз;}

Часто, що зустрічаються помилки, при програмуванні циклів — використання в тілі циклу неініціалізованих змінних і невірний запис умови виходу із циклу.

Щоб уникнути помилок, рекомендується:

  • перевірити, чи всім змінним, що зустрічається в правій частині операторів присвоювання в тілі циклу, привласнені до цього початкові значення (а також чи можливо виконання інших операторів);

  • перевірити, чи змінюється в циклі хоча б одна змінна, вхідна в умову виходу із циклу;

  • передбачити аварійний вихід із циклу по досягненню деякої кількості ітерацій;

  • і, звичайно, не забувати про те, що якщо в тілі циклу потрібно виконати більше одного оператора, потрібно містити їх у фігурні дужки.

Оператори циклу взаємозамінні, але можна привести деякі рекомендації з вибору найкращого в кожному конкретному випадку.

___________________________________________________________________