11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4. Eigenschaften von <strong>Algorithmen</strong><br />

4.3.3. Schleifeninvarianten<br />

Um eine Bedingung über eine Schleife der Form<br />

VOR <br />

while B do ¬ od<br />

NACH <br />

zu überprüfen, müssen wir eine Schleifeninvariante È finden, die auch bei mehrfachen<br />

Schleifendurchläufen jeweils ihre Gültigkeit bewahrt. Im Einzelnen müssen<br />

wir dann folgendes prüfen:<br />

1. ÎÇÊ È.<br />

Die Vorbedingung garantiert die Gültigkeit von È beim ersten Eintritt in die<br />

Schleife.<br />

2. È «È .<br />

Der Schleifenrumpf bewahrt die Schleifenvariante (nur in den Fällen notwendig,<br />

in denen der Rumpf tatsächlich durchlaufen wird).<br />

3. È ÆÀ.<br />

4.3.4. Korrektheit imperativer <strong>Algorithmen</strong> an Beispielen<br />

Beispiel 4.16 Wir betrachten als Beispiel den Algorithmus MULT, der die Multiplikation<br />

nur mittels Addition <strong>und</strong> Subtraktion realisiert.<br />

MULT: var W,X,Y,Z : int ;<br />

input X, Y<br />

Z:=0;<br />

W:=Y;<br />

while W 0 do Z:=Z+X; W:=W-1 od;<br />

output Z.<br />

Der Schleifenrumpf sei wieder mit ¬ bezeichnet.<br />

¯ Vorbedingung: <br />

¯ Nachbedingung: £ <br />

¯ Schleifeninvariante: È £ Ï£<br />

Zu beweisen:<br />

92<br />

1. Ï £ Ï £ £<br />

È gilt vor dem ersten Schleifendurchlauf!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!