Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Листинг 3.5



#include “stdafx.h”

#include <iostream>

#include <math.h>

using namespace std;

// Точность вычислений.

const double eps = 1e-10;

int _tmain(int argc, _TCHAR* argv[])

{

double x, a, a02, S;

int n = 0;

setlocale(LC_ALL, "Russian");

cout << “Введите значение x: “;

cin >> x;

// Первый член ряда.

a = (x - 1)/(x + 1);

// Квадрат первого члена ряда.

a02 = a*a;

// Инициализировать сумму членов ряда.

S = a;

while(fabs(a) > eps)

{

a *= ((n + n + 1)*a02)/(n + n + 3);

// 2*n = n + n

n++; S += a;

}

cout << “Натуральный логарифм: “ << (S + S)

<< endl

<< “Точное значение: “ << log(x) << endl;

getch();

return 0;

}

Цикл с постусловием или цикл типа do … while. Инструкция do представляет собой вариант инструкции while. Но вместо проверки условия в начале цикла, в инструкции do она производится в конце. Это значит, что инструкция, контролируемая условием do, выполняется по крайней мере один раз, тогда как while может вообще не передать управление своему телу, если условие изначально не выполняется. Оператор цикла do … while называется оператором цикла с постусловием. Основная форма цикла do

do

<тело_цикла>

while (<выражение_условие>);

Сначала выполняется тело_цикла, затем вычисляется условие продолжения цикла выражение_условие. Если оно истинно то управление передается обратно на начало инструкции do и процесс повторяется. Когда значение условия становится ложно, управление передается следующей инструкции после тела цикла.

Например, сумма натуральных чисел от 1 до 10 с использованием цикла do … while может быть найдена следующим образом:

S = 0;

i = 1;

do

{

S += i;

i++;

}

while(i < 11);


Рисунок 3.9 - Структурная схема оператора цикла с постусловием

Рисунок 3.10 -Фрагмент диаграммы деятельности UML, описывающей действия оператора do … while в C++

Пример 3.6. Найти значение квадратного корня из положительного числа , вводимого с клавиатуры, с некоторой заданной точностью с помощью рекуррентного соотношения

. (3.10)

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

Составим диаграмму деятельности UML для задачи отыскания значения квадратного корня по итеративной формуле (рис. 3.6), которая соответствует следующей прорамме.





Дата публикования: 2015-10-09; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...