Показать сообщение отдельно
Старый 30.11.2003, 19:16     # 1
Vitus.L
Newbie
 
Регистрация: 20.05.2003
Сообщения: 34

Vitus.L МолодецVitus.L МолодецVitus.L Молодец
знатокам Паскаля

..., груз поймал - вроде такое блёвое задание, но чё-то Паскаль накосорезил. Вывожу код программы:
uses crt;
const eps=1e-5;
var h,a,b,l,x,zn,ch,s,y,st:real;
n,j,i:integer;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
write('n=');readln(n);
writeln('eps=',eps:1:5);
x:=a;
h:=(b-a)/n;
for j:=1 to n+1 do
begin
y:=exp(x*cos(pi/4))*cos(x*sin(pi/4));
ch:=1;zn:=1;s:=1;i:=1;st:=1;
repeat
ch:=cos(i*pi/4);
st:=st*x;
zn:=zn*i;
l:=ch*st/zn;
s:=s+l;
i:=i+1;
until Y=S;{eps<abs(l);}
writeln(j, ' x= ',x:6:3,' y= ',y:6:3,' s= ',s:6:3);
x:=x+h;
end;
readln
end.
Тема такая: запуская на выполнение с параметрами а=5,в=10,н=3. Ставлю брейкпойнт на 24 строку и в отладчике слежу за перем-ми Y,S. Смотрю где-то на 25й итерации переменные приравниваются. дальше по условию должен быть выход - а не фига прога продолжает работу, причем S с этой поры не изменяется, а по логике должна (S:=S+L). В чем праблы не пойму - может кто поможет?
P.S. О себе TP7.1
Win2000 Server
Очень срочно надо, людей обламывать неохота.
Я сегодня еще вернусь.
Авей...
Vitus.L вне форума