22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

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.

Im allgemeinen ist es sehr schwierig, die Variante o<strong>der</strong> die Invariante einer Schleife zu finden. Der Beweis,<br />

daß ein bestimmter Ausdruck tatsächlich eine Variante o<strong>der</strong> Invariante <strong>der</strong> Schleife ist, ist dagegen oft sehr<br />

einfach, wenn man den Ausdruck erst einmal gefunden hat.<br />

Sicherlich ist <strong>der</strong>jenige, <strong>der</strong> sich einen Algorithmus ausgedacht hat, am ehesten dazu in <strong>der</strong> Lage, die Invariante<br />

und Variante einer Schleife anzugeben, denn die Schleife soll ja eine bestimmte Idee zur Lösung eines<br />

Problems wie<strong>der</strong>spiegeln. Es wäre daher sinnvoll, diese Idee während <strong>der</strong> Verfeinerung zu fixieren, indem man<br />

Invariante und Variante aufstellt, bevor die Schleife ausprogrammiert wird. Diese Vorgehensweise, bei <strong>der</strong><br />

man sich schon während <strong>der</strong> Implementierung Gedanken über die Korrektheitsgarantie macht, för<strong>der</strong>t eine<br />

fehlerfreie Entwicklung von Programmen und erleichtert den späteren Korrektheitsbeweis. Zudem erspart<br />

es dem Programmierer, die bei “konventioneller Vorgehensweise” unweigerlich auftretenden Fehler mühsam<br />

aufspüren und eliminieren zu müssen.<br />

Die Sprache Eiffel unterstützt eine <strong>der</strong>artig systematische Programmentwicklung, indem sie erlaubt, Variante<br />

und Invariante als Zusicherungen – gekennzeichnet durch Schlüsselworte variant und invariant – mit in das<br />

Programm aufzunehmen und somit die wichtigste Programm- und Beweisidee zu dokumentieren.<br />

Bei unserer Fakultätsberechnung zum Beispiel war die Grundüberlegung, die Variable n schrittweise von unten<br />

an arg anzunähern, bis n=arg ist, also arg-n zu Null wird. Dabei soll nach jedem Schritt die Größe Result<br />

den Wert n! enthalten, zum Schluß also den gesuchten Wert arg!. Formuliert man diese Idee als Variante und<br />

Invariante, so ergibt sich arg-n als Variante und n

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!