Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_СИ_1.doc
Скачиваний:
15
Добавлен:
20.02.2016
Размер:
329.73 Кб
Скачать

6. Циклічний обчислювальний процес

Повторення ряду кроків в алгоритмі називається циклом. Існує три стандартних способи організації циклічних обчислень: з параметром, з передумовою, з післяумовою.

Цикл з параметром використовується в тому випадку, якщо задано кількість повторень. Оператор циклу з параметром має вигляд:

for (ініциалізація; тестування; дія) oператор; де:

ініциалізація – об’ява та ініциалізація змінної лічильника циклу;

тестування – вираз (виконує порівняння змінної лічильника циклу з заданою кількістю повторень):

дія – інкрементування (збільшення на 1 - операція “++”) або декрементування лічильника циклу (зменшення на 1- операція “--”)

ПРИКЛАД: За заданим значенням натурального N обчислити 2N.

Блок-схема:

Програма:

# include <iostream.h>

void main ( )

{

unsigned int N;

unsigned long int P=1;

cout << “Введіть значення N \n”;

cin >> N;

cout <<endl;

for (int i =1; i <=N; i ++)

P=P*2;

cout<<”P=”<<P;

}

Цикл з передумовою.

Перед входом у цикл перевіряється умова входу. Якщо умова виконується – виконується «тіло» циклу, якщо ні – вихід з циклу. Таким чином, якщо при першій перевірці умова не виконується – «тіло» циклу не виконається жодного разу.

ПРИКЛАД.

Обчислити суму нескінченного ряду з заданою точністю epsilon =0.001:

1/n2 + 1/n4 + 1/n6 +

Для обчислення суми нескінченного ряду необхідно, щоб цей ряд сходився, тобто обчислення закінчиться, якщо на певному етапі обчислень значення члена ряду за абсолютною величиною стане меншим заданої точності (epsilon). Крім того, якщо є можливість, виводять рекурентне співвідношення, тобто результат ділення наступного члена ряду на той, що йому передує. В прикладі наступний член ряду дорівнює тому, що йому передує, помноженому на 1/n2. Оператор циклу з передумовою має вигляд:

while (умова) оператор;

Блок-схема:

Програма:

# include <iostream.h>

# include <math.h>

void main ( )

{

// ініциалізація – встановлення початкових значень

unsigned long int n=1;

float sum=0, a=1;

float epsilon;

cout << “Введіть значення epsilon \n”;

cin >> epsilon;

cout <<endl;

while (fabs(a)>epsilon)

{

sum = sum+a;

a = a/pow(n,2);

n++; / /збільшення на 1

}

cout<<”sum=”<<sum;

}

Цикл з післяумовою.

В циклі з післяумовою умова перевіряється після виконання кроку циклу («тіла») і є умовою продовження циклу. Таким чином, цикл з післяумовою виконується хоча б одного разу.

Оператор циклу з післяумовою має вигляд:

do оператор while умова ;

ПРИКЛАД.

Дано ціле число х. Підносити х у ступінь, доки обчислене значення стане більше за 108.

Блок-схема:

Програма:

# include <iostream.h>

void main ( )

{

// ініциалізація

unsigned long int P=1;

int x;

cout << “Введіть значення x \n”;

cin >> x;

cout <<endl;

do

P=P*x;

while (P<1E8);

cout<<”P=”<<P;

}