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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 16:10   #1
MarchZM
Новичок
Джуниор
 
Регистрация: 07.10.2010
Сообщений: 2
По умолчанию Сумма ряда с заданной точностью

Помогите пожалуйста программа неправильно считает, не могу найти закономерность
#include <iostream>
#include <math.h>
using namespace std;
double calculate_for(const double , const double , int& , double& );
double calculate_while(const double , const double , int& , double& );
double calculate_do_while(const double , const double , int& , double& );
bool repeat (void);
void main (void)
{
setlocale (LC_ALL, "Rus");
double x, eps, result, summand;
int numbers_of_summands;

do
{
do
{
cout << "Введите X (-25<X<25): ";
cin >> x;

if (x>25 || x<-25)
cout << "\n\nX должен быть (-25;25), повторите попытку\n\n";
}
while(x>25 || x<-25);

do
{
cout << "Введите точность (0<ТОЧНОСТЬ<=1]: ";
cin >> eps;

if (eps<=0 || eps>1)
cout << "\n\nТочность должна быть (0;1], повторите попытку\n\n";
}
while(eps<=0 || eps>1);

cout << "\n\nМеню" << "\nДля решения через for нажмите 1" << "\nДля решения через while нажмите 2" << "\nДля решения через do_while нажмите 3" << "\nДля выхода нажмите 0\n";
int number;
cin >> number;
switch (number)
{
case 1: calculate_for(x, eps, numbers_of_summands, summand); break;
case 2: calculate_while(x, eps, numbers_of_summands, summand); break;
case 3: calculate_do_while(x, eps, numbers_of_summands, summand); break;
case 0: exit(0);
}
if (number=1)
result=calculate_for(x, eps, numbers_of_summands, summand);
if (number=2)
result=calculate_while(x, eps, numbers_of_summands, summand);
if (number=3)
result=calculate_do_while(x, eps, numbers_of_summands, summand);

cout << "Сумма ряда: " << result << "\nКоличество слагаемых: " << numbers_of_summands << "\nПоследнее слагаемое: " << summand;
}
while(repeat());
}

bool repeat (void)
{
char symbol;

cout << "\n\nПовторить? Да/Нет: ";
cin >> symbol;

if ((char)tolower(symbol)=='y'||'Y'||' д'||'Д')
return 1;
else
return 0;
}







#include <math.h>
double calculate_for(const double x, const double eps, int& numbers_of_summands, double& summand)
{
numbers_of_summands=1;
double a=-4*x-x*x;
double b=2;
summand=a/b;
double result=summand;
for (int i=2;fabs(summand)>eps;i++)
{
a+=2*i*x;
b*=2*i;
summand=a/b;
if(i%2!=0);
else summand*=-1;

result+=summand;
numbers_of_summands=i;
}
return result;
}
Изображения
Тип файла: jpg Снимок.JPG (13.7 Кб, 24 просмотров)
MarchZM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождения суммы ряда с заданной точностью E pinch000 Общие вопросы C/C++ 1 06.11.2009 13:03
найти бесконечную сумму ряда с заданной точностью логарифм Паскаль, Turbo Pascal, PascalABC.NET 1 23.07.2009 07:17
Сумма бесконечного ряда с точностью Паскаль Кириллович Помощь студентам 9 30.05.2009 13:36
Найти сумму ряда с точностью e, если дан общий член этого ряда JiLiYa Общие вопросы C/C++ 2 18.02.2009 11:11