{ Programm zum Zeichnen von Funktionen } {***********************************************************} {**** geschrieben von RenÉ Scholz **** } {$E+,N-} uses Graph,crt; var x,y,h,XF,YF,XS,XE,SW :real; grdriver, grmode, errcode :integer; procedure lesen; begin ClrScr; Writeln('X-Faktor = ');readln(XF); Writeln('Y-Faktor = ');readln(YF); Writeln('X-Start = ');readln(XS); Writeln('X-Ende = ');readln(XE); Writeln('Schrittweite = ');readln(SW); ClrScr; XF:=XF*46.7;if XF=0 then XF:=46.7; YF:=YF*30;if YF=0 then YF:=30; XS:=XS*XF;if (XS<-359) or (XS=0) then XS:=-359; XE:=XE*XF;if (XE>359) or (XE=0) then XE:=359; if SW=0 then SW:=1; Writeln('X-Faktor = ', XF); Writeln('Y-Faktor = ', YF); Writeln('X-Start = ', XS); Writeln('X-Ende = ', XE); Writeln('Schrittweite = ', SW); readln; end; procedure Grafik; begin grDriver:=Detect; InitGraph(grDriver,grMode,''); errCode:=Graphresult; if errCode <> grOk then writeln ('Graphics ERROR : ',GraphErrorMsg(errCode)); end; procedure Achsenkreuz; begin line(0,174,719,174); { X-Achse } line(round(359-XF),168,round(359-XF),180); { 1 auf der } line(round(359+XF),168,round(359+XF),180); { X-Achse } line(359,0,359,347); { Y-Achse } line(350,round(174-YF),368,round(174-YF)); { 1 auf der } line(350,round(174+YF),368,round(174+YF)); { Y-Achse } end; procedure zeichnen; begin h:=XS; repeat h:=h + SW; x:=h/XF; y:=sin(x)*(1/x); { Hier Funktion eingeben ! } y:=y*YF; PutPixel(round(h+359),round(174-y),1); until ( h >= XE); readln; end; {**************************************************************************} begin { Main Program } lesen; Grafik; Achsenkreuz; zeichnen; closeGraph; end.