{Программа локализации интервала унимодальности [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.