uses graph;
const
x1 = -10; { начало и конец графика в реальных значениях }
x2 = 10;
var
mx, my, a, 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 := 420 / 18; { длина оси по У/(2*макс }
SetBkColor(7); { цвет фона }
setlinestyle(0, 0, 1); { сплошная линия }
SetColor(1); { цвет линий осей }
line(0, y0, getmaxX, y0); { ось Х }
line(x0, getmaxY, x0, 0); { ось У }
setlinestyle(1, 0, 0); { пунктирная линия }
SetColor(8); { цвет сетки }
for i := 1 to 10 do { максимальное количество засечек в одну сторону }
begin
line(10, y0 - round(i * my), 630, y0 - round(i * my)); { засечки на оси У }
line(10, y0 + round(i * my), 630, y0 + round(i * my));
line(x0 + round(i * mx), 0, x0 + round(i * mx), getmaxY);
{ засечки на оси Х }
line(x0 - round(i * mx), 0, x0 - round(i * mx), getmaxY);
str(i, s);
{ подпись оси У }
outtextXY(x0 - 10, y0 - round(i * my), s); { соответственно засечкам }
outtextXY(x0 - 20, y0 + round(i * my), '-' + s);
{ подпись оси Х }
str(i, 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 - 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 := sqrt(x * x + 2) * sin(x); { график в реальных координатах }
py := y0 - round(y1 * my); { в экранных }
putpixel(px, py, 9);
y2 := (x + 1) * sin(x); { график в реальных координатах }
py := y0 - round(y2 * my); { в экранных }
putpixel(px, py, 5);
x := x + dx; { наращиваем х }
end;
setlinestyle(0, 0, 1);
SetColor(9);
outtextXY(30, 30, 'Grafik functii Y1=sqrt(x^2+2)*sinx');
SetColor(5);
outtextXY(30, 60, 'Grafik functii Y2=s(x+1)*sinx');
readln
end.