program grafik_funkcii; uses crt, graph; var {koord gr f-i} x,y,a,b:real; {N tipa graf drayvera i N graf rejima} driver,mode:integer; {cx,cy-koord centra sist koord; mx,my-mashtab(kol-bo pikseley na ed-cu; ex,ey-koord tochek grafika v mashtabe ekrana} cx,cy,mx,my,ex,ey,n:integer; {opisanie f-i graf} function f(x:real):real; begin y:=x*x; end; procedure deleniyaX(a:real); var stroka:string; x,s:real; begin{proceduri} {delenia vist v 10 tochkah OX ot -a do a s shagom s} x:=-a; s:=2*a/10; repeat ex:=trunc(cx+x*mx)-10; ey:=cy+5; str(x:3:1,stroka); outtextxy(ex,ey,stroka); x:=x+s; until x>a; end;{proc} procedure deleniyaY(a:real); var stroka:string; y:real; s:integer; begin{proceduri} {delenia vist v 10 tochkah OY ot -b do b s shagom s} s:=trunc((getmaxy-30)/10); ey:=getmaxy-3; repeat ex:=cx+5; y:=b-ey/my; str(y:3:1,stroka); if abs(y)>0.5 then outtextxy(ex,ey+5,stroka); ey:=ey-s; until ey<10; end;{proc} {podprogramma postroenia grafika} procedure MyGrafik(a,b:real); {proc stroit grafik ot -a do a c shagom s} var p,n:integer; s,t:real; strx:string; begin{proc} {polojenie nach koord na ekrane} cx:=trunc(getmaxx/2); cy:=trunc(getmaxy/2); {tcvet fona i texta} setBkColor(yellow); setcolor(blue); line(10,cy,getmaxx-50,cy);{os' OX} {strelochka na osi OX} line(getmaxx-60,cy-5,getmaxx-50,cy); line(getmaxx-60,cy+5,getmaxx-50,cy); line(cx,10,cx,getmaxy-20);{os' OY} {strelochka na osi OY} line(cx-5,20,cx,10); line(cx+5,20,cx,10); setcolor(magenta); {podpisi po os'am} outtextxy(cx+10,10,'y'); outtextxy(getmaxx-50,cy-10,'x'); {opredelenie mashtaba po os'am} {x ot -a do a} mx:=trunc((getmaxx)/(2*a)); {y ot -b do b} my:=trunc((getmaxx)/(2*b)); {vivod znacheniy po osi x ot -a do a} deleniyaX(a); {po y ot -b do b} deleniyaY(b); outtextxy(10,50,'grafik funkcii'); {x meniaetsa ot -a do a s shagom s v n+1 tochke} x:=-a;n:=500; s:=2*a/n; moveto(trunc(cx+x*mx), trunc(cy-f(x)*my)); repeat y:=f(x); ex:=trunc(cx+x*mx); ey:=trunc(cy-y*my); lineto(ex,ey); x:=x+s; until ex>getmaxx-70; end;{proc} begin{osnovnaya} clrscr; writeln('a='); readln(a); writeln('b='); readln(b); {otkritie graficheskogo rejima} driver:=detect; initgraph(driver,mode,'c:\paskal\turbo.exe'); {ochistka ekrana v grficheskom rejime} cleardevice; {vipoln proc vivoda grafika} MyGrafik(a,b); {zaderjka} repeat {do najatiya ENTER} until keypressed; end.{osnovnoy} end.