Мова СМова Сі++і++
Програмування циклів
План:
1.Цикл з передумовою в
Сі++
2.Цикл з післяумовою в Сі+
+
3.Цикл з параметром
Цикл з передумовоюЦикл з передумовою
Формат оператора циклу з
передумовою:
while (вираз) оператор;
Приклад1:Приклад1:
Приклад 2Приклад 2
Цикл з післяумовоюЦикл з післяумовою
Формат оператора циклу з
післяумовою:
do оператор while (вираз);
Цикл виконується до тих пір, поки
вираз не дорівнює нулю, тобто
умова циклу, що знаходиться в нім,
істинна. Вихід з циклу походить
після того, як значення вираз стане
помилковим, іншими словами рівним
нулю.
Приклад 3Приклад 3
Цикл з параметромЦикл з параметром
Формат оператора циклу з параметром:
for (вираз_1; вираз_2; вираз_3) оператор;
Вираз_1 виконується тільки один раз на
початку циклу. Зазвичай він визначає
початкове значення параметра циклу
(ініціалізував параметр циклу). Вираз_2 — це
умова виконання циклу, вираз_3 зазвичай
визначає зміну параметра циклу, оператор —
тіло циклу, яке може бути простим або
складеним. У останньому випадку
Алгоритм виконання циклу forАлгоритм виконання циклу for
представлений на блок-схеміпредставлений на блок-схемі
За допомогою циклу for знаходження
N! можна організувати таким чином:
F=1;
for(i=1;i<=N;i++) F=F*i;
Використовуючи операцію «кома»,
можна у вираз_1 внести ініціалізацію
значень відразу декількох змінних :
for(F=1, i=1; i<=N;i++) F=F*i;
Деяких елементів в операторові for
може не бути, проте крапки, що
розділяють їх, з комою обов'язково
мають бути присутніми. У наступному
прикладі частина, що ініціалізувала,
винесена з оператора for :
F=1;
i=1;
for(;i<=N;i++) F=F*i;
Ще один варіант обчислення N!. На місці
тіла циклу знаходиться порожній
оператор, а обчислювальна частина
внесена у вираз 3.
for(F=1, i=1; i<=N;F=F*i, i++);
Цей же оператор можна записати в
наступній формі:
for(F=1, i=1; i<=N;F*=i++);
У мові Сі++ оператор for є досить
універсальним засобом для організації
циклів.
Приклад обчислення суми елементів
гармонійного ряду, що перевищують
задану величину ε:
for(n=1, S=0;1.0/n>eps &&
n<INT_MAX;n++) S+=1.0/n;
Це ж саме завдання з порожнім тілом
циклу:
for(n=1, S=0;1.0/n>eps &&
n<INT_MAX;S+=1.0/n++);
Фрагмент програми на Сі++ містить два
вкладені цикли for. В циклах запрограмоване
отримання на екрані таблиці множення.
for(x=2;х<=9;х++)
for(y=2;y<=9;y++)
cout<<"n"<<x<<"*"<<y<<"="<<x*y;
На екрані буде отриманий наступний
результат:
2*2=4
2*3=6
. . .
9*8=72
Оператор continueОператор continue
Наступний фрагмент програми
забезпечує вивід на екран усіх парних
чисел в діапазоні від 1 до 100.
for(i=l;i<=100;i++)
{if(i%2) continue; cout<<"t"<<i;}
Оператор gotoОператор goto
Формат оператора :
goto мітка;
Мітка є ідентифікатором з
подальшою двокрапкою,
ставиться перед оператором, що
позначається
Приклад 4Приклад 4
Одна з ситуацій, в яких використання
goto є виправданим, — це необхідність
«дострокового» виходу з вкладеного
циклу.
Ось приклад такої ситуації :
for(...)
{ while (...)
{ for(...)
{... goto exit ...}
}
}
exit: cout<<"Bихід з циклу";
При використанні оператора
безумовного переходу необхідно
враховувати наступні обмеження:
• не можна входити всередину блоку
ззовні;
• не можна входити всередину умовного
оператора (if ...else...);
• не можна входити всередину
перемикача;
• не можна входити всередину циклу.

4

  • 1.
  • 2.
    План: 1.Цикл з передумовоюв Сі++ 2.Цикл з післяумовою в Сі+ + 3.Цикл з параметром
  • 3.
    Цикл з передумовоюЦиклз передумовою Формат оператора циклу з передумовою: while (вираз) оператор;
  • 4.
  • 5.
  • 6.
    Цикл з післяумовоюЦиклз післяумовою Формат оператора циклу з післяумовою: do оператор while (вираз); Цикл виконується до тих пір, поки вираз не дорівнює нулю, тобто умова циклу, що знаходиться в нім, істинна. Вихід з циклу походить після того, як значення вираз стане помилковим, іншими словами рівним нулю.
  • 7.
  • 8.
    Цикл з параметромЦиклз параметром Формат оператора циклу з параметром: for (вираз_1; вираз_2; вираз_3) оператор; Вираз_1 виконується тільки один раз на початку циклу. Зазвичай він визначає початкове значення параметра циклу (ініціалізував параметр циклу). Вираз_2 — це умова виконання циклу, вираз_3 зазвичай визначає зміну параметра циклу, оператор — тіло циклу, яке може бути простим або складеним. У останньому випадку
  • 9.
    Алгоритм виконання циклуforАлгоритм виконання циклу for представлений на блок-схеміпредставлений на блок-схемі
  • 10.
    За допомогою циклуfor знаходження N! можна організувати таким чином: F=1; for(i=1;i<=N;i++) F=F*i; Використовуючи операцію «кома», можна у вираз_1 внести ініціалізацію значень відразу декількох змінних : for(F=1, i=1; i<=N;i++) F=F*i;
  • 11.
    Деяких елементів воператорові for може не бути, проте крапки, що розділяють їх, з комою обов'язково мають бути присутніми. У наступному прикладі частина, що ініціалізувала, винесена з оператора for : F=1; i=1; for(;i<=N;i++) F=F*i;
  • 12.
    Ще один варіантобчислення N!. На місці тіла циклу знаходиться порожній оператор, а обчислювальна частина внесена у вираз 3. for(F=1, i=1; i<=N;F=F*i, i++); Цей же оператор можна записати в наступній формі: for(F=1, i=1; i<=N;F*=i++); У мові Сі++ оператор for є досить універсальним засобом для організації циклів.
  • 13.
    Приклад обчислення сумиелементів гармонійного ряду, що перевищують задану величину ε: for(n=1, S=0;1.0/n>eps && n<INT_MAX;n++) S+=1.0/n; Це ж саме завдання з порожнім тілом циклу: for(n=1, S=0;1.0/n>eps && n<INT_MAX;S+=1.0/n++);
  • 14.
    Фрагмент програми наСі++ містить два вкладені цикли for. В циклах запрограмоване отримання на екрані таблиці множення. for(x=2;х<=9;х++) for(y=2;y<=9;y++) cout<<"n"<<x<<"*"<<y<<"="<<x*y; На екрані буде отриманий наступний результат: 2*2=4 2*3=6 . . . 9*8=72
  • 15.
    Оператор continueОператор continue Наступнийфрагмент програми забезпечує вивід на екран усіх парних чисел в діапазоні від 1 до 100. for(i=l;i<=100;i++) {if(i%2) continue; cout<<"t"<<i;}
  • 16.
    Оператор gotoОператор goto Форматоператора : goto мітка; Мітка є ідентифікатором з подальшою двокрапкою, ставиться перед оператором, що позначається
  • 17.
  • 18.
    Одна з ситуацій,в яких використання goto є виправданим, — це необхідність «дострокового» виходу з вкладеного циклу. Ось приклад такої ситуації : for(...) { while (...) { for(...) {... goto exit ...} } } exit: cout<<"Bихід з циклу";
  • 19.
    При використанні оператора безумовногопереходу необхідно враховувати наступні обмеження: • не можна входити всередину блоку ззовні; • не можна входити всередину умовного оператора (if ...else...); • не можна входити всередину перемикача; • не можна входити всередину циклу.