Помощь - Поиск - Пользователи - Календарь
Полная версия: Сумма ряда не работает программа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
KATYSHA
Проверьте пожалуйста почему не работает.Задание такое:На заданном отрезке [a,b] вычислить значение сумм ряда с заданной точностью,а также вычислить значение функции.Кол-во точек произвольное.
Формулы я прикрепила.
Нажмите для просмотра прикрепленного файла
Там короче,когда проверяешь программу значения должны быть одинаковы,а у меня разница большая. wacko.gif

Uses CRT;
Var S,x,y,p,f,e,eps:Real;
i,k:integer;
begin
clrscr;
eps:1e-4;
write ('x=');
readln(x);
k:=1;
p:=0;
f:=1;
s:=0;
i:=1;
repeat
p:=p*x*x;
f:=2*i*(2*i-1);
e:=k*p/f;
s:=s+e;
i:=i+1;
k:=-k;
until abs(e)<=eps;
y:=x*arctan(x)-ln(sqrt(1+x*x));
writeln ('s=',s:1:3,' y=',y:1:3);
readln;
end.



М
To: KATYSHA
на первый раз я за тебя поправил give_rose.gif
потом буду наказвать...
Altair

volvo
To: KATYSHA
1. Пользуйся тегами CODE
2. Присоедини картинку вместо DOC (см. правила)
3. Переименуй тему как положено...

... или тема будет закрыта ...
KATYSHA
shok.gif ой,простите!!!!!!!я просто впервый раз!больше такого не будет blush.gif
volvo
KATYSHA
Цитата
когда проверяешь программу значения должны быть одинаковы,а у меня разница большая.
А вот так:
Uses CRT;
Var
X, Y, s, next, delta: real;
n: integer;
const
eps = 10E-6;

begin
clrscr;
write ('x = '); readln(x);

s := 0;
n := 0;
next := -1;

repeat
inc(n);
next := -(next * sqr(x));
delta := next / (2 * n * (2 * n - 1));
s := s + delta;
until abs(delta) <= eps;

Y := X * arctan(x) - ln(sqrt(1 + X*X));
writeln ('S = ', s:10:6,' Y = ', Y:10:6);
readln;
end.
wink.gif
KATYSHA
Прости,а что за inc(n) и delta?что они значат?просто мы не ставили в программы такие значения smile.gif
volvo
Inc(n) это то же что
N := N + 1
а Delta - это значение, на которое увеличивается/уменьшается сумма при очередном проходе... (это же моя переменная, какая разниуа, как она будет называться? blum.gif )
KATYSHA
Цитата(volvo @ 18.11.2005 23:13)
Inc(n) это то же что
N := N + 1
а Delta - это значение, на которое увеличивается/уменьшается сумма при очередном проходе... (это же моя переменная, какая разниуа, как она будет называться?  blum.gif )



спасибо,теперь поняла !priva1.gif
KATYSHA
Цитата(volvo @ 18.11.2005 23:02)
KATYSHA
А вот так:

Слушай,там опять что-то не то.Пишет ошибку error 205: Floating point overflow.Может потому что на 0 делить нельзя.На входном значении ты же пишешь,что n=0,а в дельте (ниже)там всё делится на n unsure.gif
virt
ты х какое ввела?
volvo
KATYSHA,
virt абсолютно прав... Только при Х < 1 ряд будет сходящимся... Если ввести Х > 1, то ряд начнет расходиться, и как следствие - переполнение и
Цитата
error 205: Floating point overflow
yes2.gif

Цитата
На входном значении ты же пишешь,что n=0,а в дельте (ниже)там всё делится на n
А Inc(n) перед делением ты не заметила?
KATYSHA
Цитата(volvo @ 19.11.2005 14:59)
KATYSHA,
virt абсолютно прав... Только при Х < 1 ряд будет сходящимся... Если ввести Х > 1, то ряд начнет расходиться, и как следствие - переполнение и  yes2.gif




Да я что только не писала,и отрицательные числа и положительные.Всегда пишет эту ошибку unsure.gif
volvo
Да не отрицательные/положительные делают проблему... Число должно быть 0 < X < 1 !!!

Попробуй 0.5 или 0.75 например...
KATYSHA
Цитата(volvo @ 21.11.2005 19:32)
Да не отрицательные/положительные делают проблему... Число должно быть 0 < X < 1 !!!

Попробуй 0.5 или 0.75 например...


Да,так работает good.gif .А целые как вводить,мне впринципе нужны целые числа,а то работа не засчитана будет.-)Можно ведь и целые как-то?
volvo
Цитата
Можно ведь и целые как-то?
Только не в этом задании. Этот ряд с целыми числами будет расходиться... Результат ты видела: "Error 205: Floating Point Overflow"
KATYSHA
а как написать программу для этого же задания,но с модулями??? blink.gif
KATYSHA
Volvo,а как это же задание написать с помощью модулей???не саму программу уже написанную,а просто это задание.Ну хотя бы подскажи wub.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.