Hallo liebe Leute,
leider habe ich Probleme meine Scheinaufgabe zu erledigen. Was ist und wie berechnet man eine Schleifeninvariante? Wozu überhaupt und wie gehe ich vor?? Gibts da irgendwie ein Schema welches ich anwenden kann um auf die Schleifeninvariante zu kommen? Ich steig da nicht durch :-(
Aufgabe 1
Zeigen Sie mit Hilfe einer geeignet gewahlten Schleifeninvariante, dass die
Methode quadrat(n) fur Parameter n >= 0 den Wert n*n berechnet:
public static int quadrat(int n) {
int q = 0;
int i = 1;
while (i <= n) {
q = q + 2 * i - 1 ;
i++;
}
return q;
}
a) Programmieren Sie eine Methode
public static double max(double[] array)
die das Maximum in einem Array ermittelt.
b) Zeigen Sie, dass Ihr Programm total korrekt ist.
c) Zeigen Sie, dass Ihr Programm terminiert.
d) Von welcher Zeitkomplexitat ist Ihr Programm (worst case, best case und
average)?
Die Methode hab ich fertig, nur wie beweise ich dass sie total korrekt ist und terminiert?
Hoffe auf schnelle Hilfe...
leider habe ich Probleme meine Scheinaufgabe zu erledigen. Was ist und wie berechnet man eine Schleifeninvariante? Wozu überhaupt und wie gehe ich vor?? Gibts da irgendwie ein Schema welches ich anwenden kann um auf die Schleifeninvariante zu kommen? Ich steig da nicht durch :-(
Aufgabe 1
Zeigen Sie mit Hilfe einer geeignet gewahlten Schleifeninvariante, dass die
Methode quadrat(n) fur Parameter n >= 0 den Wert n*n berechnet:
public static int quadrat(int n) {
int q = 0;
int i = 1;
while (i <= n) {
q = q + 2 * i - 1 ;
i++;
}
return q;
}
a) Programmieren Sie eine Methode
public static double max(double[] array)
die das Maximum in einem Array ermittelt.
b) Zeigen Sie, dass Ihr Programm total korrekt ist.
c) Zeigen Sie, dass Ihr Programm terminiert.
d) Von welcher Zeitkomplexitat ist Ihr Programm (worst case, best case und
average)?
Die Methode hab ich fertig, nur wie beweise ich dass sie total korrekt ist und terminiert?
Hoffe auf schnelle Hilfe...