Построение графика функции - Free Pascal

Узнай цену своей работы

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

Построить график функции в паскале y=1/(x^2+3*x+1).

Решение задачи: «Построение графика функции»

textual
Листинг программы
uses graph;
const
x1=-5;//начало и конец графика в реальных значениях
x2=2;
var mx,my,x,dx,y:real;
    x0,y0,px,py,i,k:integer;
    s:string;
begin
initgraph(x0,y0,'');
x0:=5*getmaxX div 7;//начало координат в центре экрана
y0:=getmaxY div 2;
mx:=(x0-20)/-x1;//масштаб  по Х
my:=(y0-20)/10;
line(0,y0,getmaxX,y0); //оси
line(x0,0,x0,2*y0);
for i:=1 to 10 do //максимальное количество засечек в одну сторону
 begin
  line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));//засечки на оси У
  line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
  line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); //засечки на оси Х
  line(x0-round(i*mx),y0-3,x0-round(i*mx),y0+3);
  //подпись оси У
  str(i,s);
  outtextXY(x0-25,y0-round(i*my),s);//оответственно засечкам
  outtextXY(x0-25,y0+round(i*my),'-'+s);
  //подпись оси Х}
  outtextXY(x0+round(i*mx),y0+10,s);
  outtextXY(x0-round(i*mx),y0+10,'-'+s);
 end;
//центр
outtextXY(x0+5,y0+10,'0');
//подписи концов осей
outtextXY(getmaxX-20,y0-20,'X');
outtextXY(x0+10,10, 'Y');
dx:=0.0001;
//график
x:=x1;
while x<=x2 do
 begin
  if abs(x*x+3*x+1)>dx then//если знаменатель не очень близко к 0
  putpixel(x0+round(x*mx),y0-round(1/(x*x+3*x+1)),14);
  x:=x+dx; //наращиваем х
 end;
readln
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5