(*y
Fachhochschule Wiesbaden 14.01.1996
Fachbereich Physikalische Technik
Programm zur Berechnung der Bahnkurve eines Teilchens
beim Durchgang durch eine magnetische Linse.
Fach: Einführung in die theoretische Physik
Erstellt von: Jochen Lenck
Mat. - Nr. 918418
am: 14.01.1996
Das folgende Programm, geschrieben in Turbo Pascal 5.5 berechnet die Bahnkurven eines
Teilchens, das durch eine magnetische Linse geschossen wird. Die Berechnung der
Bahnkurve erfolgt mit dem Verfahren nach Runge - Kutta. Das Magnetfeld der Spule
wird mit der Simpsonschen Formel berechnet. Mit dieser Formel wird das Magnetfeld
zu jeder Stützstelle im Runge - Kutta neu berechnet. Dabei sind die unten
aufgeführten Parameter veränderbar. Das Hauptmenue gestattet die Wahl, die Werte zu
ändern, sich die Kurve mit den aktuellen Werten anzeigen zu lassen, die Standard-
werte zu laden oder das Programm zu verlassen. Die Werte werden im SI - Einheiten-
System angegeben und sind folglich auch in dieser Einheit anzugeben bei Werteänderungen
Lässt man sich die Kurve direkt Anzeigen ohne Änderung der Werte, wird eine Kurve mit
den eingestellten Standardwerten gezeigt. Diese Werte wurden so gewählt das man
den Effekt der magnetischen Linse erkennt. Folgende Werte wurden daf¨r gewählt:
Energie = 43 eV
Ladung = 1.60217733E-19 C
Masse = 9.1093897E-31 kg
Alpha = 30 ø
Beta = 25 ø
E(x) - Feld = 0;
E(y) - Feld = 0;
E(z) - Feld = 0;
x = 0;
y = 0;
z = -0.05 m
Radius = 0.04 m
Strom = 60 A
Schrittweite= 1E-10
Zoomfaktor = 1
Symbolliste
a : Variable
Alpha : Winkel des Teilchens gegen die x - Achse
Beta : Winkel des Teilchens gegen die z - Achse
BFeldx,BFeldy,BFeldz: Magnetfeld in den einzelnen Achsrichtungen
EFeldx,EFeldy,EFeldz: Elektrisches Feld in den einzelnen Achsrichtungen
code : Variable zur Fehlerabfrage bei Falscheingabe von Werten
dBx,dBy,dBz : Magnetfeldänderung in den einzelnen Achsrichtungen
dphi : Winkeländerung
Energie : Energie des Teilchens in J
Energiev : Energie des Teilchens in eV
faktor : Zusammenfassung von Vorfaktoren bei der Berechnung des Magnetfeldes
Feld_konst : Magnetische Feldkonstante
geradex,geradey,geradez: St¨tzstellen von geraden Werten der Ortskoordinaten
graf_Pfad : Pfadangabe f¨r den Grafiktreiber
grDriver : Variable f¨r den Grafiktreiber
grMode : Variable f¨r den Grafikmodus
h : Schrittweite im Runge - Kutta - Verfahren
hilfsx,hilfsy,hilfsz: Speichern der vorherigen Ortskoordinaten
hilfsvx,hilfsvy,hilfsvz: Speichern der vorherigen Geschwindigkeitskoordinaten
k1x..k4z : Ortskoordinaten des Teilchens an den St¨tzstellen im Runge - Kutta - Verfahren
Ladung : Ladung des Teilchens (mit Vorzeichen angeben) in C
lese : Variable die durch das erste gelesene Zeichen im Menue Werte
durch zeichen festgelegt wird
Masse : Masse des Teilchens in kg
m1x..m4z : Geschwindigkeitswerte des Teilchens an den St¨tzstellen im Runge - Kutta - Verfahren
phi : Winkel des Magnetfeldes
Radius : Radius der Ringspule
rAlpha,rBeta : Winkel in Bogenmaá
Schritt : Anzahl der St¨tzstellen bei der Integration nach Simpson
Strom : Elektrischer Strom der durch die Spule flieát und das Magnetfeld erzeugt
szahl : Variable, die den eingelesenen String als Variable enthält
ungeradex,ungeradey,ungeradz: St¨tzstellen von ungeraden Werten der Ortrskoordinaten
vx,vy,vz : Geschwindigkeiten des Teilchens in den einzelnen Achsrichtungen
v0 : Gesamtgeschwindigkeit des Teilchens
x,y,z : Ortskoordinaten des Teilchens
xx,yy,zz : Angepaáte Ortskoordinaten des Teilchens an den Bildschirm
y : Speichert den y - Wert des Cursors im Menue Abfrage
Wahl1 : Variable welche die Wahl des Menue`s angibt
zahl : Variable die den eingegeben Wert als Integertyp enthält
zoomfak : Variable zur Anpassung der Bahnkurve des Teilchens an den Bildschirm
zeichen : Erster Eingabewert im Menue Werte. Bestimmt ob der Wert geändert wird,
gelassen wird oder das Menue beendet wird
zzeichen : Variable die den Wert der Variablen "Zeichen" als Zahlenwert enthält
Der Buchstabe s vor der Variablen besagt, dass diese Variable als Stringtyp vorliegt.
*)
program Magnet_Linse;
{$N+}
uses Crt,Graph,Dos;
Var
x,y,z,rx,ry,rz,h,v0 : Extended;
Ladung,Masse,Energie,Energiev: Extended;
BFeldz,BFeldy,BFeldx : Extended;
EFeldx,EFeldy,EFeldz : Extended;
vx,vy,vz,zahl : Extended;
grDriver,grMode : Integer;
n,lese : Integer;
Alpha,Beta : Real;
I,Radius,Zoomfak : Real;
Wahl1 : Char;
procedure Eroeff;
begin
Clrscr;
Clearviewport;
setbkcolor(8);
setcolor(11);
Repeat
begin
Outtextxy( 10, 10,'Fachhochschule Wiesbaden');
Outtextxy( 10, 25,'Fachbereich Physikalische Technik');
Outtextxy(120, 80,'Programm zur Berechnung der Bahnkurve eines Teilchens');
Outtextxy(120, 95,'beim Durchgang durch eine magnetische Linse');
Outtextxy(120,130,'Fach: Einführung theoretische Physik');
Outtextxy(120,150,'Erstellt von: Jochen Lenck');
Outtextxy(120,165,'Mat. - Nr. 918418');
Outtextxy(120,180,'Letzte Änderung am 01.01.1996');
Outtextxy(120,300,'Weiter mit ');
end;
Until Keypressed;
end;
procedure Menue;
begin {Hauptmenue mit Wahl: Werte ändern,}
ClrScr; {Kurve darstellen, Standardwerte laden}
Clearviewport;
directvideo:=false;
setbkcolor(8);
textcolor(11);
Gotoxy(20, 5); Writeln('Flugbahn von Teilchen durch eine magnetische Linse ');
Gotoxy(20, 8); Writeln('Werte ändern [1]');
Gotoxy(20,10); Writeln('Kurve darstellen [2]');
Gotoxy(20,12); Writeln('Standardwerte [3]');
Gotoxy(20,14); Writeln('Ende [4]');
Gotoxy(20,17); Writeln('Eingabe der Wahl: ');
Gotoxy(40,17); Readln(Wahl1);
end;
procedure Abfrage; {Abfrage, ob Taste gedrückt}
Var
zzeichen,y,code : Integer;
szahl : String;
zeichen : Char;
begin {wurde, um den Wert zu bestätigen oder nicht}
y:=Wherey; {Festhalten der y - Position des Cursors}
Gotoxy(50,y); Write('>'); {Anzeige des änderbaren Wertes}
zeichen :=Readkey;
zzeichen:=Ord(zeichen);
lese:=0;
If zzeichen = 13 then
begin {Wenn eingegebenes Zeichen dann Wert ändern}
Repeat
lese:=1;
Gotoxy(55,y); Writeln(' ');
Gotoxy(55,y); Readln(szahl);
Val(szahl,zahl,code);
Until(code = 0);
end;
If zzeichen = 27 then
lese:=2;
Gotoxy(50,y); Writeln(' ');
end;
procedure Werte; {Eingabe der Werte: Ladung, Masse, Energie}
Var {Koordinaten des Einschuápunktes, Strom der}
Wert: Integer; {das Magnetfeld erzeugt, Radius der Spule}
begin
ClrScr;
Clearviewport;
directvideo := false;
textcolor(11);
setbkcolor(8);
Gotoxy(15, 2); Writeln('Flugbahn von Teilchen durch eine magnetische Linse');
Gotoxy(13, 4); Writeln(' f¨r neuen Wert sonst Leertaste');
Gotoxy(13, 5); Writeln('Beenden mit ');
Repeat {Ausgabe der Werte und einlesen der neuen Werte}
begin
Gotoxy( 5, 7); Writeln('Teilchenenergie [eV]: '); Gotoxy(55, 7); Writeln(Energiev:20);
Gotoxy(50, 7); Abfrage; if lese = 1 then Energiev:=zahl; if lese = 2 then exit; Gotoxy(55, 7); Writeln(energiev:20);
Gotoxy( 5, 8); Writeln('Teilchenladung [eV]: '); Gotoxy(55, 8); Writeln(Ladung :20);
Gotoxy(50, 8); Abfrage; if lese = 1 then Ladung:= zahl; if lese = 2 then exit; Gotoxy(55, 8); Writeln(Ladung :20);
Gotoxy( 5, 9); Writeln('Teilchengewicht [kg]: '); Gotoxy(55, 9); Writeln(Masse :20);
Gotoxy(50, 9); Abfrage; if lese = 1 then Masse := zahl; if lese = 2 then exit; Gotoxy(55, 9); Writeln(Masse :20);
Gotoxy( 5,10); Writeln('x - y -Einschuáwinkel [ø]: '); Gotoxy(55,10); Writeln(Alpha :20);
Gotoxy(50,10); Abfrage; if lese = 1 then Alpha := zahl; if lese = 2 then exit; Gotoxy(55,10); Writeln(Alpha :20);
Gotoxy( 5,11); Writeln('z - y -Einschuáwinkel [ø]: '); Gotoxy(55,11); Writeln(Beta :20);
Gotoxy(50,11); Abfrage; if lese = 1 then Beta := zahl; if lese = 2 then exit; Gotoxy(55,11); Writeln(Beta :20);
Gotoxy( 5,12); Writeln('E - Feld in X - Richtung [V/m]: '); Gotoxy(55,12); Writeln(EFeldx :20);
Gotoxy(50,12); Abfrage; if lese = 1 then EFeldx:= zahl; if lese = 2 then exit; Gotoxy(55,12); Writeln(EFeldx :20);
Gotoxy( 5,13); Writeln('E - Feld in Y - Richtung [V/m]: '); Gotoxy(55,13); Writeln(EFeldy :20);
Gotoxy(50,13); Abfrage; if lese = 1 then EFeldy:= zahl; if lese = 2 then exit; Gotoxy(55,13); Writeln(EFeldy :20);
Gotoxy( 5,14); Writeln('E - Feld in Z - Richtung [V/m]: '); Gotoxy(55,14); Writeln(EFeldz :20);
Gotoxy(50,14); Abfrage; if lese = 1 then EFeldz:= zahl; if lese = 2 then exit; Gotoxy(55,14); Writeln(EFeldz :20);
Gotoxy( 5,15); Writeln('Einschuákoordinate auf der X - Achse [m]: '); Gotoxy(55,15); Writeln(rx :20);
Gotoxy(50,15); Abfrage; if lese = 1 then rx:= zahl; if lese = 2 then exit; Gotoxy(55,15); Writeln(rx :20);
Gotoxy( 5,16); Writeln('Einschuákoordinate auf der y - Achse [m]: '); Gotoxy(55,16); Writeln(ry :20);
Gotoxy(50,16); Abfrage; if lese = 1 then ry:= zahl; if lese = 2 then exit; Gotoxy(55,16); Writeln(ry :20);
Gotoxy( 5,17); Writeln('Einschuákoordinate auf der z - Achse [m]: '); Gotoxy(55,17); Writeln(rz :20);
Gotoxy(50,17); Abfrage; if lese = 1 then rz:= zahl; if lese = 2 then exit; Gotoxy(55,17); Writeln(rz :20);
Gotoxy( 5,18); Writeln('Radius [m]: '); Gotoxy(55,18); Writeln(Radius :20);
Gotoxy(50,18); Abfrage; if lese = 1 then Radius:= zahl; if lese = 2 then exit; Gotoxy(55,18); Writeln(Radius :20);
Gotoxy( 5,19); Writeln('Spulenstrom [A]: '); Gotoxy(55,19); Writeln(I :20);
Gotoxy(50,19); Abfrage; if lese = 1 then I:= zahl; if lese = 2 then exit; Gotoxy(55,19); Writeln(I :20);
Gotoxy( 5,20); Writeln('Schrittweite '); Gotoxy(55,20); Writeln(h :20);
Gotoxy(50,20); Abfrage; if lese = 1 then h:= zahl; if lese = 2 then exit; Gotoxy(55,20); Writeln(h :20);
Gotoxy( 5,21); Writeln('Zoomfaktor '); Gotoxy(55,21); Writeln(Zoomfak:20);
Gotoxy(50,21); Abfrage; if lese = 1 then Zoomfak:=zahl; if lese = 2 then exit; Gotoxy(55,21); Writeln(zoomfak:20);
x:=rx; y:=ry; z:=rz;
end;
Until (n = 13);
end;
procedure Werte_Ausg;
Var
sMasse,sLadung,sEFeldx,sEFeldy,sEFeldz,sx,sy,sz,sAlpha: string;
sBeta,sRadius,sI,sZoomfak,sEnergiev: string;
begin
setcolor(8); {Umwandlung der Extended - Werte in Strings,}
Str(masse ,sMasse); {um sie in der Grafik darzustellen}
Str(ladung ,sLadung);
Str(Energiev ,sEnergiev);
Str(EFeldx ,sEFeldx);
Str(EFeldy ,sEFeldy);
Str(EFeldz ,sEFeldz);
Str(alpha ,sAlpha);
Str(Beta ,sBeta);
Str(Radius ,sRadius);
Str(Zoomfak ,sZoomfak);
Str(rx,sx); Str(ry,sy); Str(rz,sz); Str(I,sI ); {Ausgabe der Umgewandelten Startwerte}
Outtextxy(10,310,'Die Startwerte waren:' );
Outtextxy(10,320,'Masse: '+sMasse+'' ); Outtextxy(300,320,'kg');
Outtextxy(10,330,'Ladung: '+sLadung+'' ); Outtextxy(300,330,'C' );
Outtextxy(10,340,'Energiev: '+sEnergiev+''); Outtextxy(300,340,'eV');
Outtextxy(10,350,'E(x)-Feld: '+sEFeldx+'' ); Outtextxy(300,350,'V/m');
Outtextxy(10,360,'E(y)-Feld: '+sEFeldy+'' ); Outtextxy(300,360,'V/m');
Outtextxy(10,370,'E(z)-Feld: '+sEFeldz+'' ); Outtextxy(300,370,'V/m');
Outtextxy(10,380,'x: '+sx+'' ); Outtextxy(300,380,'m');
Outtextxy(10,390,'y: '+sy+'' ); Outtextxy(300,390,'m');
Outtextxy(10,400,'z: '+sz+'' ); Outtextxy(300,400,'m');
Outtextxy(10,410,'Alpha: '+sAlpha+'' ); Outtextxy(300,410,'ø');
Outtextxy(10,420,'Beta: '+sBeta+'' ); Outtextxy(300,420,'ø');
Outtextxy(10,430,'Radius: '+sRadius+'' ); Outtextxy(300,430,'m');
Outtextxy(10,440,'Strom: '+sI+'' ); Outtextxy(300,440,'A');
Outtextxy(10,450,'Zoomfaktor:'+sZoomfak+'' );
setcolor(11);
Outtextxy(25,463,'Beenden mit Abbruch mit ');
end;
procedure Koord;
begin
Clrscr;
Clearviewport;
setbkcolor(3);
setcolor(6);
Line( 0,150,600,150); {z - Achse}
Line(294,146,300,150); {Pfeil1 z - Achse}
Line(294,154,300,150);
Outtextxy(280,155,'z'); {Beschriftung1 z - Achse}
Line(594,146,600,150); {Pfeil2 z - Achse}
Line(594,154,600,150);
Outtextxy(580,155,'z'); {Beschriftung2 z - Achse}
Line(150,0,150,300); {x - Achse}
Line(146,6,150, 0); {Pfeil1 x - Achse}
Line(154,6,150, 0);
Outtextxy(135,5,'x'); {Beschriftung x - Achse}
Line(450,0,450,300); {y - Achse}
Line(446,6,450,0); {Pfeil y - Achse}
Line(454,6,450,0);
Outtextxy(435,5,'y'); {Beschriftung y - Achse}
Line(368,390,532,390); {x - Achse}
Line(528,386,532,390); {Pfeil x - Achse}
Line(528,394,532,390);
Outtextxy(435,315,'y'); {Beschriftung x - Achse}
Line(450,310,450,474); {y - Achse}
Line(446,314,450,310); {Pfeil y - Achse}
Line(454,314,450,310);
Outtextxy(535,395,'x'); {Beschriftung y - Achse}
Circle(450,392,82);
Rectangle( 0, 0,300,300);
Rectangle(300, 0,600,300);
Rectangle(368,310,532,474);
Werte_Ausg;
end;
procedure Magnet_Feld; {Berechnung des Magnetfeldes mit der }
Const {Methode nach Biot - Savart}
Feld_konst = 1.2566370614E-6;
n = 50;
Var
dphi,phi,faktor : Extended;
geradex,geradey,geradez : Extended;
ungeradex,ungeradey,ungeradez: Extended;
dBx,dBy,dBz : Array [0..2*n] of Extended;
Schritt : Integer;
begin
phi:= 0;
geradex := 0; geradey := 0; geradez := 0;
ungeradex:= 0; ungeradey:= 0; ungeradez:= 0;
BFeldx := 0; BFeldy := 0; BFeldz := 0;
dphi := 2 * pi/(2*n);
faktor:= Feld_konst * I / (4 * pi);
for schritt := 0 to 2 * n do
begin
dBx[schritt] := faktor*Radius*cos(phi) * z / (exp(3/2*ln(sqr(x-Radius*cos(phi))+sqr(y-Radius*sin(phi))+sqr(z))));
dBy[schritt] := faktor*Radius*sin(phi)*z/(exp(3/2*ln(sqr(x-Radius*cos(phi))+sqr(y-Radius*sin(phi))+sqr(z))));
dBz[schritt] := faktor*(sqr(Radius)-Radius*(sin(phi)*y+cos(phi)*x))/(exp(3/2*ln(sqr(x-Radius*cos(phi))+
sqr(y-Radius*sin(phi))+sqr(z))));
phi:=phi+dphi
end;
for schritt := 1 to 2*n-1 do
begin
if odd(schritt) then
begin {Speichern der ungeraden Schritte}
ungeradex := ungeradex+dBx[schritt];
ungeradey := ungeradey+dBy[schritt];
ungeradez := ungeradez+dBz[schritt];
end
else
begin
geradex := geradex+dBx[schritt]; {Speichern der geraden Schritte}
geradey := geradey+dBy[schritt];
geradez := geradez+dBz[schritt];
end;
end;
BFeldx := ((dBx[0]+dBx[2*n])+ungeradex*4+geradex*2)*dphi/3; {Berechnung der Magnetfeldkomponenten}
BFeldy := ((dBy[0]+dBy[2*n])+ungeradey*4+geradey*2)*dphi/3;
BFeldz := ((dBz[0]+dBz[2*n])+ungeradez*4+geradez*2)*dphi/3;
end;
procedure Runge;
Var {Lösung der Differentialgleichung mit Hilfe }
k1x,k1y,k1z,k2x,k2y,k2z,k3x,k3y,k3z,k4x,k4y,k4z: Extended; {des Runge - Kutta - Verfahren}
m1x,m1y,m1z,m2x,m2y,m2z,m3x,m3y,m3z,m4x,m4y,m4z: Extended;
a,hilfsx,hilfsy,hilfsz : Extended;
hilfsvx,hilfsvy,hilfsvz: Extended;
begin
a:= Ladung/Masse;
hilfsx := x;
hilfsy := y;
hilfsz := z;
Magnet_Feld;
k1x := h * vx; {1. Schritt im Runge Kutta}
k1y := h * vy;
k1z := h * vz;
m1x := h * (a*(EFeldx + vy * BFeldz - vz * BFeldy));
m1y := h * (a*(EFeldy + vz * BFeldx - vx * BFeldz));
m1z := h * (a*(EFeldz + vx * BFeldy - vy * BFeldx));
x := hilfsx + k1x/2;
y := hilfsy + k1y/2;
z := hilfsz + k1z/2;
Magnet_Feld;
k2x := h * (vx + m1x/2); {2. Schritt im Runge Kutta}
k2y := h * (vy + m1y/2);
k2z := h * (vz + m1z/2);
m2x := h * (a*(EFeldx + (vy + m1y / 2) * BFeldz - (vz + m1z / 2) * BFeldy));
m2y := h * (a*(EFeldy + (vz + m1z / 2) * BFeldx - (vx + m1x / 2) * BFeldz));
m2z := h * (a*(EFeldz + (vx + m1x / 2) * BFeldy - (vy + m1y / 2) * BFeldx));
x := hilfsx + k2x/2;
y := hilfsy + k2y/2;
z := hilfsz + k2z/2;
Magnet_Feld;
k3x := h * (vx + m2x/2); {3.Schritt im Runge Kutta}
k3y := h * (vy + m2y/2);
k3z := h * (vz + m2z/2);
m3x := h * (a*(EFeldx + (vy + m2y / 2) * BFeldz - (vz + m2z / 2) * BFeldy));
m3y := h * (a*(EFeldy + (vz + m2z / 2) * BFeldx - (vx + m2x / 2) * BFeldz));
m3z := h * (a*(EFeldz + (vx + m2x / 2) * BFeldy - (vy + m2y / 2) * BFeldx));
x := hilfsx + k3x;
y := hilfsy + k3y;
z := hilfsz + k3z;
Magnet_Feld;
k4x := h * (vx + m3x); {4.Schritt im Runge Kutta}
k4y := h * (vy + m3y);
k4z := h * (vz + m3z);
m4x := h * (a*(EFeldx + (vy + m3y) * BFeldz - (vz + m3z) * BFeldy));
m4y := h * (a*(EFeldy + (vz + m3z) * BFeldx - (vx + m3x) * BFeldz));
m4z := h * (a*(EFeldz + (vx + m3x) * BFeldy - (vy + m3y) * BFeldx));
x := hilfsx + 1 / 6 * (k1x + 2 * k2x + 2 * k3x + k4x);
y := hilfsy + 1 / 6 * (k1y + 2 * k2y + 2 * k3y + k4y);
z := hilfsz + 1 / 6 * (k1z + 2 * k2z + 2 * k3z + k4z);
vx:= vx + 1 / 6 * (m1x + 2 * m2x + 2 * m3x + m4x);
vy:= vy + 1 / 6 * (m1y + 2 * m2y + 2 * m3y + m4y);
vz:= vz + 1 / 6 * (m1z + 2 * m2z + 2 * m3z + m4z);
end;
procedure zeichnen;
Var
xx,yy,zz : Integer;
rAlpha,rBeta : Real;
begin
rBeta := Beta * pi / 180;
rAlpha:= Alpha * pi / 180;
Energie:=Energiev * 1.6021773E-19;
v0 := sqrt(2 * Energie / Masse); {Umrechnung der Energie in Geschwindigkeit}
vx := sin(rBeta) * cos(rAlpha) * v0; {Aufspaltung der Geschwindigkeit in }
vy := sin(rBeta) * sin(rAlpha) * v0; {die einzelnen Komponenten}
vz := cos(rBeta) * v0;
Repeat
begin
xx:= Round(x * 2000 * Zoomfak);
yy:= Round(y * 2000 * Zoomfak);
zz:= Round(z * 2000);
putpixel(zz + 150, 150 - xx,9); {Ausgabe der x - z - Kurve}
putpixel(zz + 450, 150 - yy,9); {Ausgabe der y - z - Kurve}
putpixel(xx + 450, 390 - yy,9); {Ausgabe der x - y - Kurve}
If (xx >= 150) or (yy >= 150) or (zz >= 150) then {Abbruch falls Kurve die Koordinaten-}
begin {felder verl„át}
readln;
exit;
end;
Runge;
end;
Until Keypressed;
end;
begin {Hauptprogramm mit Initialisierung der Grafik}
ClrScr;
grDriver := Detect;
initgraph(grDriver,grMode,'C:\TP');
setbkcolor(7);
Wahl1 := '3';
Eroeff;
Repeat
begin
if Wahl1 = '3' then
begin
Masse := 9.1093897E-31; Alpha := 30; Beta := 25; Radius:= 0.04; {Definition der Standard - Werte}
Ladung:= 1.60217733E-19; Energiev:= 43; Zoomfak:= 1;
h:= 1e-10; I:= 60; EFeldx:=0; EFeldy:=0; EFeldz:=0;
x:= 0.01; y:= 0.01; z:= -0.05;
rx:= 0.01; ry:= 0.01; rz:= -0.05;
end;
Menue; {Menuewahl}
case Wahl1 of
'1': Werte;
'2': begin Koord; x:=rx; y:=ry; z:=rz; Zeichnen; Werte_Ausg; end;
'3':;
'4':;
end;
end;
Until (Wahl1 = '4');
Closegraph;
end.