Листинг программы
program
SluchNapr;
uses
crt;
label
M1,M2,M3;
var
tau,tau0,tau1,T,T0,T1,k1,k2,Tmin,Tmax,taumin,taumax,htmax,htmin,htaumin,htaumax,a1,a2,b1,b2,R0,R1,R2
:real;
const
er1=2000;er2=5000;Sa=100;Sv=200;xoa=1;eps=0.01;
begin
clrscr;
writeln('vvedite
Tmin,Tmax,taumin,taumax');
readln(Tmin,Tmax,taumin,taumax);
htmin
:=0.4;
htaumax
:=0.004;
T0:=(Tmax+Tmin)/2;
tau0:=(taumax+taumin)/2;
{while
(T >= Tmin) and (tau >= taumin) do}
begin
k1:=853.13*exp(-er1*(1/T0));
k2:=735169.71*exp(-er2*(1/T0));
R0:=1/k1*(1+tau0*(k1+k2))*(Sa/tau0+Sv/xoa);
randomize;
M1:
b1:=
random(2);
b2:=
random(2);
a1:=b1/sqrt(b1*b1+b2*b2);
a2:=b2/sqrt(b1*b1+b2*b2);
M3:
T1:=T0+htmin*a1;
tau1:=tau0+htaumin*a2;
R1:=1/k1*(1+tau0*(k1+k2))*(Sa/tau0+Sv/xoa);
end;
if
R1<R0 then
begin
R0:=R1;
M2:
T0:=T1;
tau0:=tau1;
goto
M1;
end
else
begin
T1:=T0-htmin*a1;
tau1:=tau0-htaumin*a2;
R2:=1/k1*(1+tau0*(k1+k2))*(Sa/tau0+Sv/xoa);
end;
if
R2<R0 then
begin
R0:=
R2;
goto
M2;
end
else
begin
htmin
:= htmin/2;
htaumin:=htaumin/2;
end;
if
(htmin<=0.01) and (htaumin<= 0.001) then
begin
writeln(R0);
end
else
begin
goto
M3;
end;
Readln;
end.