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.