Оператор цикла do-while.

Оператор цикла do-while предназначен для реализации циклических алгоритмов и имеет следующую форму записи

 

БНФ:

 

цикл_do-while =

"do" оператор "while" "("выражение")" ";"

 

Оператор выполняется циклически до тех пор, пока выражение отлично от нуля. В отличие от оператора while, тело оператора do-while выполняется хотя бы один раз до первого вычисления условия.

Работу оператора do-while проиллюстрируем на примере программы, которая определяет корень уравнения x-cos(sin(x))=0 методом итераций, который заключается в циклическом вычислении очередного приближения x_new по предыдущему приближению x_old, согласно выражению x_new=cos(sin(x_old)), вытекающему из исходного уравнения. Процесс итерации заканчивается тогда, когда x_new станет равен x_old. Программа, реализующая этот алгоритм, приведена ниже.

 

#include <stdio.h>

#include <math.h>

 

/* Решение уравнения x-cos(sin(x))=0 */

void main (void)

{

double x_new=0.9, x_old, eps=0.0001;

do

{

x_old = x_new;

x_new = cos(sin(x_old));

} while ( fabs( x_new - x_old ) > eps );

printf ( "x=%lf", x_new );

}

 

Сравнение двух вещественных чисел осуществляется с использованием точности eps. Это необходимо потому, что из-за погрешностей округления прямая проверка на равенство двух вещественных чисел скорее всего даст в результате 0 (ложь).








Дата добавления: 2015-02-13; просмотров: 669;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.