Построение графика функции - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д