uses crt,graph;
function F(x:real):real;
begin
F:=sin(x)/(1+x);
end;
var xn,xk,x,dx,y,ymn,ymx,xmn,z,t,mx,my:real;
x1,y1:array[1..101] of real;//массивы для графика и файла
m,i,gd,gm,x0,y0:integer;
g:text;
st:string;
begin
clrscr;
xn:=0;
xk:=10;
dx:=0.1;
assign(g,'file.txt');
rewrite(g);
xmn:=xn;
ymn:=F(xmn);
ymx:=ymn;
x:=xn;
m:=0;
while x<=xk+0.0001 do
begin
y:=F(x);
m:=m+1;
x1[m]:=x;//массив по х
y1[m]:=y;//массив по у
if y<ymn then
begin
ymn:=y;
xmn:=x;//максимальное для мастаба графика
end;
if y>ymx then ymx:=y;
x:=x+dx;
end;
writeln(g,'Znachenia argumenta X:');//запись в файл
for i:=1 to m do
write(g,x1[i]:0:2,' ');
writeln(g,'');
writeln(g,'Znachenia functii Y:');
for i:=1 to m do
write(g,y1[i]:0:2,' ');
writeln(g,'');
writeln('Минимальное значение функции=',ymn:0:2,' при х=',xmn:0:2);
writeln(g,'Minimalnoe znachenye functii=',ymn:0:2,' pri х=',xmn:0:2);
{нахождение суммы}
z:=1;
t:=1;
for i:=1 to 10 do
begin
t:=t*xmn/i;
z:=z+t;
end;
write('Z=',z:0:2);
write(g,'Summa Z=',z:0:2);//запись в файл
close(g);
write('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');//переход в графический режим
x0:=20;//начало координат
y0:=getmaxY div 2;
mx:=(getmaxX-2*x0)/(xk-xn);//масштабы по осям
if ymx>abs(ymn) then my:=(y0-20)/ymx
else my:=(y0-20)/abs(ymn);
line(x0,y0,getmaxX-20,y0);//ось Х
outtextXY(getmaxX-15,y0-15,'X');
for i:=0 to 10 do
begin
line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
str(i,st);
outtextXY(x0+round(i*mx),y0+10,st);
end;
line(x0,getmaxY-20,x0,20);//ось У
outtextXY(x0-15,10,'Y');
line(x0-3,y0-round(ymx*my),x0+3,y0-round(ymx*my));
str(ymx:0:2,st);
outtextXY(x0+5,y0-round(ymx*my),st);
line(x0-3,y0-round(ymn*my),x0+3,y0-round(ymn*my));
str(ymn:0:2,st);
outtextXY(x0+5,y0-round(ymn*my),st);
moveto(x0,y0-round(y1[1]*my));//график
for i:=1 to m-1 do
begin
setcolor(12);
lineto(x0+round(x1[i]*mx),y0-round(y1[i]*my));
end;
readln
end.