Лабораторна робота
"Оператори циклу у мові програмування Сі + +"
Мета роботи: ознайомитися з циклічними алгоритмами та операторами, що реалізують ці алгоритми. Освоїти особливості застосування кожного оператора. Скласти програми з використанням всіх операторів циклу.
1. Теоретичні відомості
Оператор циклу w hile
Опис: while (вираз) оператор;
Дія:
Виконується оператор до тих пір, поки значення виразу в дужках правдиве. Перевірка значення виразу відбувається перед кожним виконанням оператора. Коли значення виразу помилково, цикл while закінчується. Якщо вираз брехливо з самого початку, оператор не виконується жодного разу.
Коментар:
Слід зауважити, що після ключового слова while і вирази, укладеного в круглі дужки, крапка з комою не ставиться.
Оператор іноді називається тілом циклу. У тілі циклу повинні виконуватися дії, в результаті яких змінюється значення керуючого вираження. В іншому випадку можемо отримати нескінченний цикл.
Приклад:
/ * Демонстрація циклу while * /
# Include <stdio.h>
main ()
{
int i = 1
while (getchar ()!=' R ') i + +;
/ * Оператор getchar () вводить будь-який символ з клавіатури * /
printf ("Символ R% d-й", i);
}
Наведена програма дозволяє визначити порядковий номер першої введеної літери R в послідовності символів. Вона показує використання циклу while, в тілі якого всього одна інструкція (i + + - збільшення значення цілого числа i на одиницю). Якщо запустити цю програму на виконання і ввести послідовність символів, наприклад: abFk! Rgm, то на екрані з'явиться рядок: Символ R 6-й.
Оператор циклу d o-w hile
Опис: do оператор while (вираз);
Дія: У операторі do-while тіло циклу виконується принаймні один раз. Тіло циклу буде виконуватись до тих пір, поки вираз в дужках не прийме хибне значення. Якщо воно помилкове при вході в цикл, то його тіло виконується рівно один раз.
Коментар: після слова while і вирази, укладеного в дужки, ставиться крапка з комою. Якщо в тілі циклу міститься більше однієї інструкції, то оператори циклу полягають у фігурні дужки.
Приклад:
/ * Демонстрація циклу do-while * /
# Include <stdio.h>
main ()
{
int i = 0; / * i = 0, а НЕ одиниці * /
do i + +; while (getchar ()!=' R ');
printf ("Символ R% d-й", i);
}
Програма, представлена вище, тепер написана з циклом do-while. Результат програми буде таким же.
Оператор циклу f or
Опис: for (вираз 1; вираз 2; вираз 3) оператор;
Дія:
У круглих дужках міститься три вирази. Перше з них служить для ініціалізації лічильника. Вона здійснюється тільки один раз - коли цикл for починає виконуватися. Друге вираження необхідно для перевірки умови, яка здійснюється перед кожним можливим виконанням тіла циклу. Коли вираз стає помилковим, цикл завершується. Третє вираз обчислюється в кінці кожного виконання тіла циклу, відбувається прирощення числа на крок.
Коментар: в операторі циклу for крапка з коми після закривається круглої дужки не ставиться. Будь-яке з трьох або всі три вирази в операторі можуть бути відсутні, проте їх розділяють точки з комами опускати не можна. Якщо відсутній вираз 2, маємо нескінченний цикл. Наприклад: for (scanf ("% d", & p);; p + +) оператор;
У мові СІ передбачені дві нетрадиційні операції: (+ +) - для збільшення на одиницю і (-) - для зменшення на одиницю значення операнда. Операції + + і - можна записувати як перед операндом, так і після нього. У першому випадку (+ + n або - n) значення операнда (n) змінюється перед його використанням у відповідному вираженні, а в другому (n + + або n -) - після його використання.
Якщо відсутні вирази 1 і 3, цикл стає еквівалентним while. Наприклад: for (; a <20;) оператор;
Кожне з виразів може складатися з кількох висловів, об'єднаних операцією "кома". Наприклад: for (i = 0, j = 1; i <100; i + +, j + +) a [i] = b [j];
Тіло циклу полягає у фігурні дужки, якщо в ньому більше одного оператора.
Приклад:
/ * Демонстрація циклу for * /
# Include <stdio.h>
main ()
{Int i, j = 1, k;
for (i = 1; i <= 3; i + +)
printf ("Мінськ \ t");
/ * У циклі for три рази виконується функція виводу * /
/ * Тут i-управляюча змінна циклу * /
printf ("\ nУкажіте число повторень циклу \ n");
scanf ("% d", k &);
for (i = 1; i <= k; i + +)
{J *= i;
printf ("% d", j);}
/ * Тут дві інструкції (більше однієї), тому вони полягають у фігурні дужки * /
j = i;
printf ("\ n");
/ * Змінній j присвоюється значення 1 і здійснюється переказ курсору * /
/ * У наступному циклі for виконуються ті ж дії, що і в попередньому * /
for (i = 1; i <= k; i + +) printf ("% d", j *= i);
}
Результати виконання програми наступні:
Мінськ Мінськ Мінськ
Вкажіть число повторень циклу, 5
1 2 6 24 120
1 2 6 24 120
Оператор b reak
Опис:
Break використовується для припинення виконання циклу через виявлення помилки, для організації доповнення до умови в заголовку циклу, для припинення нескінченного циклу.
Приклад:
while (st> 0 & & st <25)
{
if st == 4 | | st == 8 | | st == 12)
break;
}
Робота циклу повністю припиняється, як тільки умова в операторі if стає істинним.
Оператор continue
Дія: Цей оператор можна використовувати у всіх трьох типах циклів. Як і у випадку оператора break, він призводить до зміни характеру виконання програми. Однак замість завершення роботи циклу наявність оператора continue викликає пропуск "залишилася" частини ітерації і перехід до початку наступної.
Приклад. Замінимо в попередній програмі оператор break на continue.
while (st> 0 & & st <25)
{
if (st == 4 | | st == 8 | | st == 12)
continue;
}
При істинному умови в операторі if оператор continue викликає пропуск йдуть за ним, операторів тіла циклу і здійснюється перехід до початку наступної ітерації.
2. Завдання
Завдання взяти з таблиці 1 і таблиці 2 відповідно до варіанту.
Розробити блок-схеми алгоритму.
Написати і налагодити програми.
Таблиця 1
№ варіанту | Завдання |
1. | |
2. | |
3. | |
4. | |
5. | |
6. | |
7. | |
8. | |
9. | |
10. | |
11. | |
12. | |
13. | |
14. | |
15. | |
16. | |
17. | |
18. | |
19. | |
20. | |
21. | |
22. | |
23 | |
24. | |
25. | |
Таблиця 2
№ варіанту | Завдання |
1. | |
2. | |
3. | |
4. | |
5. | |
6. | |
7. | |
8. | |
9. | |
10. | |
11. | |
12. | |
13. | |
14. | |
15. | |
16. | |
17. | |
18. | |
19. | |
20. | |
21. | |
22. | |
23 | |
24. | |
25. | |
Література
Подбельський В.В. Мова Cu + +: Навчальний посібник. - М.: Фінанси і статистика, 1995, - 560 с.
Страуструп Б. Мова програмування Сг + +. - М.: Радіо і зв'язок, 1991. - 352 стор
Собоцінскій В.В. Практичний курс Turbo Cu + +. Основи об'ктно-орієнтованого програмування. - М.: Світ, 1993. - 236 с.
Романов В.Ю. Програмування на мові Cu + +. Практичний підхід. - М.: компьтер, 1993. - 160 с.
Уінер Р. Мова турбо Cu. - М.: Світ, 1991. - 384 с.
Юлін В.А., Булатова І.Р. Запрошення до Cu. - Мн.: Вищ. Шк., 1990, - 224 с.
Котлинського Г.П., Галиновський О.І. Програмування на мові Cu. -Мн.: Вищ. Шк., 1991. - 156 с.