Moin Leute,
ich soll für folgende Methode, zu Beginn herausfinden was Sie berechnet, und dann geeignete Vorbdingung, Nachbedinung und Schleifeninvariante finden.
Hier ist die Methode:
Das Problem ist, dass ich mir nicht klar ist, was diese Funktion mathematisch berechnet, grundsätzlich liefert Sie ja für alle Zahlen ein Ergebnis.
Die Vorbedingung P beschreibt die mathematischen bedingungen welche beim Aufruf der Methode erfüllt sein müssen.
Die Schleifeninvariante beschreibt die mathematische Zusammensetzung von (in diesem Falle) s
Die Nachbedingung überprüft das Ergebnis von s.
Ich habe mir nun als Vorbedingung, da er sonst in die Schleife nicht reingeht überlegt,
zu schreiben.
i wird pro Iterationsschritt lediglich einen hochgezählt, n-mal und erhät daher den Wert von n.
Die Nachbedingung sollte daher folgendes enthalten:
Außerdem lässt sich s wie folgt berechnen:
s = (Summe von i=0 bis n für x) + (Summe von i=o bis n für i)
Tut mir leid, hab keinen Matheeditor gefunden.
Grundsätzlich sollte dies schon die Schleifeninvariante sein, bzw. die Nachbedingung R.
Allerdings weiß ich nicht wie ich dies schreiben soll.
Vielleicht gibt es ja jemanden der sich mit sowas gut auskennt und mir helfen kann, freue mich über jede Hilfe.
LG,
Alex
ich soll für folgende Methode, zu Beginn herausfinden was Sie berechnet, und dann geeignete Vorbdingung, Nachbedinung und Schleifeninvariante finden.
Hier ist die Methode:
Java:
public static int unknown(int x, int n){
// Vorbedingung P
int i, s;
i = 0;
s = x;
// Schleifeninvariante Q
while (i<n){
i = i + 1;
s = s + x + i;
// Schleifeninvariante Q
}
// Nachbedingung R
System.out.println("I ist: "+i+" S ist: "+s);
return s;
}
Das Problem ist, dass ich mir nicht klar ist, was diese Funktion mathematisch berechnet, grundsätzlich liefert Sie ja für alle Zahlen ein Ergebnis.
Die Vorbedingung P beschreibt die mathematischen bedingungen welche beim Aufruf der Methode erfüllt sein müssen.
Die Schleifeninvariante beschreibt die mathematische Zusammensetzung von (in diesem Falle) s
Die Nachbedingung überprüft das Ergebnis von s.
Ich habe mir nun als Vorbedingung, da er sonst in die Schleife nicht reingeht überlegt,
Java:
assert n > 0; // Vorbedingung P
i wird pro Iterationsschritt lediglich einen hochgezählt, n-mal und erhät daher den Wert von n.
Die Nachbedingung sollte daher folgendes enthalten:
Java:
assert .... && i == n
Außerdem lässt sich s wie folgt berechnen:
s = (Summe von i=0 bis n für x) + (Summe von i=o bis n für i)
Tut mir leid, hab keinen Matheeditor gefunden.
Grundsätzlich sollte dies schon die Schleifeninvariante sein, bzw. die Nachbedingung R.
Allerdings weiß ich nicht wie ich dies schreiben soll.
Vielleicht gibt es ja jemanden der sich mit sowas gut auskennt und mir helfen kann, freue mich über jede Hilfe.
LG,
Alex
Zuletzt bearbeitet: