• Keine Ergebnisse gefunden

10.1 Größer gemeinsamer Teiler: rekursiv

N/A
N/A
Protected

Academic year: 2022

Aktie "10.1 Größer gemeinsamer Teiler: rekursiv"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 18

10. Übungsblatt

Ausgabe: 21.06.18 Abgabe: 21.06.18

10.1 Größer gemeinsamer Teiler: rekursiv

Der größte gemeinsame Teiler kann auch rekursiv berechnet werden. In C sieht der rekursive Algorithmus so aus:

1 //{0≤a, 0≤b}

2 i n t ggt (i n t a , i n t b ) 3 {

4 i n t r ;

5

6 i f ( a == b ) r e t u r n b ; 7

8 i f ( a <= b ) { 9 r= ggt ( b− a , a ) ;

10 } e l s e {

11 r= ggt ( b , a−b ) ;

12 }

13

14 r e t u r n r ; 15 }

16 //{\result=gcd(a,b)}

Beweisen Sie die Korrektheit der rekursiven Berechnung des größten gemeinsamen Teilers mit dem in der Vorlesung vorgestellten erweiterten Floyd-Hoare-Kalkül.

Bitte beachten Sie, dass gcd diemathematischeFunktion ist, undggtdie oben implementierte C-Funktion. Durch die Verifikation beweisen Sie, dass die beiden äquivalent sind; das ist genau die Spezifikation.

Hinweise:

1. Zur Erinnerung noch einmal vom letzten Übungsblatt die Gleichungen für die mathematische Funktion gcd:

gcd(a,a) =a (1)

0<a, 0<b,a≤b=⇒gcd(a,b) =gcd(b−a,a) (2) 0<a, 0<b,b≤a=⇒gcd(a,b) =gcd(b,a−b) (3)

gcd(a,b) =gcd(b,a) (4)

2. Für das unvermeidliche Weakening kann folgende logische Implikation (dermodus ponens) für beliebige Formelnφ,ψhilfreich sein:

φ∧(φ−→ψ) =⇒ψ (5)

— Seite 1 von 1 —

Referenzen

ÄHNLICHE DOKUMENTE

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 198. Spezifieren Sie ein Prädikat perm ( a, n, b, m ) , welches wahr

Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom 19.06.18: Funktionen und Prozeduren. Serge Autexier, Christoph Lüth Universität Bremen

Partial cor- rectness means that if the programs starts in a state where the precondition P holds, and it terminates, then it does so in a state which satisfies the postcondition

Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe