PROGRAM Simplex; CONST alpha=1; beta=2; gamma=0.5; TYPE vektor2=array[1..2] of real; vektor3=array[1..3] of real; vektor32=array[1..3,1..2] of real; FUNCTION f(x:real;y:real):real; BEGIN f:=100*sqr(y-x*x)+sqr(1-x); {f:=sqr(x)+sqr(y);} END; PROCEDURE ZAMEN(VAR x:vektor32; VAR y:vektor3; i1:integer; i2:integer); VAR i:integer; c:vektor2; d:real; BEGIN FOR i:=1 TO 2 DO BEGIN c[i]:=x[i1,i]; x[i1,i]:=x[i2,i]; x[i2,i]:=c[i]; END; d:=y[i1]; y[i1]:=y[i2]; y[i2]:=d; END; VAR i,j,k:integer; x:vektor32; y:vektor3; c,xt,xc,xe:vektor2; yt,ye,yc:real; fileout:text; BEGIN ASSIGN(fileout,'body.dat'); REWRITE(fileout); x[1,1]:=0.1; x[1,2]:=-15.2; x[2,1]:=4.7; x[2,2]:=19; x[3,1]:=14.8; x[3,2]:=5.9; y[1]:=f(x[1,1],x[1,2]); y[2]:=f(x[2,1],x[2,2]); y[3]:=f(x[3,1],x[3,2]); FOR k:=1 TO 30 DO BEGIN IF (y[3]y[2]) THEN BEGIN FOR i:=1 TO 2 DO xc[i]:=c[i]+gamma*(x[3,i]-c[i]); yc:=f(xc[1],xc[2]); IF (yc