Themenbereich: Prozeduren, Funktionen, Prozedurtypen

Ferienaufgabe 2: Einfach(st)e Matrizenrechnung

Vorbemerkung: Die Idee zu dieser Aufgabe entstand aus einer Anfrage eines Studenten, der mir ein von ihm geschriebenes Programm mit der Bitte um Korrektur zugesandt hatte. Ich habe sein Programm für diese Übungsaufgabe etwas "ge-tune-d" und bedanke mich bei ihm (der nicht näher genannt werden möchte...) für seine Anregung!

Gegeben sei das Oberon-Programm Matrix.om nebst zugehöriger Definition-Datei.

Das Programm fragt zunächst nach den gewünschten Dimensionen für die Matrix (max. 10x10-Matrizen sind möglich) und liest danach die einzelnen Matrixeinträge von der Standardeingabe ein. Auch eine Fehlerbehandlung ist bereits vorhanden. Wenn die Matrix vollständig und korrekt vorliegt, dann werden nacheinander die folgenden Operationen auf ihr durchgeführt:

Wenn Sie sich das Programm genau anschauen, werden Sie feststellen, daß dort eine Konstruktion mit einer doppelten WHILE-Schleife mehrfach vorkommt. Diese Konstruktion dient dazu, die Matrix elementweise zu durchlaufen und auf jedem Element eine bestimmte Operation durchzuführen.

Ihre Aufgabe ist es nun, das gegebene Programm unter der Verwendung von Prozedurtypen so umzugestalten, daß diese doppelte WHILE-Schleife nur noch einmal - als eigene Prozedur - vorkommt. Die Funktionalität, die letztlich pro Matrixelement ausgeführt werden soll, wird dieser Prozedur dann als Funktionsparameter übergeben. Zur Verwendung von Prozedurtypen: siehe Skript oder Übungsaufgabe 14 (nebst Beispielen dazu).

Hinweis: Um sich bei dieser Aufgabe auf das Wesentliche - nämlich auf die Verwendung von Prozedurtypen - zu konzentrieren, dürfen Sie auch globale Variablen verwenden.

Norbert Heidenbluth - 25.02.2005