Нарисовать график функции х^1/2 (корень из х);(координаты тоже нарисовать, оси сходятся в центре экрана — Pascal(Паскаль)

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.

Leave a Comment

82 − = 79