6.1.2 Pascal-Version

{  1 } {  Time-stamp: "04.05.03 06:53 suchestud.pas klaus@wachtler.de" }
{  2 } {  Pascal-Programm, um nach einem Studenten zu suchen               }
{  3 } {  Unter Linux:   gpc -Wall suchestud.pas -o suchestud              }
{  4 }
{  5 } PROGRAM Sustud(Input, Output);
{  6 }
{  7 } { Vereinbarung von Konstanten: }
{  8 } CONST
{  9 }
{ 10 } Anzahl = 5;
{ 11 }
{ 12 } { Vereinbarung von Typen: }
{ 13 } TYPE
{ 14 }
{ 15 } { Definition eines Datentypen: ein Student }
{ 16 } Student = RECORD
{ 17 }              Vorname:    string(100);
{ 18 }              Nachname:   string(100);
{ 19 }              Matrikel:   integer;
{ 20 }           END;
{ 21 }
{ 22 } { Definition eines Feldes davon: }
{ 23 } ArrayStudenten = ARRAY [1..5] OF Student;
{ 24 }
{ 25 } { Sucht in dem Feld MA (mit ANZAHL Matrikelnummern) nach dem      }
{ 26 } { Eintrag mit dem Wert KEY, und liefert den Index (1 bis ANZAHL). }
{ 27 } { Wenn nichts gefunden wird, dann wird -1 zurückgegeben:          }
{ 28 } FUNCTION SucheStudent( VAR Studenten: ArrayStudenten;
{ 29 }                        indexl: integer;
{ 30 }                        indexh: integer;
{ 31 }                        key:       integer
{ 32 }                      ): integer;
{ 33 }
{ 34 } VAR
{ 35 } i: integer;
{ 36 } BEGIN
{ 37 }     FOR i:=indexl TO indexh DO
{ 38 }     BEGIN
{ 39 }        IF ( Studenten[i].Matrikel = key ) THEN
{ 40 }        BEGIN
{ 41 }            return i;
{ 42 }        END;
{ 43 }     END;
{ 44 }     return -1;
{ 45 } END;
{ 46 }
{ 47 } { Variablen für das Hauptprogramm: }
{ 48 } VAR
{ 49 }
{ 50 }   Studenten: ArrayStudenten;
{ 51 }   index_erg: integer;
{ 52 }
{ 53 } { Beginn des Hauptprogramms: }
{ 54 } BEGIN
{ 55 }
{ 56 }     { Vorbelegen des Feldes: }
{ 57 }     Studenten[1].Matrikel := 978123;
{ 58 }     Studenten[1].Nachname := 'Pappnase';
{ 59 }     Studenten[1].Vorname  := 'Kurt';
{ 60 }     Studenten[2].Matrikel := 987456;
{ 61 }     Studenten[2].Nachname := 'Meier';
{ 62 }     Studenten[2].Vorname  := 'Hein';
{ 63 }     Studenten[3].Matrikel := 998159;
{ 64 }     Studenten[3].Nachname := 'Schmidt';
{ 65 }     Studenten[3].Vorname  := 'Fritz';
{ 66 }     Studenten[4].Matrikel := 988123;
{ 67 }     Studenten[4].Nachname := 'Lahm';
{ 68 }     Studenten[4].Vorname  := 'Klaus';
{ 69 }     Studenten[5].Matrikel := 977111;
{ 70 }     Studenten[5].Nachname := 'Flink';
{ 71 }     Studenten[5].Vorname  := 'Sina';
{ 72 }
{ 73 }     { Unter den Studenten nach der Matrikelnummer 988123 suchen: }
{ 74 }     index_erg := SucheStudent( Studenten, 1, Anzahl, 988123 );
{ 75 }
{ 76 }     writeln( 'gefunden: ',
{ 77 }              index_erg, ' ',
{ 78 }              Studenten[index_erg].Vorname, ' ',
{ 79 }              Studenten[index_erg].Nachname
{ 80 }            );
{ 81 } END.



www.wachtler.de