home *** CD-ROM | disk | FTP | other *** search
- program DEMO;
- (* Demonstrationspgm. für die Plotter-UNITS *)
-
- uses
- HPGL, PLGRAPH;
-
- 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 ('PRN'); (* oder z.B.: 'C:Test.Dat' *)
-
- GraphikWindow(20, round (uAXmAX /2 - 20 ), 20, round(vAXMAX / 2 - 20));
- (* ^ Einheit in mm ! *)
- (* oder auch
- GraphikWindow(XLi, XRe, YOb, YUn);
- *)
-
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax);
-
- Uscale(xmin,xmax,ymin,ymax,true,true, 5);
-
- XAxis(xmin,xmax, 'x', P_DefaultFont, P_FontSize);
- YAxis(ymin,ymax, 'f(x)', P_DefaultFont, P_FontSize);
-
- XGrid(0); Ygrid(0);
- XGrid(1); YGrid (1);
-
- Curve(x,y,n, P_NormalLn, P_NormStep, Yellow);
- Curvex(x,y,n,red);
-
- Curve(x1,y1,n, P_CenterLn, P_NormStep, LightRed);
- (* Curvex(x1,y1,n, red); *)
- CloseGraphik;
- end;
-
-
- procedure Beispiel2;
- begin
- Frequenzgang;
- OpenGraphik ('PRN');
- GraphikWindow(20, round (uAXmAX /2 - 20 ), 20, round(vAXMAX / 2 - 20));
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax);
- Uscale(xmin,xmax,ymin,ymax,false,true,5);
- XAxis(xmin,xmax,'Re Z', P_DefaultFont, P_FontSize);
- YAxis(ymin,ymax,'Im Z', P_DefaultFont, P_FontSize);
- XGrid(0);
- Ygrid(0);
- Curve(x,y,n, P_NormalLn, P_NormStep, Yellow);
- Curvex(x,y,n,Red);
- CloseGraphik;
- end;
-
-
- procedure Beispiel3;
- var i:word;
- begin
- Frequenzgang;
- for i:=1 to n do begin
- f[i]:=LOG10(f[i]);
- y[i]:=-y[i];
- x[i]:= x[i]-1;
- end;
-
- OpenGraphik ('PRN');
- GraphikWindow(20, round (uAXmAX /2 - 20 ), 20, round(vAXMAX / 2 - 20));
- Extrema(f,n,xmin,xmax);
- Extrema(y,n,ymin,ymax);
- Extrema(x,n,ymin,ymax);
- Uscale(xmin,xmax,ymin,ymax,false,false,5);
- LogXAxis(xmin,xmax,'f [Hz]', P_DefaultFont, P_FontSize);
- YAxis(ymin,ymax,'Im Z', P_DefaultFont, P_FontSize);
- XGrid(1); YGrid (0);
- YGrid (0.5); Ygrid(1);
-
- Curve(f,x,n, P_NormalLn, P_NormStep, yellow);
- (* Curvex(f,x,n,Red); *)
- Curve(f,y,n, P_NormalLn, P_NormStep, red);
- (* Curvex(f,y,n, Red); *)
- CloseGraphik;
- end;
-
- procedure Beispiel4;
- var i:word; a,b,dx:real;
- begin
- n:=100; a:=-50; b:=200; dx:=(b-a)/(n-1);
- for i:=1 to n do begin
- x[i]:=a+(i-1)*dx;
- y[i]:=EXP10(f1(x[i]));
- end;
-
- OpenGraphik ('PRN');
- GraphikWindow(20, round (uAXmAX /2 - 20 ), 20, round(vAXMAX / 2 - 20));
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax);
- Uscale(xmin,xmax,ymin,ymax,false,false,5);
- LogXAxis(xmin,xmax, 'x', P_DefaultFont, P_FontSize);
- LogYAxis(ymin,ymax,'y', P_DefaultFont, P_FontSize);
-
- Curve(x,y,n, P_NormalLn, P_NormStep, Yellow);
- (* Curvex(x,y,n, yellow); *)
- CloseGraphik;
- end;
-
-
- procedure Beispiel5;
- var i:word; a,b,dx:real;
- begin
- Spirale;
- OpenGraphik ('PRN');
- GraphikWindow(20, round (uAXmAX /2 - 20 ), 20, round(vAXMAX / 2 - 20));
- Extrema(x,n,xmin,xmax);
- Extrema(y,n,ymin,ymax);
- Uscale(xmin,xmax,ymin,ymax,true,true, 5);
- XAxis(xmin,xmax,'x', P_DefaultFont, P_FontSize);
- YAxis(ymin,ymax,'y', P_DefaultFont, P_FontSize);
- XGrid(0); Ygrid(0);
- XGrid(1000); Ygrid(1000);
-
- Curve(x,y,n, P_NormalLn, P_NormStep, Yellow);
- CloseGraphik;
- end;
-
-
- begin
- Beispiel1;
- {
- Beispiel2;
- Beispiel3;
- Beispiel4;
- Beispiel5;
- }
- end.
-
-