Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
sorry war ein tippfehler es muss heißen Q: u < y
kannst du mir weiterhelfen? bin schon am verzweifeln, hab noch mehr aufgaben dieser art und wüsste gern ob ich auf dem richtigen weg bin
Hm. Diese Kalkülartige Schreibweise ist für mich eher unübersichtlich, und die wilde Mischung aus ++x und x++ zielt wohl genau darauf ab (wenn jemand in der Realität solchen Code schreiben würde... :autsch: )... Aber wenn ich versuchen sollte, aus der Nachbedingung die WP zu berechnen, ganz unbedarft, pragmatisch, würde ich erstmal versuchen, das auseinanderzupflücken
Code:
x = y++ + 1;
y += ++u − x++ + e;
Die ganzen ++ und += auflösen
Code:
x = y + 1;
y = y + 1
y = y + 1 + u − (x) + e;
u = u + 1
x = y + 1
Einsetzen
Code:
y = y + 1
y = y + 1 + u − (y + 1) + e;
u = u + 1
Einsetzen
Code:
y = y + 1 + 1 + u − (y + 1) + e;
u = u + 1
Ausrechnen
Code:
y = 1 + u + e;
u = u + 1
Bedingung
Code:
// u < y
(u + 1) < (1 + u + e) <=>
0 < e
Aber Achtung: Ich habe KEINE Ahnung, ob das richtig oder sinnvoll ist, geschweige denn wie man das jetzt in die Kalkülform presst... auch die Uhrzeit beachten, die wird morgen sicher als 1A Ausrede herhalten, wenn ich nach dem Kaffee erkenne, was für einen Unfug ich hier geschrieben habe :smoke: Aber um mich zumindest selbst ansatzweise zu überzeugen, hab' ich mal das hier geschrieben
Java:
class WpTest
{
public static void main(String args[])
{
for (int y=-10; y<=10; y++)
{
for (int u=-10; u<=10; u++)
{
for (int e=-10; e<=10; e++)
{
doit(y,u,e);
}
}
}
}
public static void doit(int y, int u, int e)
{
int x = y++ + 1;
y += ++u - x++ + e;
if (u < y) System.out.println("! "+y+" "+u+" "+e);
else System.out.println(" "+y+" "+u+" "+e);
}
}
Und da sieht es so aus, als ob die ganze Zahlen ziemlich wurscht wären, aber die Nachbedingung immer erfüllt ist, wenn e>0 ist...
Mal schauen, was Leute dazu sagen, bei denen die Uni noch nicht ganz so lange her ist ....
Ich finde schon dass das ganz interessant (und auch wichtig) ist. In bezug auf die "nicht-formale" Frage: Wenn die Funktion dies-und-das liefern soll, was muss ich dann oben reinstecken? Das mal formal durchzuexerzieren ist wohl nur eine kleine Übung, und schärft vielleicht das Bewußtsein für die Möglichkeiten. Die reichen dann eben bis hin zu vollkommen automatischer formaler Programmverifikation. Und sowas brauch man auch, weil das in der Form ja kein Mensch (außer Infostudenten im ersten Semester ) per Hand macht. Ob es nicht sinnvoller wäre, dieses ++- und +=-Gekrampfe, was AUCH in der Realität kein Mensch macht, und was nur dem fragwürdigen Zweck dient "diese Übungsaufgabe schwerer zu machen", einfach bleiben zu lassen, und stattdessen mal ein realistischeres Beispiel (speziell mit einer Schleife) als Übung durchzuspielen, sei mal dahingestellt....