var x := 0.1; xe := 3.1; h := 0.15; y, xn, yn, xp, yp: double;
begin yp := MaxDouble; yn := yp; repeat y := F(a, b, x); if y > 0 then begin if y < yp then begin yp := y;xp := x end end else if y < 0 then begin if y < yn then begin yn := y;xn := x end end; x += h; until x > xe; Writeln('Минимальное отрицательное ', yn, ' при х=', xn); Writeln('Минимальное положительное ', yp, ' при х=', xp) end.
Тестовое решение: Минимальное отрицательное -446219.37704747 при х=3.1 Минимальное положительное 11.837734702392 при х=0.85
{ Borland Pascal 7.01 } {$G+} {$N+} uses Crt;
function F(a,b,x:double):double; begin F:=(1+exp(x*ln(a)))/((b-x)*exp(3*ln(sin(x end;
const a = 3.45; b = 1.62; var x,xe,h,y,xn,yn,xp,yp:double; begin ClrScr; x := 0.1; xe := 3.1; h := 0.15; yp := 1E308; yn := yp; repeat y := F(a, b, x); if y > 0 then begin if y < yp then begin yp := y; xp := x end end else if y < 0 then begin if y < yn then begin yn := y; xn := x end end; x := x + h; until x > xe; Writeln('Минимальное отрицательное ', yn, ' при х=', xn); Writeln('Минимальное положительное ', yp, ' при х=', xp); ReadKey end.
Тестовое решение: Минимальное отрицательное -4.46219377047470E+0005 при х= 3.10000000000000E+0000 Минимальное положительное 1.18377347023920E+0001 при х= 8.50000000000000E-0001
// PascalABC.Net 3.0
function F(a, b, x: double):= (1 + Power(a, x)) / ((b - x) * Power(sin(x), 3));
const
a = 3.45; b = 1.62;
var
x := 0.1; xe := 3.1; h := 0.15;
y, xn, yn, xp, yp: double;
begin
yp := MaxDouble; yn := yp;
repeat
y := F(a, b, x);
if y > 0 then
begin if y < yp then begin yp := y;xp := x end end
else
if y < 0 then
begin if y < yn then begin yn := y;xn := x end end;
x += h;
until x > xe;
Writeln('Минимальное отрицательное ', yn, ' при х=', xn);
Writeln('Минимальное положительное ', yp, ' при х=', xp)
end.
Тестовое решение:
Минимальное отрицательное -446219.37704747 при х=3.1
Минимальное положительное 11.837734702392 при х=0.85
{ Borland Pascal 7.01 }
{$G+} {$N+}
uses Crt;
function F(a,b,x:double):double;
begin
F:=(1+exp(x*ln(a)))/((b-x)*exp(3*ln(sin(x
end;
const
a = 3.45; b = 1.62;
var
x,xe,h,y,xn,yn,xp,yp:double;
begin
ClrScr;
x := 0.1; xe := 3.1; h := 0.15;
yp := 1E308; yn := yp;
repeat
y := F(a, b, x);
if y > 0 then
begin if y < yp then begin yp := y; xp := x end end
else
if y < 0 then
begin if y < yn then begin yn := y; xn := x end end;
x := x + h;
until x > xe;
Writeln('Минимальное отрицательное ', yn, ' при х=', xn);
Writeln('Минимальное положительное ', yp, ' при х=', xp);
ReadKey
end.
Тестовое решение:
Минимальное отрицательное -4.46219377047470E+0005 при х= 3.10000000000000E+0000
Минимальное положительное 1.18377347023920E+0001 при х= 8.50000000000000E-0001
const
a=-6; b=6; h=1;
begin
for var x:=a to b do Writeln('x=',x:2,', y=',ln(sqr(x)-9)/x)
end.
Результат выполнения программы:
x=-6, y=-0.549306144334055
x=-5, y=-0.554517744447956
x=-4, y=-0.486477537263828
x=-3, y=бесконечность
x=-2, y=NaN
x=-1, y=NaN
x= 0, y=NaN
x= 1, y=NaN
x= 2, y=NaN
x= 3, y=-бесконечность
x= 4, y=0.486477537263828
x= 5, y=0.554517744447956
x= 6, y=0.549306144334055
Примечание: NaN система выдает, если не может выполнить какое-то действие. В данном случае под знаком логарифма оказывается неположительное число.