{Программа локализации интервала унимодальности [a,b]}

advertisement
{Программа локализации интервала унимодальности [a,b]}
program unimod_1;
uses Crt;
function f(x: real): real;
begin
f:= sqr(x-1.7)
end;
var x: array [0..99] of real;
var x0,a,b,step:real;
var i,ib :integer;
var key: char;
Label 10, 20;
begin
ClrScr;
writeln ;
writeln ('
Filename: unimod_1_1');
writeln ('
Data : aug2009 ');
writeln ('
Author : gvg ');
writeln ('');
writeln ('');
writeln (' Программа локализации интервала унимодальности [a,b]');
writeln (' функции f(x)=(x-1.7)**2 из начальной точки х0= 0.0') ;
writeln (' с постоянным шагом') ;
writeln (' ');
{поиск интервала унимодальности}
10: write('задайте начальный шаг Step: ');
readln(step);
x0:=0.0;
{­начальная точка в этой прг всегда равна 0 }
a:=x0;
writeln (' Промежуточные результаты поиска : ');
writeln;
writeln (' в нач точке х0= ',x0:6:2,'
f(x0)=',f(x0):6:2);
for i:=1 to 99 do
begin
x[i+1]:=x[i]+step; {постоянный шаг}
write('Ќ и ЈҐ k=',i,' x=',x[i+1]:4:2,' f(x)=',f(x[i+1]):6:2);
readln;
if (f(x[i+1])>f(x[i])) then goto 20; {ф-ция увелич – интервал найден}
end;
writeln (' За 100 шагов интервал не найден');
writeln (' точка b= ', x[i]);
writeln (' Для возврата в меню -> Enter ');
readln;
goto 10;
{Интервал найден – печать результатов поиска }
20: b:=x[i+1]; {правая точка интервала b}
ib:=i;
{чисо шагов }
writeln (' Интервал определен за k= ',i,' итераций');
writeln (' a= ',x0:6:2, '
b= ',b:6:2);
writeln ('f(a)= ',f(a):6:2,' f(b)= ',f(b):6:2);
goto 10;
end.
Download