Вывести на экран график функции, приведенной. Отобразить координатную плоскость. Вывод графика производить попиксельно с задержкой и звуковым сигналом.y=ln(x+5) — Pascal(Паскаль)

uses crt,graph;
var gd,gm,x0,y0,i,xi,yi:integer;
    xn,xk,mx,my,x,y:real;
    s:string;
begin
gd:=0;
initgraph(gd,gm,'');
x0:=getmaxX div 2;
y0:=getmaxY-40;
outtextXY(20,20,'Grafik functii y=ln(x+5)');
outtextXY(40,30,'na intervale [-6,6]');
{интервал графика}
xn:=-6;
xk:=6;
{масштабы по осям}
mx:=(x0*2-40)/(xk-xn);
my:=(y0-20)/(round(ln(xk+5))+1);
{ось Х}
line(0,y0,getmaxX,y0);
outtextXY(x0+5,y0+10,'0');
outtextXY(x0+round(xk*mx)+5,y0-15,'X');
for i:=1 to round(xk) do
 begin
  str(i,s);
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  outtextXY(x0+round(i*mx)+5,y0+10,s);
  line(x0-round(i*mx),y0+3,x0-round(i*mx),y0-3);
  outtextXY(x0-round(i*mx)-5,y0+10,'-'+s);
 end;
{Ось У}
line(x0,y0,x0,10);
outtextXY(x0-10,10,'Y');
for i:=1 to round(ln(xk+5))+1 do
 begin
  str(i,s);
  line(x0+3,y0-round(i*my),x0-3,y0-round(i*my));
  outtextXY(x0-15,y0-round(i*my),s);
 end;
{график}
x:=xn;
while x<=xk do
 begin
  xi:=x0+round(x*mx);
  if x>-4 then
    begin
     y:=ln(x+5);
     yi:=y0-round(y*my);
     putpixel(xi,yi,12);
     sound(300);
     delay(100);
     nosound;
    end;
  x:=x+0.1;
 end;
readln
end.

Leave a Comment

8 + 1 =