Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задача на циклы

Автор: BoBaH 28.12.2003 21:07

Господа помогите найти ошибку в программе...
вот типа условие:
y=x-(x3/3!)+x5/5!-....+((-1)n-1*x2n-1(2n-1)!)+...
Епсилон=10-4, х=0.25

вот собствнно как я написал программу:

Код
Begin
..
..
y:=0; n:=1; k:=1; fact:=1;
repeat
for i:=2n-1 downto 2 do fact=i*fact;
f:=k*exp(2n-1)*ln(x))/fact;
y:=y+f;
n:=n+1;
k;=-k
until y<=eps
..
end.


говорят чушь написана в этой строке for i:=2n-1 downto 2 do fact=i*fact; что типа нельзя чтоб i был изменяющимся... как это исправить?

Автор: Amro 28.12.2003 21:47

for i:=2n-1 downto 2 do fact=i*fact да это действительно полная хрень
у тебя ведь уже цикл есть repeat /// until значит цикл for тут вообще не нужен, ты всё можешь сделать в цикле repeat
ты лучше сам факториал запиши вот так:

Код
n:=1;fact:=1
repeat
...
fact=(2n-1)*fact;
...
n:=n+1;
...
until y<=eps;

получится намного компактнее!!!