Bei Programmiersprachen aus der Prä-OO-Ära (beispielsweise C gemäß Kernighan und Ritchie oder dann später ANSI-C, ebenso wie Fortran, ALGOL und Pascal) sind Daten und die Operationen darauf nicht zwangsweise miteinander verbunden, sondern müssen bei Bedarf vom Programmierer zusammengeführt werden.
Eine Beispiellösung in Fortran 77 könnte so aussehen:
C Time-stamp: "(13.05.02 19:04) suchestud.for [Klaus@Wachtler.de]" 1
C Fortran77-Programm, um nach einem Studenten zu suchen 2
C Unter Linux: g77 -Wall suchestud.for -o suchestud 3
4
PROGRAM SUSTUD 5
6
C Da es in F77 keine Strukturen gibt, kann man auch kein Feld 7
C bilden, dessen Elemente jeweils aus Vorname, Nachname, und 8
C Matrikelnummer bestehen. 9
C Ersatzweise bilden wir halt drei Felder; jeweils eines für jedes 10
C Element. 11
12
C Die vorhandenen Studenten: 13
CHARACTER*20 VNAME(5) 14
CHARACTER*20 NNAME(5) 15
INTEGER MATR(5) 16
17
C Index für Ergebnis: 18
INTEGER IDXERG 19
20
C Suchfunktion: 21
INTEGER SUCHE 22
23
C Vorbelegung der Felder: 24
DATA VNAME / 'Kurt', 'Hein', 'Fritz', 'Klaus', 'Sina' / 25
DATA NNAME / 'Pappnase', 'Meier', 'Schmidt', 'Lahm', 'Flink' / 26
DATA MATR / 978123, 987456, 998159, 988123, 977111 / 27
28
C Unter den Studenten nach der Matrikelnummer 988123 suchen: 29
IDXERG = SUCHE( MATR, 5, 988123 ) 30
31
IF( IDXERG .GT. 0 ) THEN 32
PRINT*, 'gefunden: ', VNAME(IDXERG), NNAME( IDXERG ) 33
ELSE 34
PRINT*, 'nicht gefunden!' 35
ENDIF 36
37
END 38
39
40
C Sucht in dem Feld MA (mit ANZAHL Matrikelnummern) nach dem 41
C Eintrag mit dem Wert KEY, und liefert den Index (1 bis ANZAHL). 42
C Wenn nichts gefunden wird, dann wird -1 zurückgegeben: 43
INTEGER FUNCTION SUCHE( MA, ANZAHL, KEY ) 44
45
INTEGER MA(*), ANZAHL, KEY 46
47
INTEGER I 48
49
C Lineare Suche über das gesamte Feld, bis gefunden: 50
DO 100, I = 1, ANZAHL 51
52
IF( MA(I) .EQ. KEY ) THEN 53
C Gefunden! 54
SUCHE = I 55
RETURN 56
ENDIF 57
58
100 CONTINUE 59
60
C Nicht gefunden: 61
SUCHE = -1 62
RETURN 63
64
END 65
Durch das Fehlen fast aller oben aufgeführten Sprachmöglichkeiten ist das Fortranbeispiel aus heutiger Sicht sehr unelegant. Schon bei kleinen oder mittleren Programmen hat man sehr viele Fehlerquellen, die eine Änderung bestehender Programme gefährlich und aufwendig machen.