WP Kalkül

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.

WP Kalkül
Hi,

ich war der Ansicht das ganze einigermaßen verstanden zu haben, nur sagen meine Korrekturen vom Übungsblatt etwas anderes.
Kann mir vielleicht mal jemand an nem Beispiel zeigen wie ich so ein wp-Kalkül berechne?

Beispielsweise:

wp(’b = 2 - 2*a; b += a + a++; a -= --b + b;’, a < 0 < b)

Wie geh ich da denn nun vor?


Zu allererst: Aus den ganzen „komischen“ zusammengesetzten Zuweisungen schöne einfache machen. Also so etwas wie

a -= --b + b;

umformen zu:

b = b - 1;
a = a - (b + b);

Wenn man alle Anweisungen in dieser schönen Form hat braucht man nurnoch von hinten nach vorne die Anweisung in die Bedingung einsetzen. Also aus
wp(„b = b - 1; a = a - (b + b);“, a < 0 < b) wird durch Ersetzen von „a“ in der Bedingung durch (a-(b+b))
wp(„b = b - 1;“, (a- (b+b)) < 0 < b) wird durch Ersetzen von „b“ in der Bedingung durch (b-1)
(a-(b+b)) < 0 < (b-1)


okay, so hab ichs eigentlich auch gemacht,

aber dann liegt mein Problem darin die komischen Sachen “schön” zu schreiben.

kann mir vielleicht jemand erklären wie man dann von


okay, so hab ichs eigentlich auch gemacht,

aber dann liegt mein Problem darin die komischen Sachen “schön” zu schreiben.

kann mir vielleicht jemand erklären wie man dann von

a -= --b + b;
auf

b = b - 1;
a = a - (b + b);

umformen kann?

ich weiß, dass a-=x das gleiche ist wie a=a-x
ich weiß, dass b-- das gleich ist wie [color=limegreen]b=b+1
[/color]
aber ich würde da dann ehr sowas rauskriegen :

a=a-b=b+1[color=deepskyblue]+b[/color]

Ich habs von den Farben her versucht mal kenntlich zu machen wie mein gedankengang ist. Vielleicht erkennt ja jemand meinen denkfehler :huh:


oh gott jetzt fällt es mir selbst auf :

a=a-b=b+1+b

b = b - 1
a = a - b + b

Aber wo kommt denn die Klammer her bei der Lösung?


a-= b+b <=> a = a - (b+b)

Das Minus vor dem = bedeutet, dass du von a die komplette rechte Seite abziehst, deswegen die Klammer


Assignments innerhalb einer Expression finde ich persönlich extrem hässlich und noch komplizierter als einfach den unären Operator dastehen zu lassen, aber des ist jedem selbst überlassen.


super danke ihr 2.

wischmob ich stimme dir da zu, nur hab ichs nicht gerafft wie man drauf kommt. Weil ich die ganze zeit diese verbindung durch das + gesehen hab und die ned weggekriegt hab.
Danke!!

b += a + a++

→ b= b+a;
a=a+1;

stimmt das soweit?


b += x steht für
b = b + (x)

Also b = b + (a + a++)

Das gleiche gilt für b /= x, b-=x, b *= x, …


Ja, wenn du das zweite a nicht weglässt:
b = b + (a + a);
a = a + 1;


okee danke :slight_smile:


oh man :blush:

ich kriegs nicht hin.

Wenn ich jetz das da hab:

wp(’b = 2 - 2*a; b += a + a++; a -= --b + b;’, a < 0 < b)

wp(“ b=2-2*a; b=b+a+a; a=a+1; a=a-(b+b); b=b-1;”,a<0<b)

wie mach ich denn dann weiter?

(ich hab schon wild eingesetzt, aber irgednwie gibt das keinen Sinn so recht…)


Deine erste Umformung war nur fast richtig

wp(’b = 2 - 2*a; b += a + a++; a -= --b + b;’, a < 0 < b)

Hier steht --b und nicht b–, das bedeutet das b ist schon in der Rechnung erniedrigt ist. Deswegen muss das b = b-1 vorher kommen.


okay danke.

und jetzt setz ich von hinten nach vorne ein?!

Also

wp(“b = 2 - 2*a; b = b + a + a; a = a + 1; b = b - 1; a = a - (b + b);”, a < 0 < b)

wp(“b = 2 - 2*a; b = b + a + a; a = a + 1; b = b - 1;”, a - (b + b) < 0 < b)

wp(“b = 2 - 2*a; b = b + a + a; a = a + 1;”, a-(b-1+b) < 0 < b - 1)

wp(“b = 2 - 2*a; b = b + a + a;”, (a+1)-(b-1+b) < 0 < b - 1)

stimmt das so?


Fast: hier hast du vergessen ein mal mehr das b einzusetzten.

Was auch immer erlaubt ist und oft hilft: vereinfach deine Bedingung wenn es geht, hier z.B 2b anstelle von b (bzw weiter oben) :wink:


jetz bin ich verwirrt.

bin ich blind oder steht das nich genau so bei mir Oo

EDIT: Oder soll ich da noch ein b reinstecken und wenn ja wieso und woher kommt das? Ach langsam versteh ich gar nicht mehr :blush:


Er meint dass du bei dem fett gedruckten b das ersetzen vergessen hast. Da müsste dann …, a-(b-1+b-1) < 0 < b - 1) draus werden.


ach ich muss jeden buchstaben dadurch ersetzen?

danke. Hoffentlich krieg ich das bis zur Klausur noch auf die reihe.

Also immer alles schön ersetzen und vereinfachen und das wars?


Und blos nicht verlesen! Da wird man ganz kirre beim schreiben / lesen :smiley: Aber ja, alles der Reihe nach ersetzten. Was rauskommt müsste dann ungefähr so aussehen (kann gut sein, dass irgendwo noch ein Fehler steckt ;-))

wp("b = 2 - 2*a; b = b + a + a; a = a + 1; b = b - 1; a = a - (b + b);", a < 0 < b)
= wp("b = 2 - 2*a; b = b + a + a; a = a + 1; b = b - 1;", a - 2b < 0 < b)
= wp("b = 2 - 2*a; b = b + a + a; a = a + 1;", a - 2(b-1) < 0 < (b-1))
= wp("b = 2 - 2*a; b = b + a + a;", a + 1 - 2(b-1) < 0 < (b-1))
= wp("b = 2 - 2*a; b = b + a + a;", a + 3 - 2b < 0 < (b-1))
= wp("b = 2 - 2*a;", a + 3 - 2(b + 2a) < 0 < (b + 2a -1))
= wp("b = 2 - 2*a;", -3a + 3 - 2b < 0 < (b + 2a -1))
= (-3a + 3 - 2(2 - 2a) < 0 < (2 - 2a + 2a -1)
= (-3a + 3 - 4 + 4a) < 0 < 1
= a - 1 < 0 < 1
= a < 1