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

Посчитать число Pi используя разложения с заданной точностью - C++

Восстановить пароль Регистрация
 
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
24.06.2014, 11:01     Посчитать число Pi используя разложения с заданной точностью #1
Посчитать число Pi используя разложения с заданной точностью
Pi=3+4*(1/(2*3*4)-1/(4*5*6)+1/(6*7*8)-...)

Выводит около 2.9
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
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void main()
{
 
    clrscr();
        float Pi,S,eps,a,b,sign;
        int n=3;
        int i=2;
        int k=2;
    printf("Enter eps<1  "); //Ввод значений x и eps
    scanf("%f",&eps);
    if((eps<1)&&(eps>0)) {//Проверка того,что x в диапозоне (0<x<Pi) и (0<eps<1)
    sign=-1;//Знак 
    Pi=3;
    a=1/(i*(i+1)*(i+2));//Вычисление 1-го элемента ряда
    i+=2;
    b=sign/(i*(i+1)*(i+2));//Вычисление 2-го элемента ряда
    i+=2;
    S+=a;//Прибавление к сумме 1-го элемента ряда
    S+=b;//Прибавление к сумме 1-го элемента ряда
    while(b-a>=eps) { //Цикл пока разница между текущим элементом суммы и предыдущим >=eps
        a=b;
        if(n%2==0) 
        b=sign/(i*(i+1)*(i+2));
        else
        b=1/(i*(i+1)*(i+2));
        S+=b;
        i+=2;
    }   
    S*=4;
    Pi+=S;
    printf("Pi = "); //Вывод 
    printf("%f\n",Pi);
}
else
    printf("Proverte pravilnost' vvoda dannih!  \n");
    getch ();   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 11:01     Посчитать число Pi используя разложения с заданной точностью
Посмотрите здесь:

Вычислить бесконечную сумму с заданной точностью, используя рекуррентные зависимости C++
Вычислить с заданной точностью значение функции, используя ее разложение в ряд C++
Вычислить с заданной точностью значение функции , используя ее разложение в ряд: C++
Найти значение функции sinx с заданной точностью ε, используя данное разложение C++
Вычислить s = 1 + 1/1! + 1/2! + . + 1/n! + … с заданной точностью число Эйлера C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.06.2014, 11:30     Посчитать число Pi используя разложения с заданной точностью #2
DmitryM5, как минимум в 29 строке косяк. Целочисленное деление. Замените int на double для проверки.
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
24.06.2014, 14:02  [ТС]     Посчитать число Pi используя разложения с заданной точностью #3
Все работает спасибо!
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.06.2014, 14:06     Посчитать число Pi используя разложения с заданной точностью #4
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Не помогло
Не отвечайте так никогда. Приводите новый вариант к этим словам. Иначе не понятно, что Вы сделали, а что не сделали.
Вот например код:
http://ideone.com/2hPJcW уже 3.1333 Ближе к истине
Yandex
Объявления
24.06.2014, 14:06     Посчитать число Pi используя разложения с заданной точностью
Ответ Создать тему
Опции темы

Текущее время: 07:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru