Очень прошу помощи, разобраться осталась малость.
Выкладываю блок-схему и код( код чуть чуть в целях личного удобства отличается от схемы, но разницы собсно значимой нету).
Uses Crt;
var
j,k:integer;
x,y,s,V,V0,t,p,eps:real;
Function F(var x,y:real):real;
begin
f:=6*x*x+3*y*y+10;
end;
Function G1(var x:real):real; {частная производная по Х}
begin
g1:=12*x;
end;
Function G2(var y:real):real; {частная производная по Y}
begin
g2:=6*y;
end;
procedure GDH(var x,y,V:real);
var
p,h1,h2,q,z:real;
begin
V:=V0;
j:=0;
s:=f(x,y);
while (j>=0) do begin {цикл для возведения 2 в степень j}
j:=j*2;
repeat
j:=j*2;
if j=0 then
j:=1
else
h1:=g1(x);
h2:=g2(y);
q:=x-(V*h1)/j*2;
z:=y-(V*h2)/j*2;
p:=f(q,z);
t:=((h1*h1+h2*h2)*V)/(j+1)*2;
until (P<=(S-T));
V:=V/j*2;
j:=j+1
end;
end;
Procedure Input(var x,y,V0,eps:real);
begin
writeln('');
writeln(' Vvedite koordinati na4alnoi to4ki (x,y)');
writeln('');
write(' x=');
read(x);
write(' y=');
read(y);
writeln('');
writeln('zadaite na4alnii shag V0');
readln(V0);
writeln('');
writeln(' Zadaite to4nost eps');
writeln('');
write(' eps=');
read(eps);
end;
Procedure Otrezok(k: integer; var p,x,y,eps:real);
var
h1,h2,f1:real;
begin
writeln('');
k:=0;
Repeat
GDH(x,y,V);
h1:=g1(x);
h2:=g2(y);
x:=x-V*h1;
y:=y-V*h2;
f1:=f(x,y);
k:=k+1;
until ((abs(h1)<eps) and (abs(h2)<eps));
writeln('');
writeln(' X = ',x:5:4);
writeln(' Y = ',y:5:4);
writeln(' Zna4enie funkcii F = ',f(x,y):0:0);
readln;
end;
begin
TextBackGround(white);
TextColor(blue);
ClrScr;
Input(x,y,V0,eps);
Otrezok(k,p,x,y,eps);
readln;
end.
Сообщение отредактировано: 3 kilos -