Wiederholung mit Anfangsbedingung

Die Wiederholung mit Endbedingung hat eine kleine Schwäche: Die Anweisungen werden mindestens einmal durchgeführt, ehe die Bedingung geprüft wird. Es gibt aber auch Probleme, bei denen die Bedingung schon am Anfang erfüllt sein kann und die Anweisungen dann gar nicht ausgeführt werden sollen.

Dafür benutzt man die Wiederholung mit Anfangsbedingung:

Aufgabe:

Ein Programm soll Arabische Zahlen in Römische Zahlen übersetzen. Die römischen Zahlzeichen sind 

M D C L X V I
1000  500   100    50     10      5       1   

Grundidee:
Nach der Eingabe der arabischen Zahl durch den Benutzer wird zunächst geprüft, ob die Zahl über 1000 liegt. Ist dies der Fall, wird ein M ausgegeben und die Zahl um 1000 reduziert. Dies wird so lange wiederholt, bis die Zahl kleiner als 1000 ist. Entsprechend geht man später bei 100, 10 und I vor.
Falls die aktuelle Zahl nun größer oder gleich 900 ist, schreibt man CM (entsprechend: 400, 90, 40, 9,4). Falls die Zahl größer oder gleich 500 ist, schreibt man D (entsprechend: 50, 5)


Musterlösung 

Weitere Aufgabe
Schreibe ein Oberon-2-Programm, das so lange wiederholt wird, bis der Benutzer ein ‚e' oder ‚E' (für Ende) eingibt. Verwende dazu die Wiederholung mit Anfangsbedingung. 
Musterlösung
Eine praktische Anwendung: Erweitere das Programm anschließend so, dass bei jedem Durchlauf eine Arabische Zahl in eine Römische Zahl umgewandelt wird. Der Benutzer muss das Römer-Programm also nicht jedes mal neu starten.  (Auch andere alte Programme kannst du auf diese Weise verbessern!)

Zurück zur Übersicht der Arten der Wiederholung