{ 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.