Построить график функции при значении коэффициентов: а = 2, b = 3. Отметить точки пересечения функции с осями координат. Показать, как изменяется график функции при изменении коэффициента а (построить графики функций при значении коэффициента: а = 4, а = 0.5, а = -5,). Разные графики строить различными цветами. Разметить оси координат — Pascal(Паскаль)

uses graph;
const
x1=-2;{начало и конец графика в реальных значениях}
x2=2;
function F(a,b,x:real):real;
begin
F:=a*x*x*x+b*x;
end;
var a,b,mx,my,x,dx,y1,y2,y3,y4:real;
    x0,y0,grD,px,py,grM,i,k:integer;
    s,s1:string;
begin
grD:=detect;
initgraph(grD,grM,'');
x0:=getmaxX div 2;{начало координат в центре экрана}
y0:=getmaxY div 2;
{коэффициенты по осям для перевода реальных координат в экранные}
mx:=600/(x2-x1);{длина в пикселах по оси Х/реальная длина}
my:=(y0-20)/F(4,3,x2);{длина оси по У/(макс}
SetBkColor(7); {цвет фона}
setlinestyle(0,0,1);{сплошная линия}
SetColor(1);{цвет линий осей}
line(0,y0,getmaxX,y0); {ось Х}
line(x0,getmaxy,x0,0); {ось У}
for i:=1 to 5 do   {максимальное количество засечек в одну сторону}
   begin
    line(x0-3,y0-round(10*i*my),x0+3,y0-round(10*i*my));{засечки на оси У}
    line(x0-3,y0+round(10*i*my),x0+3,y0+round(10*i*my));
    line(x0+round(i*mx/2),y0+3,x0+round(i*mx/2),Y0-3); {засечки на оси Х}
    line(x0-round(i*mx/2),y0+3,x0-round(i*mx/2),Y0-3);
    str(i*10,s);
    {подпись оси У}
    outtextXY(x0-20,y0-round(10*i*my),s);{соответственно засечкам}
    outtextXY(x0-25,y0+round(10*i*my),'-'+s);
    {подпись оси Х}
    str(i/2:0:1,s);
    outtextXY(x0+round(i*mx/2),y0+10,s);
    outtextXY(x0-round(i*mx/2),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0+10,10, 'Y');
dx:=0.001;
{график}
x:=x1;
while x<=x2 do
 begin
  px:=x0+round(x*mx); {изменение по оси Х}
  y1:=F(-5,3,x); {график в реальных координатах}
  py:=y0-round(y1*my);{в экранных}
  putpixel(px,py,4);
  if abs(F(-5,3,x))<0.01 then
    begin
     setcolor(4);
     Circle(px,py,2);
     str(x:0:3,s);
     settextstyle(0,1,1);
     outtextXY(px+5,y0-50,s);
    end;
  y2:=F(0.5,3,x); {график в реальных координатах}
  py:=y0-round(y2*my);{в экранных}
  putpixel(px,py,2);
  y3:=F(2,3,x); {график в реальных координатах}
  py:=y0-round(y3*my);{в экранных}
  putpixel(px,py,9);
  y4:=F(4,3,x); {график в реальных координатах}
  py:=y0-round(y4*my);{в экранных}
  putpixel(px,py,14);
  x:=x+dx; {наращиваем х}
 end;
setcolor(10);
settextstyle(0,0,1);
outtextXY(75,30,'Grafik functii Y=A*x^3+Bx');
setcolor(4);
outtextXY(135,40,'A=-5');
setcolor(2);
outtextXY(135,50,'A=0.5');
setcolor(9);
outtextXY(135,60,'A=2');
setcolor(14);
outtextXY(135,70,'A=4');
readln
end.

Leave a Comment

85 − 79 =