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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Итерационные алгоритмы нахождения суммы ряда





Для вычисления конечных сумм и произведений пользуются операцией переприсваивания в сочетании с циклическим оператором. Приведу пример вычисления вот такого произведения

 

Пример кода

#include "stdafx.h"

#include <iostream>

#include <math.h>

using namespace std;

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

{

setlocale(LC_ALL, "Russian");

cout << "Введите n" << endl;

int n;

cin >> n;

int fact = 1;

int FACTCOUNT = 3;

if (FACTCOUNT!=0 || FACTCOUNT!=1)

for (int jdx = FACTCOUNT; jdx>0; --jdx)

fact *=jdx;

float result = 1;

for (int idx = 2; idx<n; ++idx)

{

 

result *= (fact*log(idx)/log(5))/(7+sin(idx)+pow(7,idx));

 

}

cout << result << endl;

system("pause");

return 0;

}

Итерационный цикл - цикл, в котором число его повторений и поведение программы на каждом шаге цикла зависят от результатов, полученных на предыдущих шагах

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

Для примера вычислю с точностью приблизительно точностью введенной пользователем.

#include "stdafx.h"

#include <iostream>

#include <math.h>

 

using namespace std;

 

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

{

setlocale(LC_ALL, "Russian");

cout << "Введите точность" << endl;

float n;

cin >> n;

 

float intermediatResult;

float result = 0;

int idx = 0;

do

{

intermediatResult = 1/pow(3,idx);

result += intermediatResult;

++idx;

} while (intermediatResult > n);

 

cout.precision(20);

cout << "Результат = " << result << "\n";

cout << "Итератор " << idx-1 << endl;

system("pause");

return 0;

}

 







Date: 2015-08-15; view: 535; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию