Systematische Programmentwicklung Laboraufgaben

Computerlabor   13.10.2025

Bearbeiten Sie die folgenden Aufgaben als Hausaufgaben. Ein Computer­labor findet heute nicht statt.

Aufgabe 8:  (If-Anweisung)

Folgendes Programm­stück ist gegeben:

if a>b:
    h = a
    a = b
    b = h

Legen Sie die Schlussregel für die If-Anweisung zugrunde. Identifizieren Sie die Bedingungen B und ¬B. Die Nach­bedingung soll Qa ≤ b sein.

Beweisen Sie die Prämissen If1 und If2 (von unten nach oben) und ermitteln Sie dabei die schwächste Vorbedingung P für das Programm­stück.

Aufgabe 9:  (Ganzzahlige Division)

Gegeben sei folgendes Programm X mit ganzzahligen Variablen a, b, q und r:

q = 0
r = a
while r>=b:
    q = q+1
    r = r-b

Das Programm soll den Rest r bei ganzzahliger Division von a durch b berechnen.

Beweisen Sie, dass die Nach­bedingung

R:   a = q·b + r  ∧  r ≥ 0  ∧  r < b

gilt, falls die Schleife terminiert (partielle Korrektheit).

Legen Sie die Schlussregel für die While-Schleife zugrunde. Gehen Sie schrittweise vor:

  1. Identifizieren Sie die Bedingungen B und ¬B.
  2. Bringen Sie die Nach­bedingung R in die Form P ∧ ¬B.
  3. Identifizieren Sie auf diese Weise die Schleifen­invariante P.
  4. Führen Sie (von unten nach oben) den Beweis {P ∧ B} S {P} für den Schleifen­körper S.
  5. Beweisen Sie das gesamte Programm. Welches ist die schwächste Vorbedingung Q des Programms?

 

 

[up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Diese Webseiten sind größtenteils während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden