Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
02.05.2014
Размер:
1.45 Кб
Скачать
Program pocoord;
Uses crt,graph;
Var
x,y,e,a,x1,x2,g: real;
i,k,dr,md: integer;

function realst(r:real; dig,deg:integer):string;
var Buf:string[20];
begin
str(r:dig:deg,buf);
realst:=Buf;
end;

Function f(x1,x2: real): real;
begin
f:=x1-1.4*x2+exp(0.01*x1*x1+0.11*x2*x2);
end;

Function p1(x1,x2: real): real;
begin
p1:=1+exp(0.01*x1*x1+0.11*x2*x2)*0.02*x1;
end;

Function p2(x1,x2: real): real;
begin
p2:=-1.4+exp(0.01*x1*x1+0.11*x2*x2)*0.22*x2;
end;

begin
clrscr;
write('vvedite nachalnoe priblisenie Xo1 '); readln(x1);
write('vvedite nachalnoe priblisenie Xo2 '); readln(x2);
write('vvedite postoianij shag a '); readln(a);
write('vvedite uslovie ostanova e '); readln(e);
k:=0;
dr:=detect;
initgraph(dr,md,'');
setGraphmode(md);
line(399,0,399,470);
line(0,200,640,200);
outtextxy(620,210,'x1');
outtextxy(410,455,'x2');
setcolor(black);
lineto(399,455);
setcolor(white);
repeat
if (i mod 2)=0 then x1:=x1-a*p1(x1,x2);
if (i mod 2)<>0 then x2:=x2-a*p2(x1,x2);
i:=i+1;
g:=sqrt(p1(x1,x2)*p1(x1,x2)+p2(x1,x2)*p2(x1,x2));
k:=k+1;
lineto(round(x1*30)+400,round(x2*30)+200);
until (abs(g)<e)or(abs(g)=e);
outtextxy(40,20,'tochka minimuma imeet koordinati: ');
outtextxy(40,30,'x1= ' + realst(x1,10,5));
outtextxy(40,40,'x2= ' + realst(x2,10,5));
outtextxy(40,50,'y= ' + realst(f(x1,x2),10,10));
outtextxy(40,60,'chislo vichislenij ravno '+realst(k,5,0));
Readkey;
closegraph;
end.
Соседние файлы в папке №2