Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 4_Управл операторы - циклы (2)

.pdf
Скачиваний:
31
Добавлен:
14.03.2016
Размер:
335.08 Кб
Скачать

Оператор цикла с параметром for

Условие применения: переменная цикла меняется в заданном интервале или цикл выполняется известное кол-во раз

for( <опер. инициал.>; <условие>; <опер. мод.> ) <оператор>

11

Оператор цикла с параметром for

Сначала выполняется <оператор инициализации> и

проверяется <условие>. Если <условие> истинно, то выполняется <оператор>

Затем выполняется <оператор модификации> и снова проверяется <условие>. Если <условие> истинно, то выполняется <оператор> и т.д.

Цикл завершается, когда <условие> становится ложным

12

Оператор цикла с параметром for

<Оператор> – это тело цикла (повторяющееся действие + действие для выхода из цикла)

<Условие> - условие продолжения цикла, проверяется до выполнения тела цикла

Цикл for как и цикл while может не выполниться ни разу

Оператор for рекомендуется использовать только тогда, когда все три его компоненты определены и

переменная цикла не изменяется в теле цикла

13

Частные случаи оператора цикла с параметром for

Цикл для Цикл n раз

 

for( i = a; i <= b; i += c )

for( i = 1; i <= n; i ++ )

14

<оператор>

<оператор>

Задание

Число π может быть вычислено с помощью ряда

π = 4*(1 — 1/3 + 1/5 +...+ (-1)i-1/(2i-1))

Вычислить приближенное число π, используя k слагаемых ряда

15

Использование оператора цикла с параметром for

double S; /*сумма ряда (то, что в скобках)*/

double Pi; // расчетное значение Пи int i;// порядковый номер слагаемого

//Вычислить сумму S = 0;

for(i = 1; i <= k; i++)

{

S += pow(-1, i-1) / (2*i - 1);

}

//Вычислить Pi

Pi = 4 * S;

16

Критерии выбора оператора цикла

 

 

 

 

Оператор цикла

Критерии

 

Оператор

Кол-во повторений заранее не известно.

 

Условие проверяется раньше действия (опе-

 

while

ратора). Действие может не выполниться ни

 

 

разу

 

Оператор

Кол-во повторений заранее не известно.

 

Прежде чем проверить условие необходимо

 

do...while

выполнить действие (оператор). Действие

 

 

обязательно выполнится один раз

 

 

Кол-во повторений известно заранее или

 

Оператор for

известен диапазон и шаг изменения пере-

 

менной цикла. Действие (оператор) может

17

 

 

не выполниться ни разу

Задание

Число π может быть вычислено с помощью ряда

π = 4*(1 — 1/3 + 1/5 +...+ (-1)i-1/(2i-1))

Определить, сколько слагаемых необходимо взять, чтобы достичь заданной точности вычислений - Eps.

В качестве эталонного значения использовать функцию pi(). Результат поместить в переменную n.

18

Выбор оператора цикла

Количество слагаемых ряда не известно, следовательно не известно количество итераций цикла, следовательно for не подходит

Повторяющимся действияем является рассчет слагаемого ряда и добавление его к текущей сумме ряда. Первичное (приближенное) значение числа π становится известным по окончанию первой итерации, поэтому проверка на точность должна выполняться после повторяющегося действия,

19 следовательно используем оператор do...while

Выбор оператора цикла

double S;

/* сумма ряда (то, что в

скобках) */

 

int n;

// кол-во слагаемых ряда

// Вычислить кол-во слагаемых S = 0; n = 0;

do

{

n++;

S += pow(-1, n-1) / (2*n – 1);

}

while( abs(4*S – pi()) > Eps );

20