Universität Ulm - Abteilung Angewandte Informationsverarbeitung
6. Übungsblatt (28.11.01 bis 12.12.01) zur Vorlesung
Allgemeine Informatik I für Wirtschaftswissenschaftler und Biologen
WS 2001/2002
Dieses Übungsblatt ist auf 2 Wochen angelegt, wobei man die zweite Aufgabe
auch erst in der zweiten Woche (nach einer einführenden Vorlesung über
Oberon) angehen sollte.
Normalerweise findet Ihr Tutorium diesmal nur in der zweiten Woche statt;
jedoch wird sich Ihr Tutor auf Wunsch auch gerne vorher mit Ihnen treffen.
Algorithmen, Algorithmen, Algorithmen! (8 Punkte)
Im Skript wurden ja bereits mehrfach Algorithmen entwickelt. Dies soll nun
mit dieser Aufgabe vertieft werden, zunächst einmal ohne
Oberon.
Erinnern Sie sich: Um einen Algorithmus zu formulieren, müssen Sie das
eigentliche Problem in elementare Schritte zerlegen. Diese Schritte
werden dann beschrieben - einer nach dem anderen und in endlicher Form!
Beschreiben Sie nun die beiden folgenden Algorithmen verbal:
- Ganzzahliges Dividieren ohne Divisionsrest (Algorithmus 1)
- Divisionsrest bei der ganzzahligen Division (Algorithmus 2)
Beide Algorithmen benötigen vom Anwender zwei Zahlen, sie sollen
im Algorithmus mit dividend und divisor bezeichnet werden.
Das Ergebnis der Berechnung soll in der Variable result stehen.
Einige Beispiele:
- Algorithmus 1 angewandt auf 17 und 6 liefert als Ergebnis 2.
- Algorithmus 2 angewandt auf 17 und 6 liefert als Ergebnis 5.
- Algorithmus 1 angewandt auf 24 und 4 liefert als Ergebnis 6.
- Algorithmus 2 angewandt auf 24 und 4 liefert als Ergebnis 0.
Abschließend noch ein paar kleine Tipps:
- Verbal beschreiben bedeutet nichts anderes, als einfach direkt
zu formulieren, welche Schritte sie im Algorithmus machen. Als Beispiel habe
ich Ihnen einmal den Algorithmus zur Bestimmung der
Fakultät aufgeschrieben.
- Ich empfehle Ihnen, den Text direkt in vi einzutippen und als
Dateiendung .txt zu verwenden. So vermeiden Sie Konflikte mit Ihren
Oberon-Programmen.
- Die beiden Algorithmen sollen völlig unabhängig voneinander
entwickelt werden, d.h. man darf nicht im einen Algorithmus den anderen
explizit aufrufen.
- Wenn Sie möchten, können Sie wichtige Schlüsselbegriffe wie
SETZE, ERHÖHE, ERNIEDRIGE oder SOLANGE auch
auf englisch übersetzen. Dies wird Ihnen den Umstieg auf Oberon
erleichtern.
Meine ersten Oberon-Programme! (12 Punkte)
Nachdem Sie in der letzten Aufgabe die beiden Algorithmen zur ganzzahligen
Division entworfen haben, geht es jetzt an die konkrete Implementierung
mit Oberon! Sie sollen also zwei Oberon-Prorgamme schreiben, nämlich
- ein Programm für die ganzzahlige Division ohne Rest (man könnte es
beispielsweise DivisionGanz nennen) sowie
- ein zweites Programm zur Ermittlung des ganzzahligen Divisionsrests
(DivisionRest).
Verwenden Sie die gelernten Oberon-Skills und programmieren Sie
Ihre Ideen aus Aufgabe 1. Natürlich sollen Sie nicht schummeln - deshalb
ist der Gebrauch der Operatoren DIV, MOD und * explizit
verboten (DIV und MOD sind übrigens die Oberon-Operatoren
für die beiden Algorithmen).
Noch eine letzte Bemerkung: Ihre Programme sollen voll funktionstüchtig
sein, d.h. sie müssen zum einen fehlerfrei compilierbar sein als
auch einen Eingabe-/Ausgabeteil enthalten!
Viel Erfolg!!!