PROGRAM MKFILE;

USES    crt,algebra;

TYPE    dt = <beginfold id='1'>record</beginfold id='1'> e : <beginfold id='1'>record</beginfold id='1'> name     : string [15];
                               zeichen  : string [2];
                               ozahl    : byte;
                               amasse   : string [9];
                               ent      : array [1..4]  of string [70]
                        <endfold id='1'>end</endfold id='1'>;

                    c : <beginfold id='1'>record</beginfold id='1'> txt      : array [1..10] of string [40];
                               radien   : array [1..2]  of string [6];
                               elneg    : string [7];
                               kladung  : string [5]
                        <endfold id='1'>end</endfold id='1'>;

                    p : <beginfold id='1'>record</beginfold id='1'> smt      : string [8];
                               sdt      : string [8];
                               dichte   : string [15];
                               volmol   : string [13];
                        <endfold id='1'>end</endfold id='1'>;

                    u : <beginfold id='1'>record</beginfold id='1'> bio      : array [1..13] of string [30];
                               hauf     : array [1..4] of string [30];
                               geo      : array [1..6] of string [30];
                        <endfold id='1'>end</endfold id='1'>;

                    s : <beginfold id='1'>record</beginfold id='1'> n        : byte;
                               bele     : array [1..7] of byte;
                        <endfold id='1'>end</endfold id='1'>;

                    i : <beginfold id='1'>record</beginfold id='1'> first    : word;
                               last     : word;
                               c1       : array [1..100] of byte;
                               c2       : array [1..100] of byte;
                               c3       : array [1..100] of byte;
                               c4       : array [1..100] of byte;
                               hzeit    : array [1..100] of array [1..2] of string [7];
                        <endfold id='1'>end</endfold id='1'>;
             <endfold id='1'>end</endfold id='1'>;

        cfg = <beginfold id='1'>record</beginfold id='1'> pse  : string;
                     bgi  : string;
                     info : string;
              <endfold id='1'>end</endfold id='1'>;


VAR     i     : dt;
        h     : file of dt;

        t     : cfg;
        u     : file of cfg;

        zstr  : string;
        ozahl : byte;

PROCEDURE MKELEMENT (ozahl:byte);
<beginfold id='1'>BEGIN</beginfold id='1'>     <beginfold id='1'>CASE</beginfold id='1'> ozahl OF
             1    : i.e.name:='Wasserstoff';
             2    : i.e.name:='Helium';
             3    : i.e.name:='Lithium';
             4    : i.e.name:='Beryllium';
             5    : i.e.name:='Bor';
             6    : i.e.name:='Kohlenstoff';
             7    : i.e.name:='Stickstoff';
             8    : i.e.name:='Sauerstoff';
             9    : i.e.name:='Fluor';
             10   : i.e.name:='Neon';
             11   : i.e.name:='Natrium';
             12   : i.e.name:='Magnesium';
             13   : i.e.name:='Aluminium';
             14   : i.e.name:='Silicium';
             15   : i.e.name:='Phosphor';
             16   : i.e.name:='Schwefel';
             17   : i.e.name:='Chlor';
             18   : i.e.name:='Argon';
             19   : i.e.name:='Kalium';
             20   : i.e.name:='Calzium';
             21   : i.e.name:='Scandium';
             22   : i.e.name:='Titan';
             23   : i.e.name:='Vanadium';
             24   : i.e.name:='Chrom';
             25   : i.e.name:='Mangan';
             26   : i.e.name:='Eisen';
             27   : i.e.name:='Cobalt';
             28   : i.e.name:='Nickel';
             29   : i.e.name:='Kupfer';
             30   : i.e.name:='Zink';
             31   : i.e.name:='Gallium';
             32   : i.e.name:='Germanium';
             33   : i.e.name:='Arsen';
             34   : i.e.name:='Selen';
             35   : i.e.name:='Brom';
             36   : i.e.name:='Krypton';
             37   : i.e.name:='Rubidium';
             38   : i.e.name:='Strontium';
             39   : i.e.name:='Yttrium';
             40   : i.e.name:='Zirconium';
             41   : i.e.name:='Niob';
             42   : i.e.name:='Molybd�n';
             43   : i.e.name:='Technetium';
             44   : i.e.name:='Ruthenium';
             45   : i.e.name:='Rhodium';
             46   : i.e.name:='Paladium';
             47   : i.e.name:='Silber';
             48   : i.e.name:='Cadmium';
             49   : i.e.name:='Indium';
             50   : i.e.name:='Zinn';
             51   : i.e.name:='Antimon';
             52   : i.e.name:='Tellur';
             53   : i.e.name:='Iod';
             54   : i.e.name:='Xenon';
             55   : i.e.name:='Caesium';
             56   : i.e.name:='Barium';
             57   : i.e.name:='Lanthan';
             58   : i.e.name:='Cer';
             59   : i.e.name:='Praseodym';
             60   : i.e.name:='Neodym';
             61   : i.e.name:='Promelthium';
             62   : i.e.name:='Samarium';
             63   : i.e.name:='Europium';
             64   : i.e.name:='Gadolinium';
             65   : i.e.name:='Terbium';
             66   : i.e.name:='Dysprosium';
             67   : i.e.name:='Holmiuim';
             68   : i.e.name:='Erbium';
             69   : i.e.name:='Thulium';
             70   : i.e.name:='Ytterbium';
             71   : i.e.name:='Lutetium';
             72   : i.e.name:='Hafnium';
             73   : i.e.name:='Tanal';
             74   : i.e.name:='Wolfram';
             75   : i.e.name:='Rhenium';
             76   : i.e.name:='Osmium';
             77   : i.e.name:='Iridium';
             78   : i.e.name:='Platin';
             79   : i.e.name:='Gold';
             80   : i.e.name:='Quecksilber';
             81   : i.e.name:='Thalium';
             82   : i.e.name:='Blei';
             83   : i.e.name:='Wissmut';
             84   : i.e.name:='Polonium';
             85   : i.e.name:='Astat';
             86   : i.e.name:='Radon';
             87   : i.e.name:='Francium';
             88   : i.e.name:='Radium';
             89   : i.e.name:='Actinium';
             90   : i.e.name:='Thorium';
             91   : i.e.name:='Protactinium';
             92   : i.e.name:='Uran';
             93   : i.e.name:='Neptunium';
             94   : i.e.name:='Plutonium';
             95   : i.e.name:='Americum';
             96   : i.e.name:='Curium';
             97   : i.e.name:='Berkelium';
             98   : i.e.name:='Californium';
             99   : i.e.name:='Einsteinium';
             100  : i.e.name:='Fermium';
             101  : i.e.name:='Mendelevium';
             102  : i.e.name:='Nobelium';
             103  : i.e.name:='Lawrencium';
             104  : i.e.name:='Rutherfordium';
             105  : i.e.name:='Dubnium';
          <endfold id='1'>END</endfold id='1'>;

          <beginfold id='1'>CASE</beginfold id='1'> ozahl OF
             1    : i.e.zeichen:='H';
             2    : i.e.zeichen:='He';
             3    : i.e.zeichen:='Li';
             4    : i.e.zeichen:='Be';
             5    : i.e.zeichen:='B';
             6    : i.e.zeichen:='C';
             7    : i.e.zeichen:='N';
             8    : i.e.zeichen:='O';
             9    : i.e.zeichen:='F';
             10   : i.e.zeichen:='Ne';
             11   : i.e.zeichen:='Na';
             12   : i.e.zeichen:='Mg';
             13   : i.e.zeichen:='Al';
             14   : i.e.zeichen:='Si';
             15   : i.e.zeichen:='P';
             16   : i.e.zeichen:='S';
             17   : i.e.zeichen:='Cl';
             18   : i.e.zeichen:='Ar';
             19   : i.e.zeichen:='K';
             20   : i.e.zeichen:='Sa';
             21   : i.e.zeichen:='Sc';
             22   : i.e.zeichen:='Ti';
             23   : i.e.zeichen:='V';
             24   : i.e.zeichen:='Cr';
             25   : i.e.zeichen:='Mn';
             26   : i.e.zeichen:='Fe';
             27   : i.e.zeichen:='Co';
             28   : i.e.zeichen:='Ni';
             29   : i.e.zeichen:='Cu';
             30   : i.e.zeichen:='Zn';
             31   : i.e.zeichen:='Ga';
             32   : i.e.zeichen:='Ge';
             33   : i.e.zeichen:='As';
             34   : i.e.zeichen:='Se';
             35   : i.e.zeichen:='Br';
             36   : i.e.zeichen:='Kr';
             37   : i.e.zeichen:='Rb';
             38   : i.e.zeichen:='Sr';
             39   : i.e.zeichen:='Y';
             40   : i.e.zeichen:='Zr';
             41   : i.e.zeichen:='Nb';
             42   : i.e.zeichen:='Mo';
             43   : i.e.zeichen:='Tc';
             44   : i.e.zeichen:='Ru';
             45   : i.e.zeichen:='Rh';
             46   : i.e.zeichen:='Pd';
             47   : i.e.zeichen:='Ag';
             48   : i.e.zeichen:='Cd';
             49   : i.e.zeichen:='In';
             50   : i.e.zeichen:='Sn';
             51   : i.e.zeichen:='Sb';
             52   : i.e.zeichen:='Te';
             53   : i.e.zeichen:='I';
             54   : i.e.zeichen:='Xe';
             55   : i.e.zeichen:='Cs';
             56   : i.e.zeichen:='Ba';
             57   : i.e.zeichen:='La';
             58   : i.e.zeichen:='Ce';
             59   : i.e.zeichen:='Pr';
             60   : i.e.zeichen:='Nd';
             61   : i.e.zeichen:='Pm';
             62   : i.e.zeichen:='Sm';
             63   : i.e.zeichen:='Eu';
             64   : i.e.zeichen:='Gd';
             65   : i.e.zeichen:='Tb';
             66   : i.e.zeichen:='Dy';
             67   : i.e.zeichen:='Ho';
             68   : i.e.zeichen:='Er';
             69   : i.e.zeichen:='Tm';
             70   : i.e.zeichen:='Yb';
             71   : i.e.zeichen:='Lu';
             72   : i.e.zeichen:='Hf';
             73   : i.e.zeichen:='Ta';
             74   : i.e.zeichen:='W';
             75   : i.e.zeichen:='Re';
             76   : i.e.zeichen:='Os';
             77   : i.e.zeichen:='Ir';
             78   : i.e.zeichen:='Pt';
             79   : i.e.zeichen:='Au';
             80   : i.e.zeichen:='Hg';
             81   : i.e.zeichen:='Tl';
             82   : i.e.zeichen:='Pb';
             83   : i.e.zeichen:='Bi';
             84   : i.e.zeichen:='Po';
             85   : i.e.zeichen:='At';
             86   : i.e.zeichen:='Rn';
             87   : i.e.zeichen:='Fr';
             88   : i.e.zeichen:='Ra';
             89   : i.e.zeichen:='Ac';
             90   : i.e.zeichen:='Th';
             91   : i.e.zeichen:='Pa';
             92   : i.e.zeichen:='U';
             93   : i.e.zeichen:='Np';
             94   : i.e.zeichen:='Pu';
             95   : i.e.zeichen:='Am';
             96   : i.e.zeichen:='Cm';
             97   : i.e.zeichen:='Bk';
             98   : i.e.zeichen:='Cf';
             99   : i.e.zeichen:='Es';
             100  : i.e.zeichen:='Fm';
             101  : i.e.zeichen:='Md';
             102  : i.e.zeichen:='No';
             103  : i.e.zeichen:='Lr';
             104  : i.e.zeichen:='Rf';
             105  : i.e.zeichen:='Db';
          <endfold id='1'>END</endfold id='1'>;
<endfold id='1'>END</endfold id='1'>;

PROCEDURE MKBELE (ozahl:byte);
<beginfold id='1'>BEGIN</beginfold id='1'>     IF (ozahl>2) THEN i.s.bele[1]:=2;

          IF (ozahl>9) THEN i.s.bele[2]:=8;

          IF (ozahl>28) THEN i.s.bele[3]:=18;

          IF (ozahl>69) THEN i.s.bele[4]:=32;

          IF (ozahl>87) THEN i.s.bele[7]:=2;

          IF (ozahl>0) and (ozahl<3) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=1;
                                                i.s.bele[1]:=ozahl;
                                          <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>2) and (ozahl<11) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=2;
                                                 i.s.bele[2]:=ozahl-2;
                                           <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>10) and (ozahl<19) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=3;
                                                  i.s.bele[3]:=ozahl-10;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>18) and (ozahl<21) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                                  i.s.bele[3]:=8;
                                                  i.s.bele[4]:=ozahl-18;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>20) and (ozahl<24) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                                  i.s.bele[3]:=ozahl-12;
                                                  i.s.bele[4]:=2;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl=24) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                   i.s.bele[3]:=13;
                                   i.s.bele[4]:=1;
                             <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>24) and (ozahl<29) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                                  i.s.bele[3]:=ozahl-12;
                                                  i.s.bele[4]:=2;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>28) and (ozahl<37) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                                  i.s.bele[4]:=ozahl-28;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>36) and (ozahl<39) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=5;
                                                  i.s.bele[4]:=8;
                                                  i.s.bele[5]:=ozahl-36;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>38) and (ozahl<41) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=5;
                                                  i.s.bele[4]:=ozahl-30;
                                                  i.s.bele[5]:=2;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>40) and (ozahl<46) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=5;
                                                  i.s.bele[4]:=ozahl-29;
                                                  i.s.bele[5]:=1;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl=46) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=4;
                                   i.s.bele[4]:=18;
                             <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>46) and (ozahl<55) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=5;
                                                  i.s.bele[4]:=18;
                                                  i.s.bele[5]:=ozahl-46;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>54) and (ozahl<57) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                  i.s.bele[4]:=18;
                                                  i.s.bele[5]:=8;
                                                  i.s.bele[6]:=ozahl-54;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl=57) or (ozahl=64) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                 i.s.bele[4]:=ozahl-39;
                                                 i.s.bele[5]:=9;
                                                 i.s.bele[6]:=2;
                                           <endfold id='1'>END</endfold id='1'>;

          IF ((ozahl>57) and (ozahl<64)) or ((ozahl>64) and (ozahl<71))
                                          THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                     i.s.bele[4]:=ozahl-38;
                                                     i.s.bele[5]:=8;
                                                     i.s.bele[6]:=2;
                                               <endfold id='1'>END</endfold id='1'>;

          IF (ozahl=64) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                   i.s.bele[4]:=25;
                                   i.s.bele[5]:=9;
                                   i.s.bele[6]:=2;
                             <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>70) and (ozahl<78) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                  i.s.bele[5]:=ozahl-62;
                                                  i.s.bele[6]:=2;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>77) and (ozahl<80) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                  i.s.bele[5]:=ozahl-61;
                                                  i.s.bele[6]:=1;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>79) and (ozahl<87) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=6;
                                                  i.s.bele[5]:=18;
                                                  i.s.bele[6]:=ozahl-78;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>86) and (ozahl<89) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                  i.s.bele[5]:=18;
                                                  i.s.bele[6]:=8;
                                                  i.s.bele[7]:=ozahl-86;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>88) and (ozahl<91) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                  i.s.bele[5]:=18;
                                                  i.s.bele[6]:=ozahl-80;
                                            <endfold id='1'>END</endfold id='1'>;

          IF ((ozahl>90) and (ozahl<94)) or (ozahl=96)
                                       THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                  i.s.bele[5]:=ozahl-71;
                                                  i.s.bele[6]:=9;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>93) and (ozahl<96) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                  i.s.bele[5]:=ozahl-70;
                                                  i.s.bele[6]:=8;
                                            <endfold id='1'>END</endfold id='1'>;

          IF (ozahl>96) and (ozahl<103) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                   i.s.bele[5]:=ozahl-70;
                                                   i.s.bele[6]:=8;
                                             <endfold id='1'>END</endfold id='1'>;

         IF (ozahl>102) and (ozahl<106) THEN <beginfold id='1'>BEGIN</beginfold id='1'> i.s.n:=7;
                                                   i.s.bele[5]:=32;
                                                   i.s.bele[6]:=ozahl-94;
                                             <endfold id='1'>END</endfold id='1'>;
<endfold id='1'>END</endfold id='1'>;

<beginfold id='1'>BEGIN</beginfold id='1'>     Assign (u,'install.cfg');
          Reset (u);
          Read (u,t);
          Close (u);

          clrscr;

          FOR ozahl:=1 TO 105 DO
              <beginfold id='1'>BEGIN</beginfold id='1'> INTSTR(ozahl,zstr);

                    assign (h,t.info + zstr + '.pse');
                    write (t.info + zstr + '.pse');
                    rewrite (h);
                    reset (h);

                    i.e.ozahl:=ozahl;
                    MKELEMENT(ozahl);
                    MKBELE(ozahl);

                    write (h,i);
                    close (h);

                    Writeln ('.......Erstellt');
              <endfold id='1'>END</endfold id='1'>;
              readkey;
<endfold id='1'>END</endfold id='1'>.
