Студопедия

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

Разделы сайта

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






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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.