Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2016, 19:04   #1
LanaTsvik
Пользователь
 
Регистрация: 07.06.2016
Сообщений: 18
По умолчанию С++ Определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по формуле

Помогите, пожалуйста, нужно определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по формуле(изображение ниже).
Понятия не имею как определить количество членов ряда, у меня получается только вычислить Пи:
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
 int i=0;
 float sum=0, p=1, eps;
 cout<<"vvedit eps ";
 cin>>eps;
 while (abs(p)>=eps){
    p=4*float(pow(-1, i))/(2*i+1);
    sum+=p;
    n++;
 }
  cout<<"p= "<<sum<<endl;
    return 0;
}
Изображения
Тип файла: jpg inet.JPG (3.9 Кб, 123 просмотров)
LanaTsvik вне форума Ответить с цитированием
Старый 16.12.2016, 19:19   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Заведи счетчик итераций и плюсуй туда по единичке
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.12.2016, 20:40   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,376
По умолчанию

Зачем вычислять степень -1 и зачем каждый элемент ряда умножать на 4?

Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
 int i=0, k = 1;
 float sum=1, ai, eps;
 cout<<"vvedit eps ";
 cin>>eps;
 while (abs(ai)>=eps){
   i++;
   k = -k;
   ai = k/(2*i+1);
   sum = sum + ai;
 }
 sum = 4 * sum;
...
// sum - значение pi
// i - это кол-во сложенных элементов
...
}
Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 16.12.2016, 20:52   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Заведи счетчик итераций и плюсуй туда по единичке
Так он вроде это и делает:
Код:
 n++;
хотя, возможно и сам об этом не знает.
К тому же эта n предварительно не объявлена.
type_Oleg вне форума Ответить с цитированием
Старый 16.12.2016, 21:07   #5
LanaTsvik
Пользователь
 
Регистрация: 07.06.2016
Сообщений: 18
По умолчанию

я просто ошиблась, i вместо n)
LanaTsvik вне форума Ответить с цитированием
Старый 16.12.2016, 21:15   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от LanaTsvik Посмотреть сообщение
количество членов ряда, необходимых для вычисления числа Пи с заданной точностью
Кстати, это можно определять 2 способами:
1) тупо проверять, не меньше ли очередной член эпсилона - просто, но строго говоря неправильно. Хотя чаще всего это именно и требуется в задании.
2) сравнивать получаемую сумму c истинным значением - правильно, но не всегда возможно. Но у вас наверное можно сравнивать с числом пи.

Вам как надо? Это оговорено в задании ?
type_Oleg вне форума Ответить с цитированием
Старый 16.12.2016, 21:19   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,376
По умолчанию

type_Oleg
Цитата:
Вам как надо? Это оговорено в задании ?
Там все в условии есть ...
Цитата:
...нужно определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε...
А чем предложенный вариант не ...
PS: Кстати, умножение на четыре следует сделать уже подсчитанной суммы ряда, а не суммы элементов, умноженных на четыре, как в решении ТС.
Этот ряд дается для pi/4.

Как-то так, ...
Как-то так, ...

Последний раз редактировалось ViktorR; 16.12.2016 в 21:23.
ViktorR вне форума Ответить с цитированием
Старый 16.12.2016, 21:24   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

ViktorR, вычислите с точностью 0.01 сумму бесконечного ряда:
1+1/2+1/3+1/4...
type_Oleg вне форума Ответить с цитированием
Старый 16.12.2016, 21:33   #9
LanaTsvik
Пользователь
 
Регистрация: 07.06.2016
Сообщений: 18
По умолчанию

Вот что написано в правилах:
1. При решении задачи предусмотреть выведение рассматриваемых членов последовательности и их порядковые номера.
2. При решении задачи предусмотреть просмотр не более 100 членов последовательности, даже если нужная точность не достигнута.
(Я думала эти правила не так уж и важны)
LanaTsvik вне форума Ответить с цитированием
Старый 16.12.2016, 21:38   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,376
По умолчанию

Во-первых, одно дело ряд 1/n и другое дело знакопеременный ряд +\-1/2n.
Во-вторых, да, конечно, может случиться, что сумма остальных членов ряда будет не меньше последнего учтенного элемента (это о двух способах оценки).
По условию задачи суммировать надо только те элементы ряда, значения которых превосходят eps.
Так что уже 1/101 (для предложенного Вами ряда и eps) в сумму не должно входить.
И ...
PS: Второе условие важно. Это условие следует предусматривать на тот случай, когда ряд сходится слабо и возможно зацикливание.
Т.е. в теле цикла с подсчетом суммы и числа складываемых элементов надо предусмотреть условие выхода, когда число элементов превышает 100.
Первое условие - это для просмотра того, как ряд сходится. Лучше результат выводить в файл.

Как-то так, ...
Как-то так, ...

Последний раз редактировалось ViktorR; 16.12.2016 в 21:46.
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для вычисления значения функции - по формуле найти сумму ряда с заданной точностью КСЕНИЯ2 Паскаль, Turbo Pascal, PascalABC.NET 4 14.03.2015 15:08
Извелечение корня с любым натуральным показателем K их положительного числа X с заданной точностью ε Restruktit Общие вопросы C/C++ 0 12.01.2014 20:01
Определить количество слагаемых, необходимых для достижения заданной точности ε при исчислении числа π по разложению в ряд (язык С lizka6011997 Помощь студентам 21 17.11.2013 20:00
найти сумму членов ряда с точностью ε для заданного х и их количество (Паскаль) gylayko Помощь студентам 0 12.10.2011 16:50