• Keine Ergebnisse gefunden

8. Übungsblatt Ausgabe:

N/A
N/A
Protected

Academic year: 2022

Aktie "8. Übungsblatt Ausgabe:"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

8. Übungsblatt

Ausgabe: 07.07.20 Abgabe: 14.07.20

Dieses Übungsblatt ist ein PDF-Formular. Bitte in einem PDF-Viewer Ihrer Wahl ausfüllen, abspeichern, und an die Veranstalter mailen.

Gruppe: 1 2 3 4 5 6 7 8 9 10 11 12

Name: Matrikelnummer:

Name: Matrikelnummer:

Name: Matrikelnummer:

8.1 Größer gemeinsamer Teiler

Eine Zahla∈Zteilt eine Zahlb∈Z, geschriebena|b, genau dann wenn es einr∈Zgibt so dassr·a=b.

Gegeben zwei Zahlen x,y ∈ Z, dann ist dergrößte gemeinsame Teilervon xundy, geschrieben gcd(x,y), die Zahlz∈Z, so dasszsowohlxals auchyteilt und für jede Zahlu∈Z, diexundyteilt, gilt, dassu≤z.

Für den größten gemeinsamen Teiler gelten folgende Gleichungen:

gcd(a,a) =a (1)

a≤b=⇒gcd(a,b) =gcd(b−a,a) (2)

b≤a=⇒gcd(a,b) =gcd(b,a−b) (3)

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

Folgendes C0-Programm soll den größten gemeinsamen Teiler berechnen:

1 i n t ggt ( i n t a , i n t b ) 2 /∗∗ pre ?

3 p o s t ? 4 ∗/

5 {

6 while ( 1 ) /∗∗ inv ? ∗/ { 7 i f ( a == b ) {

8 r e t u r n a ;

9 }

10 e l s e

11 { }

12 /∗∗ { ? } ∗/ 13 i f ( a <= b ) {

14 b= b− a ;

15 }

16 e l s e {

17 a= a−b ;

18 }

19 }

20 }

— Seite 1 von 2 —

(2)

8. Übungsblatt Korrekte Software: Grundlagen und Methoden, SoSe 2020

(i) Formalisieren Sie die Korrektheit, indem Sie die Vorbedingung und Nachbedingung formulieren:

(ii) Finden Sie eine Invariante:

(iii) In Zeile 12 können Sie gegenfalls eine Zusicherung einfügen, die den Beweis vereinfacht:

(iv) Beweisen Sie die Korrektheit, indem Sie die Verifikationsbedingungen mit der schwächste Vorbedingung berechnen:

(v) Beweisen Sie die Korrektheit, indem Sie die Verifikationsbedingungen mit derstärksten Nachbedingung berechnen:

Hinweise:

1. Die Invariante ist denkbar einfach: der größte gemeinsame Teiler vonaundbbleibt immer gleich.

2. Benutzen Sie gerne das Web-Interface unseres selbstentwickelten Werkzeugs:https://ksgm.informatik.

uni-bremen.de/

— Seite 2 von 2 —

Referenzen

ÄHNLICHE DOKUMENTE

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

Korrekte Software: Grundlagen und Methoden Vorlesung 8 vom 29.05.18: Modellierung und Spezifikation.. Serge Autexier,

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

Korrekte Software: Grundlagen und Methoden Vorlesung 1 vom 06.04.17: Einführung.. Serge Autexier, Christoph Lüth Universität Bremen