
- •Арифметичні цикли
- •Теоретичні відомостi
- •Приклад програми
- •Варіанти завдань
- •Ітераційні цикли
- •Теоретичні відомостi
- •Цикл з передумовою
- •Цикл з постумовою
- •Приклад програми
- •Варіанти завдань
- •Складні цикли
- •Теоретичні відомостi
- •Вкладеність циклів
- •Оператор переривання break
- •Оператор продовження continue
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
Складні цикли
Мета роботи - вивчити особливості організації складних циклів.
Теоретичні відомостi
Вкладеність циклів
Всі оператори циклів допускають вкладеність інших операторів, у тому числі і інших циклів. Якщо до складу циклу входить інший цикл, то має місце вкладеність циклів. При цьому перший цикл називається зовнішнім, а вкладений у нього – внутрішнім. Внутрішній цикл виконується повністю під час кожної ітерації зовнішнього циклу.
Кожний з пари вкладених циклів має свою керуючу змінну і свої параметри. При виконанні вкладених циклів діє правило: у першу чергу завжди виконується самий внутрішній цикл. Таким чином, для кожного значення керуючої змінної зовнішнього циклу керуюча змінна внутрішнього циклу послідовно пробігає усі свої значення.
Усередині вкладеного циклу може знаходитися ще один вкладений цикл і т.ін. Той самий цикл може бути зовнішнім стосовно одного і внутрішнім стосовно іншого циклу. Границі внутрішнього циклу не можуть виходити за границі зовнішнього циклу.
В програмі можна використовувати будь-які комбінації вкладених циклів всіх типів, якщо цього потребує логіка побудови програми.
Наприклад, перевірка правильності вводу значень днів місяця:
for (int i=1; i<=10; i++)
{ do
cout<<”Input day:”; cin>>day;
while (day<1||day>31)
cout<<day;
}
В даному прикладі зовнішній цикл виконується 10 разів, а внутрішній виконується до тих пір, поки не буде введено правильне значення.
Оператор переривання break
Щоб достроково перервати виконання циклу (до аналізу умови), можна використати оператор переривання break. Даний оператор може використовуватися в циклах всіх трьох типів.
Виконання оператора break призводить до виходу з циклу, в якому він знаходиться, і переходу до наступного за циклом оператора. Якщо оператор break знаходиться всередині вкладених циклів, то його дія поширюється тільки на той цикл, в якому він безпосередньо знаходиться.
Наприклад, треба вгадати число з n спроб:
i=0;
while (++i<= n)
{ cin>>rez;
if (rez==15) break;
cout<<"\n Пощастить наступного разу";
}
if (i!=11) cout<<"\n Bи вгадали!";
Оператор продовження continue
Для дострокового переривання ітерації циклу служить оператор продовження continue. Цей оператор призводить до переходу до наступної ітерації без завершення поточної. Він, як і оператор break, може використовуватися тільки серед операторів тіла циклу.
Оператор contіnue, як і оператор break, перериває самий внутрішній із охоплюючих його циклів.
Приклад програми
Приклад.
Для заданого n
обчислити значення виразу
.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ int n; // вхідне значення
int i,j; // проміжні значення
double y; // результат
cout << "n = ?\b"; cin >> n;
for (i=1; i<=n+3; i+=1)
for (j=1; j<=n+5; j+=1)
{ y =1./(i+ pow(j, 2));
cout << "i = " << i << " j = " << j << " - y = " << y << endl;
}
system("pause")
}
Відеокопія результату: