Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Листинг 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), которая соответствует следующей прорамме.

 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал