uses graph;
const
x1=0;
x2=16;
var
x,dx,y1,y2,y:real;
mx,my,x0,y0,grD,px,py1,py2,grM,i,c:integer;
s,s1:string;
begin
grD:=detect;
initgraph(grD,GrM,'');
X0:=getmaxX div 2; {по середине}
Y0:=getmaxY div 2;{по середине}
mx:=20; my:=50; {коэффициенты по осям подогнаны под реальный график}
SetBkColor(7); {цвет фона}
setlinestyle(0,0,1);{сплошная линия}
SetColor(1);{цвет линий осей}
line(10,y0,630,y0); {ось Х}
line(x0,0,x0,480); {ось У}
setlinestyle(1,0,0); {пунктирная линия}
Setcolor(9); {цвет сетки}
for i:=1 to 16 do {максимальное количество засечек в одну сторону}
begin
line(0,y0-i*50,630,y0-i*50); {засечки на оси У, подогнал под график}
line(0,y0+i*50,630,y0+i*50);
line(x0+i*20,0,x0+i*20,480); {засечки на оси Х}
line(x0-i*20,0,x0-i*20,480);
{подпись оси У}
str(i,s);
str(-i,s1);
outtextXY(x0+4,y0+i*50,s1);{соответственно засечкам}
outtextXY(x0+4,y0-i*50,s);
{подпись оси Х}
str(i,s);
str(-i,s1);
outtextXY(x0+i*20,y0+5,s);
outtextXY(x0-i*20,y0+5,s1);
end;
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0-10,5, 'Y');
dx:=0.001;
x:=x1;
while x<=x2 do
begin
x:=x+dx; {немного отступим от ноля, иначе ln(x) неопределен}
px:=x0+round(x*mx); {изменение по оси Х}
y1:=exp(ln(x)*0.5); {первый график}
y2:=-exp(ln(x)*0.5); {второй график}
py1:=y0-round(y1*my);
Putpixel (px,py1,4);
py2:=y0-round(y2*my);
Putpixel (px,py2,4);
end;
readln;
closegraph
end.
Вариант 2
uses crt;
var i,j:integer;
s:string;
begin
clrscr;
gotoxy(1,13);
for i:=1 to 80 do
write('-');
for i:=1 to 25 do
begin
gotoxy(40,i);
write('|');
end;
gotoxy(39,14);
write('0');
gotoxy(39,1);
write('Y');
gotoxy(80,12);
write('X');
for i:=40 to 80 do
for j:=0 to 6 do
if i=40+j*j then
begin
gotoxy(i,13-j);
write('*');
gotoxy(i,13);
write('|');
str(i-40,s);
gotoxy(i+1,14);
write(s);
end;
for i:=40 to 80 do
for j:=0 to 6 do
if i=40+j*j then
begin
gotoxy(i,13+j);
write('*');
end;
readln
end.