input p$,q$,e$;
input x1,y1,x2,y2;
input h;
input e;
input l;
n:=(x2-x1)/h;
if int(n)<>n then n:=int(n)+1:h:=(x2-x1)/n:print "step=",h;
dim x(n+1),y(n+1),z(n+1),a(n+1),u(l+1),v(l+1),s(l+1),t(l+1);
f$:="-z*val(p$)-y*val(q$)":g$:="z";
x(1):=x1;
y(1):=y1;
z(1):=0;
gosub l1;
for i:=1 to n+1;
a(i):=y(i);
next i;
f$:=f$+"+val(e$)";
gosub l1;
for i:=1 to n+1;
y(i):=(y2-y(n+1))*a(i)/a(n+1)+y(i);
next i;
input h1;
for i:=1 to n+1 step h1/h;
print x(i),y(i);
next i;
end;
label l1;
for i:=1 to n;
x:=x(i);
y:=y(i);
z:=z(i);
t(1):=y+h*val(f$);
v(1):=z+h*val(g$);
a:=2;
for j:=1 to l;
z:=x(i);
y:=y(i);
z:=z(i);
for k:=1 to a;
f:=val(f$);
g:=val(g$);
x:=x+h/a;
y:=y+h/a*f;
z:=z+h/a*g;
next k;
s(1):=y;
u(1):=z;
f1:=1;
for k:=1 to j;
f1:=f1*2;
s(k+1):=s(k)+(s(k)-t(k))/(f1-1);
u(k+1):=u(k)+(u(k)-c(k))/(f1-1);
if abs(s(k+1)-s(k))<=s(k)*e and abs(u(k+1)-u(k))<=u(k)*e then l2;
next k;
j1:=j+1;
for k:=1 to j1;
t(k):=s(k);
v(k):=u(k);
next k;
a:=a*2;
next j;
print "no converge";
go l3;
kabel l2;
x(i+1):=x(i)+h;
y(i+1):=s(k+1);
z(i+1):=u(k+1);
next i;
label l3;
return;