Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
30.05.2020
Размер:
162.3 Кб
Скачать

ЛЕКЦІЯ 8. ЦИКЛИ

План

1. Цикл for.

2. Цикл while.

3. Цикл do while.

Оператори циклу призначені для багатократного повторення послідовності директив. Мова С підтримує три форми операторів циклу: for, while, do while.

1. Цикл for

Форма оператора циклу for має наступний вигляд:

For (вираз 1; вираз 2; вираз 3) { w; }

Вираз 1 визначає початкове значення змінної, яка називається управляючим параметром циклу.

Вираз 2 визначає умову продовження (або завершення) виконання оператора циклу.

Вираз 3 змінює значення управляючого параметра циклу.

W – блок операторів. Блок операторів W називається тілом циклу.

Зауваження. Якщо тіло циклу складається з одного оператора, то цей оператор можна у фігурні дужки не брати. Можливі наступні варіанти оператора циклу for:

for (; вираз 2; вираз 3) {W;}

for (вираз ; ; вираз 3) {W;}

for (вираз 1; вираз 2;) {W;}

for (; ;) {W;}

Задача 1. Видати на екран 20 разів повідомлення «Добрий ранок, студент!».

Програма 1. Виводить повідомлення «Добрий ранок, студент!» 20 разів.

void main()

{ clrscr();

S; S; S; S; S; S; S; S; S; S;

S; S; S; S; S; S; S; S; S; S;

getch(); }

В представленій програмі кожний символ S треба замінити на директиву cout << “ Добрий ранок, студент!\n“. Оператор циклу дозволяє код програми для даної задачі записати коротше.

Програма 2. Виводить повідомлення «Добрий ранок, студент!» задане число раз. В програмі використовувати оператор циклу.

void main()

{ int i, n;

clrscr();

cout << "Введи число виведень повідомлення: ";

cin >> n;

for ( i = 1; i <= n; i++) // Початок циклу for.

cout << "Добрий ранок, студент! \n"; // Виведення тексту на екран.

getch(); }

Після запуску даної програми комп'ютер виводить на екран монітора n рядків з текстом «Добрий ранок, студент!».

Програма f_1 має очевидну перевагу перед програмою f_1а: вона більш гнучка, число повідомлень, що виводяться, можна задавати під час її виконання. Крім того, число видаваних повідомлень не впливає на код програми. Код f_1а налаштований на висновок тільки 20 повідомлень. Зміна числа повідомлень, що виводяться, вимагає змін коду програми f_1а.

Оператор циклу for в програмі f_1 виконується таким чином:

  1. управляючому параметру циклу i привласнюється 1; значення i порівнюється із змінною n;

  2. якщо i менше або рівне n, то виконується блок операторів, ув'язнений між фігурними дужками. Після виконання останнього оператора з блоку, управління передається на початок оператора циклу. Оператор циклу збільшує значення змінної i на 1, потім виконується крок 2 і т. д.;

  3. якщо значення змінної i більше n, то управління передається на перший оператор, який слідує після тіла циклу.

Розглянемо різні варіанти вживання циклу for на простих задачах.

Програма 3. Виводить на екран цілі числа від 1 до заданого числа n (моделюється процес рахунку).

void main()

{ int i, s, n; // i, n параметри циклу;

// s для формування порядкового числа. clrscr();

cout << "Введи число, до якого треба виводити n= ";

cin >> n;

s = 0;

for (i = 1; i <= n; i++)

{ s = s + 1; // В s формується число, що виводиться.

cout << "Це " << s << "\n";

} cout << “ Виведення чисел від 1 до ” << n << “ завершений! \n”; getch(); }

Приведемо результат роботи програми для n = 4.

Введи число, до якого треба виводити n = 4

Це 1

Це 2

Це 3

Це 4

Виведення чисел від 1 до 4 завершений!

Програма 4. Виводить на екран цілі числа від 1 до n.

void main()

{ int i, n;

clrscr();

cout << "Введи число, до якого треба виводити n= ";

cin >> n;

for (i = 1; i <= n; i++) // В тілі циклу використовується i.

cout << "Це " << i << "\n";

getch();

}

Програма 5. Виводить на екран цілі числа від заданого числа n до 1.

void main()

{ int i, n;

clrscr();

cout << "Введи число, до якого треба виводити n= ";

cin >> n;

for (i = n; i >= 1; i--) // Значення параметра i зменшується.

cout << "Це " << i <<"\n";

getch(); }

Програма 6. Виводить на екран цілі числа від n1 до n2 з кроком dt (n1 <= n2, dt > 0).

void main()

{ int i, n1, n2, dt;

clrscr();

cout << "Введи число, від якого треба виводити n1 = ";

cin >> n1;

cout << "Введи число, до якого треба виводити n2 = ";

cin >> n2;

cout << "Введи крок для видачі чисел dt = ";

cin >> dt;

for (i = n1; i <= n2; i = i + dt) // Значення i міняється з кроком dt.

cout << "Це " << i << "\n";

getch(); }

Програма 7. Для управління циклом використовуються два параметри.

void main()

{ float i, j;

clrscr();

for (i = -10, j = 0; i + j <= 0; i++, j++ )

cout << i << " + “ << j << “= " << (i+j) << "\n";

cout << “\tРабота циклу завершена\n”;

getch(); }

Приведемо результат роботи програми.

-10 + 0 = -10

-9 + 1 = -8

-8 + 2 = -6

-7 + 3 = -4

-6 + 4 = -2

-5 +5 = 0

Робота циклу завершена

Соседние файлы в папке Лекції