Операторы цикла. Цикл с постусловием (do while)

photo
Продолжаем изучать циклы. Напомним, что цикл - одна из самых востребованных конструкций в в любом языке программирования. Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием, рис.а), либо после тела цикла (цикл с постусловием, рис.б). Рисунок слева - кликабелен. Это два основных варианта использования циклов. Но возможны и комбинации: например, вложенные циклы; циклы с досрочным выходом и так далее. Рассмотрим теперь конструкцию цикла с проверкой условия после выполнения кода, содержащегося в цикле.

Цикл с постусловием (do while)

Пример. Проверка ввода символа.
#include  
int main(){ 
char answer; 
do{ 
cout << "\пТы не студент кафедры IBM? (y/n) "; cin >> answer; 
}while (answer != 'y'); //пока не станет false
return 0; 
}
Пример. Вычислить квадратный корень вещественного аргумента x с заданной точностью Eps по итерационной формуле:
$$y_{n}=\left(y_{n-1}+x/y_{n-1} \right)/2$$
где \(y_{n-1}\) — предыдущее приближение к корню (в начале вычислений выбирается произвольно), \(y_{n}\) — последующее приближение. Процесс вычислений прекращается, когда приближения станут отличаться друг от друга по абсолютной величине менее, чем на величину Eps. Для вычисления абсолютной величины используется стандартная функция fabs() объявление которой находится в заголовочном файле .
#inc1ucle  
#include  
int main(){ 
double X,Eps; //аргумент и точность 
double Yp,Y=1; //предыдущее и последующее приближение 
pr1ntf("Введите аргумент и точность:"); 
scanf ("%1f%1f",&Х,&Eps); 
do{ 
Yp=Y; 
Y=(Yp+X/Yp)/2; 
}while (fabs(Y-Yp)>=Eps); 
printf("\nKopeнь из %1f равен %1f", X, Y); 
return 0; 
}
Онлайн всего: 7
Гостей: 7
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте