Program RungeKutta; uses crt,graph; Var janafl:Text; s,i,k:integer; a,b,x0,y0,x1,x2,z,h,xmax,ymax,xmin,ymin:real; u,q1,q2,q3,q4,l1,l2,l3,l4:real; ImeFl:string; x,y,Q,L,P:array[0..1100] of real; c:array[1..1500,1..2] of real; smetka : boolean; Function f(x,y:real):real; begin f:=y/x+sqr(y)+sqr(x); end; Procedure Vavej; {Procedure za vavejdane na dannite ot klaviatura } Begin k:=0; writeln; writeln('Reshavane na uravnenieto'); writeln; writeln(' ','y/x+ya*ya+x*x'); writeln; write('Dolna Granica: ');readln(a); write('Gorna Granica: ');readln(b); u:=x[0]; write('Nachalna Stoinost - X: '); readln(x0); write('Nachalna Stoinost - Y: '); readln(y0); write('Vavedi stupkata h: ');readln(h); readln; ClrScr; smetka := false; End; Procedure Izv; {Procedura za izvejdane na vhodnite danni} Begin writeln; writeln('Reshavane na uravnenieto'); writeln; writeln(' ','y/x+ya*ya+x*x'); writeln; writeln('S nachalni stoinosti:'); writeln; writeln(' Dolna Granica = ',a:9:3); writeln(' Gorna Granica = ',b:9:3); writeln(' Nachalna Stoinost (X) = ',x0:9:3); writeln(' Nachalna Stoinost (Y) = ',y0:9:3); writeln; writeln(' Stupka: h= ',h:9:3); readln; ClrScr End; procedure Calculate(a, b, x0, y0, h: real); var x, y, xi, yi: real; k1, k2, k3, k4: real; M, i: integer; begin M:=round((b-a)/h); for i := 1 to M do begin c[i,1]:=0; c[i,2]:=0; end; xi:=x0; yi:=y0; xmax := -maxint; ymax := -maxint; xmin := maxint; ymin := maxint; c[1,1] := x0; c[1,2] := y0; for i:=2 to M do begin k1:=h*F(xi, yi); k2:=h*F(xi+h/2, y+k1/2); k3:=h*F(xi+h/2, y+k2/2); k4:=h*F(xi+h, yi+k3); xi:=xi+h; yi:=yi+(k1+2*k2+2*k3+k4)/6; if Xi>Xmax then Xmax:=xi; if XiYmax then Ymax:=Yi; if Yi-1) and(S<9); Case S of 1 : Vavej; 2 : InFile; 3 : ZapFile; 4 : Izv; 5 : Calculate(a,b,x0,y0,h); 6 : Rezul; 7 : RezultFile; 8 : graphh; end; Until S=0; END. {Krai na programata}