Klausur 11.08.2011 /Aufgabe 6.c/wp

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Klausur 11.08.2011 /Aufgabe 6.c/wp
Hallo Leute
habe ne Frage zur Lsg. dieser Aufgabe! In der letzten Vorlesung wurde folgender Recghenweg vorgeschlagen:
wp(“a=1,k=n-1;p=1;if(n>0){…” p=2^(n-k-1)) und ( k >= 0 )]) //soweit klar
wp(“a=1;k=n-1;p=1;”[ (n>0) und (p=2^(n-k-1)) und ( k >= 0 )] oder [(n <= 0) und (true) ]

Meine Frage: Wie komme ich auf die zweite Zeile?

Ich verstehe nicht wieso die zweite Zeile nicht so lauten muss:
wp(“a=1;k=n-1;p=1;”[ (n>0) und (p=2^(n-k-1)) und ( k >= 0 )] oder [(n <= 0) und (p=2^(n-k-1)) und ( k >= 0 )]

Woher kommt das true?
Kann mir jemand helfen?Ich verstehe es nicht!


naja dass true steht für den else Fall. Falls if nicht zutrifft mach nichts…Man kann des letzte ODER aber auch weglassen.


das versteh ich auch nicht so ganz… weil im Normalfall setze ich doch im elseTeil auch die Invariante dann ein also des ich für den elseFall dann habe was Horst geschrieben hat und setzt doch im elseFall nie einfach true, wenn der Rumpf des elseFalls leer ist oder? siehe Folie 9-109 oder ist das nur der Fall, wenn z.B. die if-Anweisung im Rumpf der while-Schleife steht?)


ARGH!!!


gibt keine IF-SCHLEIFEN !!!


ja sorry if-Anweisung!!! ich werds ausbessern… aber meine Frage steht immer noch :smiley:


Da der else-Fall leer ist, kannst du alles nach dem Oder auch weglassen, tu das einfach und du hast Ruhe :wink: