Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вычисление произведения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не знаю как написать прогу! http://www.cyberforum.ru/cpp-beginners/thread640720.html
Привет! Решил научиться программированию, и в данный момент мне очень нужна прога которая копирует данные из файла .ini в другой файл .ini Может для вас, программисты, это смешно а для меня очень...
C++ правильно ли я выполнил задание? меня терзают жудкие сомнения насчёт правильности выполнения Исходный код программы на С++ обычно содержит много пар круглых, квадратных и фигурных скобок. Если не обращать внимания на всё прочее... http://www.cyberforum.ru/cpp-beginners/thread640718.html
Работа со звуком C++
Здравствуйте, вот занимаюсь работай со звуком, вообще задача стоит в том что б сделать оцифровку звука, записать данные в буфер и вывести полученые числа (случайные, таковыми они должны быть,...
Вызов функций C++
Можно ли программно вызвать все функции записанные в файле?
C++ Удаление символа http://www.cyberforum.ru/cpp-beginners/thread640693.html
как удалить последний символ в файле ???
C++ в чём может быть ошибка? char brackets; while( (strlen(brackets)-1) != '~' ) { cin.getline(brackets, 500); cout << brackets << endl; if((strlen(brackets)-1) == '~') подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
24.08.2012, 10:29
isaak, не иди по ложному следу!
Алгоритм как и везде лучше отстраивать от ошибки вычислений, а не числа элементов разложения. Задавать число членов ряда - концептуально неверно, т.к. задаваясь этим числом мы никогда не сможем наперёд сказать какую точность обеспечим. Ниже код, основной момент с остановкой итераций я пояснил(почему так - потому что an возрастает и в таких случаях нужно использовать разницу смежных членов разложения)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cmath>
#include <iostream>
using namespace std;
 
double getMult(double err);
 
int main()
{
    cout<<"Enter error of calculation : ";
    double err;cin>>err;
    cout<<"2/PI (calc) : "<<getMult(err)<<endl;
    cout<<"2/PI (math) : "<<1/asin(1.0)<<endl;
    return 0;
}
 
double getMult(double err)
{
    double PI = 2*asin(1.0);
    double n  = 1;
    double an = cos(PI/pow(2.0,(n + 1)));
    double mult = 1;
    //Условие окнчания итераций не |an| <= err
    //а вот такое |a(n + 1) - an| < err 
    while(err < fabs(cos(PI/pow(2.0,(n + 2))) - an))
    {
        mult *= an;
        n = n + 1;
        an = cos(PI/pow(2.0,(n + 1)));
    }   
    return mult;
}
1
Миниатюры
Вычисление произведения  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru