Formale Verifikation - Aufgaben

Ganzzahlige Wurzel

 aufwärts

Aufgabe:  (Ganzzahlige Wurzel)

Gegeben sei folgendes Programm X mit ganzzahligen Variablen a, x, y und z:

x=0;
y=1;
z=1;
while (y<=a)
{
    x=x+1;
    z=z+2;
    y=y+z;
}

Das Programm soll die ganzzahlige Quadratwurzel x von a berechnen, d.h. es soll gelten x kleiner gleich Wurzela kleiner gleich x+1.

Beweisen Sie, dass die Nachbedingung

R:   x2kleiner gleicha  und  a < (x+1)2

gilt, falls die Schleife terminiert.

Benutzen Sie als Schleifeninvariante

P:   x2kleiner gleicha  und  y = x2+z  und  z = 2x+1

 

Weiter mit:  up

 

homeH.W. Lang   Fachhochschule Flensburg   lang@fh-flensburg.de   Impressum   ©  
Valid HTML 4.01 Transitional