home *** CD-ROM | disk | FTP | other *** search
- program GRAFDEMO;
-
- uses
- GRAPH,PGRAPH;
- var
- f,x,y,x1,y1:Vektor;
- xmin,xmax,ymin,ymax:real;
- n:word;
-
-
- function f1(x:real):real; { zu Beispiel 1 }
- begin
- f1:=sin(2*x)+2*cos(x);
- end;
-
- function f2(x:real):real; { zu Beispiel 1 }
- begin
- f2:=2*cos(2*x)-2*sin(x);
- end;
-
- procedure Frequenzgang; { zu Beispiel 2/3 }
- const C=10E-6; R1=1; R2=1.0; f1=100; f2=1E6;
- var i:word; w,Freq,dLogf,z:real;
- begin
- n:=100; dLogf:=(LOG10(f2)-LOG10(f1))/(n-1);
- for i:=1 to n do begin
- Freq:=f1*EXP10((n-i)*dLogf); w:=2*Pi*Freq;
- z:=1+w*R2*C*w*R2*C;
- x[i]:=R1+R2/z;
- y[i]:=-w*R2*R2*C/z;
- f[i]:=Freq;
- end;
- end;
-
- procedure Spirale; { zu Beispiel 5 }
- const a=300; k=0.19;
- var r,phi,dphi:real; i,m:word;
- begin
- i:=0; phi:=0; dphi:=pi/20;
- for m:=1 to 3 do begin { 3 Umdrehungen }
- repeat
- i:=i+1;
- r:=a*EXP(k*phi); x[i]:=r*cos(phi); y[i]:=r*sin(phi);
- phi:=phi+dphi;
- until phi>=2*m*pi;
- end;
- n:=i;
- end;
-
- procedure Beispiel1;
- var i:byte; a,b,dx:real;
- begin
- n:=50; a:=-2*PI; b:=2*PI; dx:=(b-a)/(n-1); { Werte berechnen }
- for i:=1 to n do begin
- x[i]:=a+(i-1)*dx; { Funktion f1(x) }
- y[i]:=f1(x[i]);
- x1[i]:=x[i]; { Ableitung f2(x) }
- y1[i]:=f2(x[i]);
- end;
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 1 ');
- GraphikWindow(70,GetMaxX-20,45,GetMaxY-20); { Graphikfenster }
- Extrema(x,n,xmin,xmax); { Ausdehnung }
- Extrema(y,n,ymin,ymax);
- Uscale(xmin,xmax,ymin,ymax,true,true,5); { Benutzersystem }
- XAxis(xmin,xmax,'x',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'f(x)',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,ThickWidth,Yellow); { Graph zeichnen }
- Curvex(x,y,n,black); { Stuetzpunkte }
- Curve(x1,y1,n,DashedLn,NormWidth,LightRed); { Ableitung zeichnen }
- Curvex(x1,y1,n,white);
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
- procedure Beispiel2;
- begin
- Frequenzgang; { Werte berechnen }
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 2 ');
- GraphikWindow(70,GetMaxX-20,45,GetMaxY-20); { Graphikfenster }
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Uscale(xmin,xmax,ymin,ymax,false,true,50); { koordinatensystem }
- XAxis(xmin,xmax,'Re Z',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'Im Z',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,ThickWidth,Yellow); { Graph zeichnen }
- Curvex(x,y,n,black); { Punkte eintragen }
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
- procedure Beispiel3;
- var i:word;
- begin
- Frequenzgang; { Werte berechnen }
- for i:=1 to n do begin
- f[i]:=LOG10(f[i]);
- y[i]:=-y[i];
- x[i]:= x[i]-1;
- end;
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 3 ');
- GraphikWindow(70,GetMaxX-20,45,GetMaxY-20); { Graphikfenster }
- Extrema(f,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Extrema(x,n,ymin,ymax); { koordinatensystem }
- Uscale(xmin,xmax,ymin,ymax,false,false,5);
- LogXAxis(xmin,xmax,'f [Hz]',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'Re Z und -Im Z',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(f,x,n,SolidLn,ThickWidth,LightRed); { Kurve 1 zeichnen }
- Curvex(f,x,n,White);
- Curve(f,y,n,SolidLn,ThickWidth,LightBlue); { Kurve 2 zeichnen }
- Curvex(f,y,n,White);
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
- procedure Beispiel4;
- var i:word; a,b,dx:real;
- begin
- n:=100; a:=-50; b:=200; dx:=(b-a)/(n-1); { Werte berechnen }
- for i:=1 to n do begin
- x[i]:=a+(i-1)*dx;
- y[i]:=EXP10(f1(x[i]));
- end;
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 4 ');
- GraphikWindow(70,GetMaxX-20,45,GetMaxY-30); { Graphikfenster }
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Uscale(xmin,xmax,ymin,ymax,false,false,5); { koordinatensystem }
- LogXAxis(xmin,xmax,'x',SmallFont,5); { x-Achse }
- LogYAxis(ymin,ymax,'y',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,NormWidth,Yellow); { Graph zeichnen }
- Curvex(x,y,n,black); { Stuetzpunkte }
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
- procedure Beispiel5;
- var i:word; a,b,dx:real;
- begin
- Spirale; { Werte berechnen }
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 5 ');
- GraphikWindow(70,GetMaxX-20,45,GetMaxY-20); { Graphikfenster }
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Uscale(xmin,xmax,ymin,ymax,true,true,25); { koordinatensystem }
- XAxis(xmin,xmax,'x',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'y',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,NormWidth,Yellow); { Graph zeichnen }
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
- procedure Beispiel6;
- var i:word; a,b,dx:real;
- begin
- Frequenzgang; { Teilbild 1 }
- OpenGraphik; { Initialisieren }
- SetTextStyle(SmallFont,HorizDir,5); { Ueberschrift }
- SetTextJustify(RightText,RightText);
- OutTextXY(GetMaxX,0,'Beispiel 6 ');
- GraphikWindow(70,GetMaxX-340,90,GetMaxY-20); { Graphikfenster }
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Uscale(xmin,xmax,ymin,ymax,false,true,5); { koordinatensystem }
- XAxis(xmin,xmax,'Re Z',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'Im Z',SmallFont,5); { y-Achse }
- XGrid(0); { x-Nullinie }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,ThickWidth,Yellow); { Graph zeichnen }
-
- for i:=1 to n do x[i]:=LOG10(f[i]); { Teilbild 2 }
- GraphikWindow
- (GetMaxX-280,GetMaxX-10,90,GetMaxY-20); { Graphikfenster }
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax); { Benutzer- }
- Uscale(xmax,xmin,ymin,ymax,false,false,25); { koordinatensystem }
- LogXAxis(xmax,xmin,'f',SmallFont,5); { x-Achse }
- YAxis(ymin,ymax,'Im Z',SmallFont,5); { y-Achse }
- Ygrid(0); { y-Nullinie }
- Curve(x,y,n,SolidLn,ThickWidth,LightRed); { Graph zeichnen }
- readln; { Warten }
- CloseGraphik; { Beenden }
- end;
-
-
- begin
- Geraet:=Bildschirm; { Bildschirm, Drucker, Plotter }
- Beispiel1;
- Beispiel2;
- Beispiel3;
- Beispiel4;
- Beispiel5;
- Beispiel6;
- end.