home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM Periodensystem;
-
- USES Crt;
-
- TYPE Elementtyp = RECORD
- Name : String [20];
- Abk : String [2] ;
- Ordnzahl : Integer;
- Radioakt : Boolean;
- Atommasse : Real
- END; { von Record }
-
- VAR Element : ARRAY [ 1..118 ] OF Elementtyp;
- n : Integer;
- ch : CHAR;
-
- PROCEDURE Sort (Modus , Ende : Integer);
- VAR i, j : Integer;
-
- PROCEDURE Tausche (VAR a,b : Elementtyp);
- VAR Hilf : Elementtyp;
- BEGIN
- Hilf := a;
- a := b;
- b := Hilf
- END; { von Tausche }
-
- BEGIN
- FOR i:=1 TO Ende-1 DO
- FOR j:=Ende DOWNTO i DO
- CASE Modus OF
- 1 : IF Element [i].Name > Element [j].Name THEN
- Tausche ( Element [i] , Element [j] );
- 2 : IF Element [i].Atommasse > Element [j].Atommasse THEN
- Tausche ( Element [i] , Element [j] )
- END { von Case }
- END; { Von Sort }
-
- PROCEDURE Ausgabe ( Ende : Integer);
- VAR i : Integer;
- BEGIN
- FOR i:=1 TO Ende DO WITH Element [i] DO BEGIN
- Write (Ordnzahl:3, Name:20,Abk:4 ,' Atommasse=',
- Atommasse:8:4);
- IF Radioakt THEN Write (' hat ') ELSE Write (' ohne ');
- Writeln (' radioaktive Isotope')
- END { von With }
- END; { von Ausgabe }
-
-
- BEGIN { Hauptprogramm }
- Writeln ('Eingabe der Daten: '); Writeln;
- n := 0;
- REPEAT
- n := n + 1;
- WITH Element [n] DO BEGIN
- Ordnzahl := n;
- Writeln (n:3 , '. Element:');
- Write ('Name: '); Readln (Name);
- Write ('Abkürzung: '); Readln (Abk);
- Write ('Atommasse: '); Readln (Atommasse);
- Write ('Radioaktiv (J/N) ? '); ch:=ReadKey;
- Radioakt := (ch='J') OR (ch='j');
- Writeln; Writeln
- END; { von with }
- Write ('Weiter (J/N) ? '); ch:=ReadKey; Writeln
- UNTIL (ch<>'J') AND (ch<>'j');
- ClrScr;
- Writeln ('Liste nach Namen sortiert: '); Writeln;
- Sort (1,n);
- Ausgabe (n);
- Writeln; Writeln ('Eingabetaste drücken...');
- Readln;
- Writeln ('Liste nach Atommassen sortiert: '); Writeln;
- Sort (2,n);
- Ausgabe (n)
- END.
-
-