Λύσεις Σειράς Ασκήσεων 5

Σχετικά έγγραφα
Σειρά Προβλημάτων 5 Λύσεις

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5

Σειρά Προβλημάτων 4 Λύσεις

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Ανάλυση της Ορθότητας Προγραμμάτων

Ανάλυση της Ορθότητας Προγραμμάτων

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ 2016 Α.Ε.Π.Π. Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ. Θέματα και Απαντήσεις

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Να γράψετε τα αποτελέσματα αυτού του αλγόριθμου για Χ=13, Χ=9 και Χ=22. Και στις 3 περιπτώσεις το αποτέλεσμα του αλγορίθμου είναι 1

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι

ΦΡΟΝΤΙΣΤΗΡΙΑ ΘΕΩΡΙΑ ΚΑΙ ΠΡΑΞΗ ΔΙΑΓΩΝΙΣΜΑ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΘΕΜΑ 1ο Α. Να γράψετε στο τετράδιό σας τον αριθµό κάθε πρότασης και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι λανθασµένη.

Σειρά Προβλημάτων 1 Λύσεις

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

α. Λογικό διάγραμμα είναι η μέθοδος που χρησιμοποιεί απλά σχήματα που υποστηρίζονται με απλές λέξεις για την αναπαράσταση συγκεκριμένων λειτουργιών.

18/ 07/ Σελίδα 1 6

A3. Μονάδες 5 Α4. Μονάδες 10 ΘΕΜΑ B. Β1. writeln Περιεχόμενα Εντολή Αποτελέσματα Παραμέτρων Μονάδες 20 ΘΕΜΑ Γ.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ Λυκείου ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ- Α.ΚΑΤΡΑΚΗ - Π.ΣΙΟΤΡΟΠΟΣ

Επαναληπτικό Διαγώνισμα στη Δομή Ακολουθίας και Δομή Επιλογής

Ασκήσεις Επανάληψης Λύσεις

Τάξη: Γ Λυκείου Κατεύθυνση: Τεχνολογική Μάθημα: Ανάπτυξη Εφαρμογών σε Προγ/κό Περιβάλλον Είδος Εξέτασης: Διαγώνισμα Ημερομηνία Εξέτασης:

ΠΕΚ ΠΕΙΡΑΙΑ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Ονοματεπώνυμο: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Δομή Ακολουθίας και Επιλογής Κεφ: 2.1, 2.3, , 6.3, , 8.1, 8.1.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΠΑΝΤΗΣΕΙΣ ΔΙΑΓΩΝΙΣΜΑ ΙIΙ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Ένα περιοδικό για το ΑΕΠΠ Τεύχος Πανελλαδικών ΙΙ

Εισαγωγικά στοιχεία αλγορίθμων -Δομή Ακολουθίας Δομή Επιλογής ΗΜΕΡΟΜΗΝΙΑ 10/ 07/ 2017 ΟΝΟΜΑΤ/ΜΟ ΒΑΘΜΟΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

A2. Να γράψετε για κάθε περίπτωση τον αριθμό της πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ... ΜΕΧΡΙΣ_ΟΤΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Αν χ >= 0 ΚΑΙ χ <= 9 τότε Εμφάνισε Θετικός Μονοψήφιος Τέλος_αν Αν Χ <= 99 τότε

2. Ένα από τα στάδια αντιμετώπισης ενός προβλήματος είναι η ανάλυση.

ΙΑΓΩΝΙΣΜΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ (ΑΠΟΦΟΙΤΟΙ) Κυριακή

Ασκήσεις Επανάληψης Λύσεις

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΘΕΜΑ 1ο Α. Να γράψετε στο τετράδιό σας τον αριθµό κάθε πρότασης και δίπλα τη λέξη Σωστό, αν είναι σωστή, ή τη λέξη Λάθος, αν είναι λανθασµένη.

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

Σειρά Προβλημάτων 3 Λύσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Α2. Να αναφέρετε ονομαστικά: i) τα αλγοριθμικά κριτήρια ii) τους τρόπους αναπαράστασης αλγορίθμου. (μονάδες 10)

ιαφάνειες παρουσίασης #3

Μεταγλωττιστές Βελτιστοποίηση

Ανάπτυξη Εφαρμογών. (Μονάδες 8) Α2. α. να αναφέρετε ονομαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί ένας αλγόριθμος.

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΓΕ.Λ. ΟΙΚ & ΠΛΗΡ (ΘΕΡΙΝΑ) ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: ΓΙΑΝΝΗΣ ΜΙΧΑΛΕΑΚΟΣ ΘΕΜΑ Α

Μεταγλωττιστές Βελτιστοποίηση

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

7. Βασικά στοιχεία προγραµµατισµού.

Ερωτήσεις Ασκήσεις Επανάληψης για τις Διακοπές των Χριστουγέννων

ΕΚΦΩΝΗΣΕΙΣ. Α3. Δίνεται το παρακάτω τμήμα προγράμματος το οποίο περιέχει έξι αριθμημένα κενά:

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ. ΘΕΜΑ Α Α1. 1. Λάθος 2 Λάθος 3. Σωστό 4. Λάθος 5. Σωστό Α2. ΧΑΡΑΚΤΗΡΕΣ ΑΛΗΘΗΣ ΠΡΑΓΜΑΤΙΚΕΣ ΑΚΕΡΑΙΕΣ 4

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

α=5, β=7, γ=20, δ=αληθής

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Α. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Έστω τµήµα αλγορίθµου µε µεταβλητές A, B, C, D, X και Υ. D 2

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΘΕΜΑ 1 ο. S <-- 0 ιάβασε Υ Όσο α <= Υ επανάλαβε S <-- S +α. Τέλος_επανάληψης

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο )

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΚΑΛΑΜΠΑΚΑΣ ΣΧΟΛ. ΕΤΟΣ

ΑΕΠΠ 2o Επαναληπτικό Διαγώνισμα

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Δομή Ακολουθίας

ΙΑΓΩΝΙΣΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΛΥΚΕΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ ÈÅÌÅËÉÏ

Ανάπτυξη εφαρμογών Σχετικά με την εντολή επανάληψης «Για από μέχρι με_βήμα»

Κεφ 2. Βασικές Έννοιες Αλγορίθμων

Γ ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ττιαογή και επανάληψη

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 12 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Transcript:

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 (α) Ακολουθεί η απόδειξη της προδιαγραφής (0) { A[X] = x A[Y] = y X Y (1) { A[Y] = y A[X] + Α[Υ] A[Y] = x X Y (2) A[X] := A[X] + A[Y]; (3) { A[Y] = y A[X] A[Y] = x X Y (4) { A[X] A[X] + A[Y] = y A[X] A[Y] = x X Y (5) A[Y] := A[X] A[Y]; (6) { A[X] A[Y] = y A[Y] = x X Y (7) A[X] := A[X] A[Y]; (8) { A[X] = y A[Y] = x X Y (9) { A[X] = y A[Y] = x Η συνθήκη X Y είναι απαραίτητο μέρος της προσυνθήκης, γιατί σε περίπτωση που τα Χ και Υ συμπίπτουν, τότε εκτέλεση των τριών αναθέσεων θα έχει ως αποτέλεσμα A[X] = 0 A[Y] = 0 και όχι τη δοθείσα μετασυνθήκη. Για παράδειγμα, παρατηρούμε ότι ο συμπερασμός (6 ) { A[X] A[Y] = y A[Y] = x (7 ) A[X] := A[X] A[Y]; (8 ) { A[X] = y A[Y] = x χωρίς τη συνθήκη X Y είναι λανθασμένος, αφού σε περίπτωση που Χ = Υ, η αντικατάσταση στην γραμμή (6 ) θα έπρεπε να δώσει και στο Α[Υ] την τιμή Α[Χ] Α[Υ]. (β) Ακολουθεί η απόδειξη όπου χρησιμοποιούμε ως αμετάβλητη συνθήκη την A[0] = A[1] = = A[i-1]= a i n και ως μεταβλητή έκφραση την n i.

{1 n {0 n {(A[0] = A[1] = = A[0-1]=a) 0 n i := 0; {(A[0] = A[1] = = A[i-1]=a) i n while (i < n){ {(A[0] = A[1]= = A[i-1]=a) i n i < n 0 n i = E 0 Αμ. Συνθ., Φρουρός, Μετ. Εκφ. {(A[0]= = A[i-1]=a) a = a i+1 n 0 n i 1< E 0 A[i] = a; {(A[0] = A[1] = = A[i] = a) i+1 n 0 n i 1< E 0 i := i+1; {(A[0] = A[1] = = A[i-1]=a) i n 0 n i < E 0 {(A[0] = A[1] = = A[i-1]=a) i n i n {A[0] = A[1] = = A[n-1]=a { i (0 i < n 1 A[i] A[i+1] ) Άσκηση 2 (α) (i) { p X:= E { p[e/x] Το αξίωμα είναι λάθος. Για παράδειγμα η χρήση του θα μας οδηγούσε στο συμπέρασμα ότι { Χ = Ε+1 X:= E { Ε = Ε+1 που είναι προφανώς λανθασμένο. (ii) { p[e/x] X:= E {p Το αξίωμα είναι ορθό: Αν κάποια συνθήκη p ισχύει μετά από την ανάθεση X:= E για τη μεταβλητή Χ τότε η συνθήκη αυτή θα πρέπει να ήταν αληθής και πριν από την ανάθεση για το Ε. (iii) { p X:= E { p X = E Το αξίωμα είναι λάθος. Για παράδειγμα η χρήση του θα μας οδηγούσε στο συμπέρασμα ότι { Χ = Ε+1 X:= E { Χ=Ε+1 Χ=Ε που είναι προφανώς λανθασμένο. (iv) { p X = E X:= E { p Το αξίωμα είναι ορθό. Προφανώς αν η εκτέλεση της ανάθεσης ξεκινήσει από μια κατάσταση όπου p και X = E, η ανάθεση δεν θα αλλάξει την κατάσταση του προγράμματος (το Χ είχε την τιμή Ε από την αρχή) επομένως η συνθήκη p θα συνεχίσει να ικανοποιείται.

(β) H εκφώνηση της άσκηση περιείχε τυπογραφικό λάθος. Η σωστή εκφώνηση είναι η εξής: Για οποιαδήποτε μεταβλητή Χ, ας γράψουμε Χ++ για την έκφραση η οποία υπολογίζεται ως την τιμή Χ+1 καθώς αυξάνει κατά 1 τη τιμή της μεταβλητής Χ. Για παράδειγμα, αν η μεταβλητή Χ έχει την τιμή 3 εκτέλεση της εντολής Υ := Χ++ έχει ως αποτέλεσμα τόσο το Υ όσο και το Χ να πάρουν την τιμή 4. Να εξηγήσετε γιατί εισαγωγή του πιο πάνω τύπου εκφράσεων στην γλώσσα while θα έχει ως αποτέλεσμα να χάσει την εγκυρότητά του το αξίωμα της ανάθεσης (διαφάνεια 9-13). Η εισαγωγή της έκφρασης αυτής στη γλώσσα έχει σαν αποτέλεσμα να χάσει την εγκυρότητά του το αξίωμα της ανάθεσης γιατί σε μία ανάθεση είναι δυνατόν να αλλάξουν ταυτόχρονα οι τιμές δύο και όχι μίας μεταβλητής, κάτι που δεν λαμβάνει υπόψη του ο κανόνας. Για παράδειγμα, ο υπάρχων κανόνας θα μας δώσει προδιαγραφές όπως την { Χ + 1 = Χ Υ:= Χ++ { Υ = Χ που προφανώς είναι λανθασμένη. (γ) O τελεστής X += E έχει οριστεί ως Χ := Χ+Ε. Κατάλληλο αξίωμα για την απόδειξη της ορθότητας προδιαγραφών που αφορούν τον τελεστή αυτό είναι το: {p[χ+e/x] X += E {p Το αξίωμα αυτό προκύπτει από το αξίωμα του τελεστή της ανάθεσης και τον ορισμό του τελεστή υπό μελέτη. (δ) Ακολουθεί αξίωμα για την εντολή ταυτόχρονης ανάθεσης: {p[e 1, E 2, E n / Χ 1, Χ 2,, Χ n ] Χ 1, Χ 2,, Χ n := E 1, E 2, E n {p Παρατηρούμε ότι ενώ η ασθενέστερη προσυνθήκη της ταυτόχρονης ανάθεσης Χ 1, Χ 2,, Χ n := E 1, E 2, E n είναι η p[e 1, E 2, E n / Χ 1, Χ 2,, Χ n ], η ασθενέστερη προσυνθήκη της ακολουθίας αναθέσεων Χ 1 := E 1 ; Χ 2 := E 2 ; ; Χ n := E n είναι η ( ((p[e n / Χ n ])[ E n-1 / Χ n-1 ]) )[ E 1 / Χ 1 ] Έτσι, για παράδειγμα, ισχύει ότι {3=3, Χ+1=5 Χ,Υ:=3, Χ+1 {X=3, Y=5 που μας δίνει ως ασθενέστερη προσυνθήκη την Χ=4 ενώ {Y+1=3, Υ+2 = 5 Χ:= Y+1; {X=3, Χ+1=5 Υ:=Χ+1 {X=3, Y=5 που μας δίνει ως ασθενέστερη προσυνθήκη την Y=2 Υ = 3 false.

Άσκηση 3 (α) H μεταβλητή a περιέχει την αρχική τιμή του πίνακα Α. (β) Ακολουθεί η απόδειξη όπου χρησιμοποιείται ως αμετάβλητη συνθήκη η η = k ((0 k < i) (A[k] = a[n k] A[n k] = a[k]) k ((i k n - i) A[k] = a[k]) {0 n i (i < n) A[i] = a[i]) { i (i < n) A[i] = a[i]) { k ((0 k < 0) (A[k] = a[n k] A[n k] = a[k]) k ((0 k n - 0) A[k] = a[k]) 0 + n = n i := 0; k ((i k n - i) A[k] = a[k]) i + n = n j := n; k ((i k n - i) A[k] = a[k]) i + j = n while (i < j) { k ((i k n - i) A[k] = a[k]) i + j = n i < j Φρουρός και Αμ. Συν. A[j] = a[n-i] A[i] = a[i] k ((i + 1 k n i 1) A[k] = a[k]) i + 1 + j 1 = n temp := A[i]; A[j] = a[n-i] temp = a[i] k ((i + 1 k n i 1) A[k] = a[k]) i + 1 + j 1 = n A[i] = A[j]; A[i] = a[n i] temp = a[i] k ((i + 1 k n i 1) A[k] = a[k]) i + 1 + j 1 = n A[j] = temp; { k ((0 k < i + 1) (A[k] = a[n k] A[n k] = a[k]) k ((i + 1 k n i 1) A[k] = a[k]) i+1+j 1= n i := i+1; k ((i k n - i) A[k] = a[k]) i + j 1 = n j := j-1; k ((i k n - i) A[k] = a[k]) i + j = n k ((i k n - i) A[k] = a[k]) i + j = n i j { k ( (0 k < n) A[k] = a[n k] ) { i ( (0 i < n) A[i] = a[n i] )

(γ) Μπορούμε να δείξουμε ότι το πρόγραμμα τερματίζει πάντοτε χρησιμοποιώντας ως μεταβλητή έκφραση την j δεδομένου ότι 0 n το οποίο υποθέτουμε ότι είναι αληθές ως μέρος της προσυνθήκης της προδιαγραφής. Άσκηση 4 (α) Ακολουθεί η απόδειξη μερικής ορθότητας της προδιαγραφής. Χρησιμοποιούμε ως αμετάβλητη συνθήκη την η = r p e = x n e 0 {x n = x n n 0 r := 1; {r x n = x n n 0 p := x; {r p n = x n n 0 e := n; {r p e = x n e 0 while e > 0 { {r p e = x n e 0 e > 0 {[e mod 2 0 r p 2 e div2+1 = x n e div 2 0 ] [e mod 2 = 0 r p 2 e div2 = x n e div 2 0] if (e mod 2) <> 0 {r p p 2 e div2 = x n e div 2 0 then r := r * p; {r p 2 e div2 = x n e div 2 0 {r p 2 e div2 = x n e div 2 0 p := p * p; {r p e div2 = x n e div 2 0 e := e div 2; {r p e = x n e 0 {r p e = x n e 0 e 0 {r = x n Αμ. Συν. και Φρουρός Προσυνθήκη if Κανόνας if (β) Ακολουθεί η απόδειξη ολικής ορθότητας της προδιαγραφής. Ως μεταβλητή έκφραση χρησιμοποιείται η e. {x n = x n n 0 r := 1; {r x n = x n n 0

p := x; {r p n = x n n 0 e := n; {r p e = x n e 0 while e > 0 { {r p e = x n e 0 0 e = Ε 0 Αμ. Συν., Μετ. Εκφρ. και Φρουρός {[e mod 2 0 r p 2 e div2+1 = x n 0 e div 2 < Ε 0 ] [e mod 2 = 0 r p 2 e div2 = x n 0 e div 2 < Ε 0 ] if (e mod 2) <> 0 {r p p 2 e div2 = x n 0 e div 2 < Ε 0 Προσυνθήκη if then r := r * p; {r p 2 e div2 = x n e div 2 0 {r p 2 e div2 = x n 0 e div 2 < Ε 0 Κανόνας if p := p * p; {r p e div2 = x n 0 e div 2 < Ε 0 e := e div 2; {r p e = x n 0 e < Ε 0 {r p e = x n e 0 e 0 {r = x n