
- •Комп’ютерний практикум №2 Умовна операція, множинний вибір та оператори циклів
- •2.1. Теоретичні відомості Операція умови ?:
- •Множинний вибір: оператори switch і break
- •Типи операторів циклів
- •Цикл типу while
- •Цикл типу do — while
- •Керуючі оператори в циклах
- •Цикл типу for
- •Вкладені цикли
- •Приклади реалізації циклів
- •2.2. Приклади
- •2.5. Контрольні запитання і завдання
Вкладені цикли
Вкладеним циклом називають конструкцію, в якій один цикл виконується всередині другого. Внутрішній цикл виконується повністю під час кожної ітерації зовнішнього циклу.
Приклад 7. Вкладені цикли.
Треба заповнити увесь екран символами '#'. Можливий варіант розв’язання має вигляд:
…
for ( i=1; i<=25; i++ )
for (k=1; k<=80; k++ )
cout<<'#';
…
В цій програмі 25 разів виконується виведення по 80 символів.
В програмі можна використовувати будь-які комбінації вкладених циклів всіх типів: while, for, do — while, якщо цього потребує логіка побудови програми.
Приклад 8. Ввести десять значень днів місяця з перевіркою правильності вводу.
…
for ( i=1; i<=10; i++ )
{
do cin>>den;
while(den<1||den>31);
cout<<den;
}
…
В даному прикладі зовнішній цикл виконується 10 разів, а внутрішній виконується до тих пір, поки не буде введено правильне значення.
Приклади реалізації циклів
Виникає питання: циклом якого типу краще всього користуватися?
Спочатку слід вирішити, чи потрібен цикл з передумовою, чи з постумовою.
Існує ряд причин, за яких професійні програмісти віддають перевагу використанню циклів с передумовою. Перша — це те, що краще спочатку прийняти рішення, чи потрібно щось робити, а не після того, як це вже зроблено. Друга — те, що програма більш зрозуміла, коли умова, яка перевіряється, знаходиться спочатку, а не в кінці циклічного блоку програми. Третя причина полягає в тому, що в більшості випадків необхідно, щоб тіло циклу ігнорувалося повністю, якщо умови не виконуються.
У випадку вибору циклу з передумовою виникає питання: що краще, for чи while? В принципі все, що можна зробити за допомогою одного циклу, можна зробити й за допомогою іншого. Виходячи з міркувань правильного стилю програмування використанню циклу fоr віддається перевага, коли в циклі використовується ініціалізація і корекція змінної. А цикл while зручніше використовувати, коли цього робити не треба.
В мові С++ оператор циклу for є більш гнучким засобом, ніж аналогічні оператори циклів в інших мовах програмування. Крім описаних вище, існує ще багато інших можливостей використання цього типу циклів. Приклади деяких з них:
Приклад 9. Потрібно обчислити у5. Можливий варіант розв’язання має вигляд:
…
for ( i=5, r=1; i>=1; i-- ) r=r*y;
cout<<"r="<<r;
…
Приклад 10. Приріст при підрахунку, не рівний 1.
…
for ( n=5; n<61; n+=15) cout<<n;
…
Приклад 11. Використання символів в якості лічильника.
Треба надрукувати алфавіт. Можливе рішення має вигляд:
…
for ( chr='A'; chr<='Z'; chr++) cout<<chr;
…
Приклад 12. Зміна лічильника в геометричній прогресії. Треба підрахувати борг. Можливе рішення має вигляд:
…
for ( k=100; k<185; k*=l.l) cout<<"Борг="<<k;
…
Приклад 13. Використання в якості лічильника виразу.
…
for ( k=1; z<=196; z=5*k+23 ) cout<<z;
…
Приклад 14. Неповний список виразів в заголовку тіла циклу.
…
for (p=2; p<=202;) p=p+n/k;
…
Приклад 15. Будь-який перший вираз в заголовку циклу.
…
for ( cout<<"Введіть числа."; p<=30;) cin>>p;
…
Приклад 16. Зміна управляючих змінних в тілі циклу.
…
delta=0.1;
for (k=1; k<500; k+=delta)
if (a>b) delta=0.5;
…
Приклад 17. Використання операції «кома» в специфікації циклу.
…
for ( i=1, r=1; i<=10; i++, r*=y )
cout<<"y в степені "<<i<<" дорівнює:"<<r;
…