12.01.2014 Aufrufe

2-up - ETH Zürich

2-up - ETH Zürich

2-up - ETH Zürich

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Korrektheit von f(a,b) = a × b<br />

• Wir wollen zeigen, dass die Funktion<br />

, 1<br />

f(a,b) = <br />

2, /2 , <br />

2, <br />

<br />

, <br />

für alle a, b ∈ G + das Produkt von a und b berechnet.<br />

Wir beschränken also ganz bewusst den Definitionsbereich<br />

der Funktion (keine 0, keine negativen Zahlen,<br />

keine rationalen Zahlen bzw. Gleitpunktzahlen...)<br />

52<br />

Korrektheit des Java-Programms?<br />

• Damit wäre auch gezeigt, dass das Programmstück<br />

static int f(int a, int b){<br />

if (b == 1) return a;<br />

if (b%2 == 0) return f(2*a, b/2);<br />

else return a + f(2*a, (b-1)/2);<br />

}<br />

das erwartet tut.<br />

• Aber…<br />

• Woher wissen wir eigentlich, dass das Programm der oben<br />

definierten Funktion genau entspricht? (→ Semantik)<br />

• Wie ist eigentlich das „sonst“ zu interpretieren? Als Alternative zu<br />

„gerade“ (also: „ungerade“) oder auch zu b=1?<br />

• Müsste nicht zwischen den beiden if-Zeilen ein „else“ stehen?<br />

53<br />

20

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!