Program Egyvaltozosfgv; uses crt,graph; const path = 'c:\1\bgi'; {Bgi utvonala} maxp = 400; {ennyi pont lehet osszesen} db=15; {ennyi pontot abrazolunk} x:array [1..db] of real=(-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3.5,4.5); y:array [1..db] of real=(-19,-17,5.5,1.7,8,-19,-17,5,1,8,-19,-17,5,1.5,7.333); Var sx,sy,ox,oy:word; {sx,sy:kepernyohossz, ox,oy:kozeppont} xmax,xmin,ymax,ymin:real; {a legkisebb/nagyobb ertelmezendo} nx,ny:real; {mekkora legyen az egyseg} dx,dy:real; esor,eoszlop:integer; kilep:boolean; Procedure maxmin(var xmax,xmin,ymax,ymin:real); var m:integer; begin end; Procedure Szovegesre; begin CloseGraph; {lezarja a grafikus uzemmodot} RestoreCrtMode; {Visszaallitja az InitGraph meghivasa elotti kepernyokezelesi modot} end; Procedure Grafikusra; Var gd,gm : integer; Begin DetectGraph(gd,gm); {detektalja a grafikus eszkozt} InitGraph(gd,gm,path); {inicializalja a grafikus rendszert} End; procedure init; begin sx:=getmaxx; sy:=getmaxy; end; Procedure koordteng(ox,oy:integer); {koordinata tengelyek kirajzolasa} begin end; procedure pontrajzol(x,y:Real); begin sor:=oy-y; oszlop:=ox+x; {koordinata-tengely -> kepernyokezeles} if ( (sor>=0) and (sor<=sy) and (oszlop<=sx) and (oszlop>=0) ) then pont(oszlop,sor); end; Procedure rajzolas; Begin End; procedure pontrajzol2(x,y:real); begin end; Procedure rajzolas2; {kepernyore normalas} {mindig az erdemi reszt lassuk} begin maxmin(xmax,xmin,ymax,ymin); {! kesobb megirando } nx:=sx/xmax-xmin; ny:=sy/ymax-ymin; {if nx>ny then nx:=ny else ny:=nx;} ox:=(0-xmin)*nx; {hatranya: ad abs. nem latjuk a tengelyeket...} oy:=sy-(0-ymin)*ny; {mivel "alapbol" forditva van az y-tengely} koordinatatengely(ox,oy); for i:=1 to db do begin pontrajzol(nx*x[i],ny*y[i]); end; end; Procedure tartomany(var dx,dy:real); {az brzolsi tartomny meghatrozsa} begin end; Procedure rajzolas3; {kepernyore normalas origo helybenhagyasaval} begin tartomany(dx,dy); {dx:=max(abs(xmax),abs(xmin)) + uez y-ra} nx:=sx/2*dx; ny:=sy/2*dy; {if nx>ny then nx:=ny else ny:=nx;} ox:=sx/2; oy:=sy/2; koordinatatengely(ox,oy); for i:=1 to db do begin pontrajzol2(nx*x[i],ny*y[i]); end; end; procedure pontrajzol3(x,y:real); begin sor:=oy-y; oszlop:=ox+x; pont(oszlop,sor); eoszlop:=oszlop; esor:=sor; end; procedure szakaszrajzol(x,y:real); begin sor:=oy-y; oszlop:=ox-x; szakasz(oszlop,sor,eoszlop,esor); eoszlop:=oszlop; esor:=sor; end; Procedure rajzolas4; {kepernyore normalas origo helybenhagyasaval, pontok osszekotesevel} begin tartomany(dx,dy); {dx:=max(abs(xmax),abs(xmin)) + uez y-ra} nx:=sx/2*dx; ny:=sy/2*dy; {if nx>ny then nx:=ny else ny:=nx;} ox:=sx/2; oy:=sy/2; koordinatatengely(ox,oy); for i:=2 to db do begin szakaszrajzol(nx*x[i],ny*y[i]); end; end; Procedure teglalaprajzolas(x,y:real;szel,alja:integer); begin end; Procedure rajzolas5; {kepernyore normalas origo helybenhagyasaval, teglalapokkal} Begin End; Procedure menu; {men kiirsa} var ch:char; begin Repeat clrscr; writeln('Krem vlasszon az albbi menpontok kzl!'); writeln; writeln('1. Ahogy jn...'); writeln('2. Kpernyre normls'); writeln('3. Normls orig helybenhagysval.'); writeln('4. Normls orig helybenhagysval, szakaszrajzolssal'); writeln('5. Normls orig helybenhagysval, tglalaprajzolssal'); writeln('6. Kilps'); ch:=readkey; Until ch in ['1'..'6']; Grafikusra; Init; Case ch of '1':Rajzolas; '2':Rajzolas2; '3':Rajzolas3; '4':Rajzolas4; '5':Rajzolas5; '6':kilep:=true; end; end; BEGIN { foprogram } kilep:=false; repeat Menu; if not kilep then readkey; Szovegesre; until kilep; END.