Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график это - Pascal ABC

Формулировка задачи:

Помогите с решением. Написать блок-схему и программу вычисления функции на заданном промежутке с шагом 0.2 и построить график этой функции.

Код к задаче: «Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график это - Pascal ABC»

textual
uses crt,graphABC;
const a=-1;
      b=3;
      h=0.2;
function f(x:real):real;
begin
if x<0 then f:=exp(-cos(3*x))
else if x<=1.5 then f:=2*x*x*sqrt(abs(cos(2*x)))
else f:=x;
end;
var x0,y0,i:integer;
    x,max,mx,my:real;
begin
x:=a;
max:=f(x);
while x<b+h/2 do
 begin
  writeln('x=',x:4:1,'  y=',f(x):6:3);
  if f(x)>max then max:=f(x);
  x:=x+h;
 end;
write('Нажмите Enter для просмотра графика');
readln;
hidecursor;
clearwindow;
x0:=windowwidth div 4;
y0:=windowheight-50;
mx:=(windowwidth-x0-30)/3;
my:=(y0-30)/max;
line(0,y0,windowwidth-10,y0);
line(x0,y0,x0,10);
textout(windowwidth-20,y0-20,'X');
textout(x0+5,10,'Y');
textout(x0+2,y0+5,'0');
for i:=1 to 8 do
 begin
  line(x0+round(i*mx/2),y0-3,x0+round(i*mx/2),y0+3);
  textout(x0+round(i*mx/2),y0+5,floattostr(i/2));
  line(x0-round(i*mx/2),y0-3,x0-round(i*mx/2),y0+3);
  textout(x0-round(i*mx/2),y0+5,floattostr(-i/2));
  line(x0-3,y0-round(i*my/2),x0+3,y0-round(i*my/2));
  textout(x0-25,y0-round(i*my/2),floattostr(i/2));
 end;
x:=a;
while x<=b do
 begin
  setpixel(x0+round(x*mx),y0-round(f(x)*my),clred);
  x:=x+0.001;
 end;
setpencolor(clgreen);
line(x0+round(1.5*mx),y0,x0+round(1.5*mx),0);
end.

9   голосов, оценка 3.778 из 5


СОХРАНИТЬ ССЫЛКУ