програма паскаль процедурыпрога не считает у=0 постоянно.. почему...?
uses crt;
var xn,xk,xh,a:real;
{ввод значения интервала и проверка}
PROCEDURE VVOD(var a,xn,xk,xh:real);
Begin
repeat
writeln ('Vvedite Znachenia a,xn,xk,xh');
readln (a,xn,xk,xh);
until((xn<xk) and (xh>0));
end;
FUNCTION summ1(x:real):real;
var i:integer; sum1,p:real;
begin
sum1:=0;
for i:=10 to 20 do
begin
p:=(i*x+1);
sum1:=sum1+p;
end;
summ1:=sum1;
end;
FUNCTION summ2(x:real):real;
var k:integer; sum2,q:real;
begin
sum2:=0;
for k:=5 to 10 do
begin
if (k-x*x*x)<>0 then q:=sin(x*x)/(k-x*x*x);
sum2:=sum2+q;
end;
summ2:=sum2;
end;
PROCEDURE TABL(var a,xn,xk,xh:real);
var summ1,summ2,x,y:real;
begin
x:=xn;
begin
writeln('___________________');
writeln(' x : y ');
writeln('___________________');
while x<=xk do
begin
if (a+x)<=0 then writeln(x:6:2,' | ERROR')
else
begin
y:=(summ1/sqrt(a+x))*summ2;
writeln(x:6:2,' | ',y:6:2);
end;
x:=x+xh;
end;
writeln('___________________');
end;
end;
{*****main*****}
begin
clrscr;
VVOD(a,xn,xk,xh);
TABL(a,xn,xk,xh);
readln;
end.