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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 17:04   #1
Anarx
 
Регистрация: 17.12.2008
Сообщений: 5
По умолчанию Сумма бесконечного ряда (баг)

Сделал програму но она не хочет считать суму ряду...никак не могу найти где я ошибся, помогите плз.

Код:
# include <stdio.h>
# include <math.h>
# include <conio.h>
long fc(int n)
{
int k;
long fact;
fact=1;
for(k=1;k<=n;k++)
fact*=k;
return(fact);
}
float el(float x,int i)
{
 float r;
r=(i*pow(x,i+1))/fc(i+2);
return(r);
}
main()
{
int i;
float e,xo,sum;
const float eps=3e-5, x=0.63;
clrscr();
 
printf("To4nixt ob4isl: %10.7f \n" ,eps);
xo*=x;
sum=0;
i=1;
e=el(xo,i);
while(fabs(e)>eps)
{
printf("%3d 4len ryadu: %15.7f \n",i,e);
sum=sum+e;
i++;
xo*=x;
}
printf("suma ryadu= %17.7f \n",sum);
getchar();
return(0);
}
Anarx вне форума Ответить с цитированием
Старый 22.03.2009, 19:16   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

особо не вглядывался, но когда я такую програмку писал у меня часто случалось переполенние (т.е. когда число больше чем максимальное для данного типа числа).

Хотя есть еще один момент

Код:
while(fabs(e)>eps)
{
printf("%3d 4len ryadu: %15.7f \n",i,e);
sum=sum+e;
i++;
xo*=x;
}
внутри этого цикла ни e ни eps не изменяются, так что если он начнется, то он будет бесконечным.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 23.03.2009, 15:29   #3
Pashan
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 89
По умолчанию

В строке xo*=x; неинициализированный xo умножается на x. Может, xo = x; ?
К тому же ROD верно написал. Внутри цикла какая-то ерунда. Написано sum=sum+e;, при этом e не меняется.
Pashan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две задачки на матрицы и одна на сумму бесконечного сходящегося ряда... Кто сможет помочь? GorNikSar Паскаль, Turbo Pascal, PascalABC.NET 10 13.01.2009 04:59
Расчитывание суммы бесконечного ряда до определённого значения SLec Помощь студентам 3 17.11.2008 22:18
Delphi. Вычислить сумму бесконечного ряда Alex1991 Помощь студентам 1 23.10.2008 22:39
Паскаль. Сумма бесконечного ряда Tream Помощь студентам 4 13.10.2007 23:42