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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες Απόδειξης Μερικής Ορθότητας Άννα Φιλίππου,

2 Ανάλυση της ορθότητας προγραμμάτων Αφορά στην απόδειξη ότι ένα πρόγραμμα ικανοποιεί τις προδιαγραφές του. Γιατί όχι μοντελοέλεγχος; Ο μοντελοέλεγχος είναι εφαρμόσιμος σε συστήματα με πολύπλοκη ροή (συντρέχουσες διεργασίες) και στην απουσία σύνθετης επεξεργασίας δεδομένων. Υποθέτει την ύπαρξη μοντέλων με πεπερασμένο αριθμό καταστάσεων. Τα σειριακά προγράμματα (συνήθως) εκτελούν σύνθετη επεξεργασία δεδομένων και έχουν απλή ροή (σειριακή) και μη-πεπερασμένο αριθμό καταστάσεων. Στην ενότητα αυτή θα μελετήσουμε την τεχνική των Floyd-Hoare για απόδειξη της ορθότητας τέτοιων προγραμμάτων. 9-2

3 Η Τεχνική Floyd-Hoare Βασίζεται στην κατασκευή αποδείξεων Δεν εκτελείται εξαντλητικός έλεγχος κάθε κατάστασης του συστήματος (μη πεπερασμένος αριθμός καταστάσεων!). Η απόδειξη κατασκευάζεται με τη χρήση κανόνων (όπως και στον Προτασιακό Λογισμό). Είναι ημι-αυτοματοποιημένη: Δεν υπάρχει αλγόριθμος για την τεχνική (όπως στον Μοντελοέλεγχο ή στη Μέθοδο Επίλυσης). Τα βήματα μπορούν να ελεγχθούν από μηχανή και κάποια μπορούν να εκτελεστούν αυτόματα, άλλα όμως απαιτούν ανθρώπινη συμμετοχή. Είναι προσανατολισμένη σε στόχους: Εντοπίζουμε μέρη της προδιαγραφής των οποίων ελέγχουμε την ορθότητα. Είναι εφαρμόσιμη σε συγκεκριμένο πεδίο εφαρμογών: Σειριακά προγράμματα τα οποία μετατρέπουν τα δεδομένα εισόδου τους σε δεδομένα εξόδου. 9-3

4 Κίνητρα Παρά την όποια δυσκολία στη χρήση τους, μια μέθοδος ανάλυσης της ορθότητας προγραμμάτων: Εξαναγκάζει τη σαφή διατύπωση των προδιαγραφών του προγράμματος. Συντείνει στην αποδοτικότερη ανάπτυξη και συντήρηση λογισμικού (χρόνος/κόστος). Αντιμετωπίζει τα λάθη από τη φάση της σχεδίασης. Προσφέρει τη δυνατότητα για ασφαλή επαναχρησιμοποίηση κώδικα. Παρέχει εγγυήσεις οι οποίες θεωρούνται απαραίτητες κατά τη δημιουργία συστημάτων κρίσιμης ασφάλειας. 9-4

5 Η Γλώσσα WHILE H γλώσσας που θα μελετήσουμε έχει την πιο κάτω σύνταξη. Εντολές: C ::= x:=e C;C if B {C} else {C} while B {C} Αριθμητικές Εκφράσεις: Ε ::= n x E (E+E) (E E) (E*E) όπου το n παίρνει τιμές από τους ακέραιους και το x είναι το όνομα οποιασδήποτε μεταβλητής. Λογικές Εκφράσεις: Β ::= true false (!B) (B&B) (B B) (E<E) 9-5

6 Παράδειγμα Το πιο κάτω πρόγραμμα υπολογίζει τον n-ιοστό παραγοντικό αριθμό. y = 1; z = 0; while (z!= n){ z := z + 1; y := y * z; } (z < n n < z) 9-6

7 Τριάδες Hoare Συμβολισμός: {φ} C {ψ} όπου C το πρόγραμμα υπό μελέτη και φ, ψ συνθήκες που σχετίζονται με τις μεταβλητές που χρησιμοποιεί το C. Ερμηνεία: Κάθε φορά που το πρόγραμμα C εκτελείται σε μια κατάσταση που ικανοποιεί τη συνθήκη φ τότε θα τερματίσει σε μια κατάσταση που ικανοποιεί τη συνθήκη ψ. 9-7

8 Συνθήκες Αποτελούν εκφράσεις μια απλής λογικής γλώσσας: Περιέχουν μεταβλητές του προγράμματος, σταθερές, λογικούς τελεστές, κλπ. Όταν προηγούνται μιας εντολής περιγράφουν τους περιορισμούς που πρέπει να ισχύουν κατά την εκτέλεση της εντολής. προσυνθήκες preconditions Όταν έπονται μιας εντολής, περιγράφουν τους περιορισμούς που πρέπει να ισχύουν μετά από την εκτέλεση της εντολής. μετασυνθήκες postconditions Εκφράσεις της μορφής {φ} C {ψ}(τριάδες Hoare) ονομάζονται προδιαγραφές. 9-8

9 Παράδειγμα (1) Οι προδιαγραφές είναι αληθείς. Η προδιαγραφή είναι ψευδής. 9-9

10 Παράδειγμα (2) Η πιο κάτω προδιαγραφή είναι αληθής. Οι μεταβλητές x και y που εμφανίζονται στην προ-συνθήκη και όχι στο πρόγραμμα ονομάζονται βοηθητικές μεταβλητές. Σκοπός τους είναι να δώσουν αρχικές τιμές στις μεταβλητές. 9-10

11 Μερική και Ολική Ορθότητα Μερική Ορθότητα: Η προδιαγραφή {φ} C {ψ} είναι αληθής υπό την έννοια της μερικής ορθότητας αν κάθε φορά που το C ξεκινά σε μια κατάσταση που ικανοποιεί την προσυνθήκη φ και τερματίζει τότε η κατάσταση τερματισμού ικανοποιεί τη μετασυνθήκη ψ. Γράφουμε = par {φ} C {ψ} To πρόγραμμα while true {x := 0} ικανοποιεί οποιαδήποτε προδιαγραφή εφόσον δεν τερματίζει. Ολική Ορθότητα: Η προδιαγραφή {φ} C {ψ} είναι αληθής υπό την έννοια της ολικής ορθότητας αν κάθε φορά που το C ξεκινά σε μια κατάσταση που ικανοποιεί την προσυνθήκη φ τότε τερματίζει και η κατάσταση τερματισμού ικανοποιεί τη μετασυνθήκη ψ. Γράφουμε = tot {φ} C {ψ} 9-11

12 Τεχνική Floyd-Hoare Δημιουργία τυπικών αποδείξεων για προδιαγραφές προγραμμάτων. Χρησιμοποιεί Αξιώματα και κανόνες εξαγωγής συμπερασμάτων που παρέχει η τεχνική Θεωρήματα κλασσικών μαθηματικών. 9-12

13 Αξίωμα Εντολής Ανάθεσης { φ[ E / x]} x : E { φ} φ[e/x] είναι το αποτέλεσμα της αντικατάστασης όλων των εμφανίσεων της μεταβλητής x από την έκφραση Ε στην φ. Παράδειγμα: {y = 2} x:= y {x = 2} {x+1 = n+1} x:= x+1 {x = n+1} {4 = 2} x:= y {x = 4} 9-13

14 Συζήτηση Αξιώματος Προσοχή: Ο κανόνα δεν θα μπορούσε να είναι {φ} x:= E {φ[e/x]} αφού αυτό θα έδινε προδιαγραφές όπως: {x=6} x:= 5 {5=6}. Το Αξίωμα της Εντολής Ανάθεσης εφαρμόζεται πιο εύκολα στην αντίστροφη πορεία μιας απόδειξης, δηλαδή, γνωρίζοντας την μετασυνθήκη μιας εντολής, παράγουμε την προσυνθήκη της εντολής. Εφόσον η αντίστροφη εφαρμογή του κανόνα ισοδυναμεί με την εφαρμογή μιας αντικατάστασης, υλοποίηση του κανόνα για αυτοματοποίηση μιας απόδειξης είναι ξεκάθαρη. 9-14

15 Κανόνας Ενδυνάμωσης της Προσυνθήκης φ η { η} C { ψ} { φ} C { ψ} Εξήγηση Κανόνα: Αν το φ συνεπάγεται το η και η προδιαγραφή {η} C {ψ} είναι αληθής τότε και η προδιαγραφή {φ} C {ψ} είναι αληθής. 9-15

16 Παράδειγμα Έστω {X+1 = n+1} X:= X+1 {X=n+1} Αφού το (Χ+1 = n+1) συνεπάγεται ότι (X = n) βάσει του κανόνα της Ενδυνάμωσης της Προσυνθήκης συμπεραίνουμε ότι {X = n} X:= X+1 {X=n+1} 9-16

17 Κανόνας Αποδυνάμωσης της Μετασυνθήκης η ψ { φ} C { η} { φ} C { ψ} Εξήγηση Κανόνα: Αν το η συνεπάγεται το ψ και η προδιαγραφή {φ} C {η} είναι αληθής τότε και η προδιαγραφή {φ} C {ψ} είναι αληθής. Οι Κανόνες Ενδυνάμωσης και Αποδυνάμωσης ονομάζονται και Κανόνες Συνεπαγωγής. 9-17

18 Παράδειγμα Να δείξετε ότι {y=5} x:= y+1 {x>0} Απόδειξη * : Κατ αρχή, παρατηρούμε ότι από το Αξίωμα Εντολής Ανάθεσης η προδιαγραφή {y+1=6} x:= y+1 {x=6} είναι αληθής. Αφού (y = 5) (y+1 = 6) από τον Κανόνα Ενδυνάμωσης Προσυνθήκης προκύπτει ότι. {y=5} x:= y+1 {x=6} Αφού (x=6) (x > 0) με τη χρήση του Κανόνα Αποδυνάμωσης Μετασυνθήκης {y=5} x:= y+1 {x>0} και η απόδειξη ολοκληρώθηκε. * Σημείωση: Υπάρχουν και άλλοι τρόποι για να γίνει η απόδειξη. 9-18

19 Κανόνας Ακολουθίας Εντολών { φ} C 1 { η} { φ} C 1 ; C { η} C 2 2 { ψ} { ψ} Εξήγηση: Για να δείξουμε την ορθότητα της προδιαγραφής {φ} C 1 ;C 2 {ψ} χρειάζεται να εντοπίσουμε ενδιάμεση συνθήκη Q για την οποία να ισχύει ότι {φ} C 1 {η} και {η} C 2 {ψ}. 9-19

20 Παράδειγμα Αν γνωρίζουμε ότι από τον Κανόνα Ακολουθίας Εντολών και τις δύο πρώτες προτάσεις μπορούμε να συμπεράνουμε ότι και στη συνέχεια ότι 9-20

21 Κανόνας Εντολής if { φ B} C { φ} if 1 { ψ} B then C { B} C 1 else C 2 2 { ψ} { ψ} Εξήγηση: Για να δείξουμε την ορθότητα της προδιαγραφής {φ} if B then C 1 else C 2 {ψ} χρειάζεται να δείξουμε ότι από τη προσυνθήκη φ προκύπτει η μετασυνθήκη ψ ανεξάρτητα από τον τρόπο με τον οποίο θα εκτελεστεί η εντολή if, δηλαδή, ανεξάρτητα από την λογική τιμή που θα λάβει η συνθήκη Β της εντολής. Έτσι αποδεικνύομε δύο επιμέρους προδιαγραφές που αντιστοιχούν στις δύο περιπτώσεις Β και Β. 9-21

22 Παράδειγμα Με χρήση του κανόνα μπορούμε να δείξουμε ότι η προδιαγραφή είναι αληθής. Συγκεκριμένα δείχνουμε ότι: {y>1 x>0} y:=y-1 {y>0} {y>1 x>0} y:=y+1 {y>0} H ορθότητα των δύο προτάσεων προκύπτει μέσω του Αξιώματος της Ανάθεσης και του Κανόνα Ενδυνάμωσης Προσυνθήκης. 9-22

23 Κανόνας Εντολής while { ψ} { ψ while B} C { ψ} B C { ψ B} O κανόνας βασίζεται στη συνθήκη ψ η οποία ονομάζεται αμετάβλητη συνθήκη (invariant) διότι εξακολουθεί να ισχύει μετά από την εφαρμογή του κανόνα. Εξήγηση: Ο κανόνας λέει ότι αν η ψ είναι μια αμετάβλητη συνθήκη του σώματος μιας εντολής while (όταν ισχύει και η συνθήκη Β) τότε η ψ είναι μια αμετάβλητη συνθήκη ολόκληρης της εντολής while. 9-23

24 Παράδειγμα Να αποδείξετε ότι: {true} R:= X; Q:= 0; while (Y<= R){ R:= R-Y; Q:= Q+1; } {R<Y X= R + Y*Q} Ο κώδικας αυτός υπολογίζει το πηλίκο (Q) και το υπόλοιπο (R) της διαίρεση του Χ από το Υ 9-24

25 Απόδειξη Χρησιμοποιώντας τον Κανόνα της Ακολουθίας, θα δείξουμε ότι: 1. {true} R:= X;Q:= 0; {X= R + Y*Q} και στη συνέχεια ότι 2. {X= R + Y*Q} while (Y<= R){R:= R-Y;Q:= Q+1;} {R<Y X= R + Y*Q} Το πρώτο σκέλος αποδεικνύεται εύκολα μέσω δύο εφαρμογών του Κανόνα της Ανάθεσης, του Κανόνα της Ακολουθίας και του Κανόνα Ενδυνάμωσης της Προσυνθήκης. Για το δεύτερο σκέλος έχουμε να δείξουμε ότι: Με βάση τον Κανόνα της Ανάθεσης: Και επίσης {X= R + Y*Q} R:= R-Y;Q:= Q+1; {X= R + Y*Q} {X= R + Y*(Q+1)} Q:= Q+1; {X= R + Y*Q} {X= R-Y + Y*(Q+1)} R:= R-Y; {X= R + Y*(Q+1)}. 9-25

26 Απόδειξη (συν.) και επομένως ότι {X= R + Y*Q} R:= R-Y; {X= R + Y*(Q+1)} Από τον Κανόνα της Ακολουθίας προκύπτει το ζητούμενο {X= R + Y*Q} R:= R-Y;Q:= Q+1; {X= R + Y*Q} Με ενδυνάμωση της προσυνθήκης έχουμε ότι: {X= R + Y*Q Υ <= R} R:= R-Y;Q:= Q+1; {X= R + Y*Q} Εφαρμόζουμε τον Κανόνα του while παίρνοντας ότι {X= R + Y*Q} while (Y<= R){ R:= R-Y; Q:= Q+1; } {R<Y X= R + Y*Q} Και μέσω μιας ακόμα εφαρμογής του Κανόνα της Ακολουθίας το ζητούμενο έπεται. 9-26

27 Πίνακες Απόδειξης Αποδείξεις της ορθότητας μιας προδιαγραφής Hoare μπορούν (για ευκολία) να παρουσιαστούν ως πίνακες στους οποίους παρεμβάλουμε προτάσεις ανάμεσα στις γραμμές (εντολές) του προγράμματος. Έτσι, η απόδειξη της προδιαγραφής ενός πρόγραμμα C 1 ; C 2 ; ; C n έχει τη μορφή {φ 0 } C 1 ; {φ 1 } Αιτιολόγηση (όνομα κανόνα) C 2 ; {φ n-1 } Αιτιολόγηση C n ; {φ n } Αιτιολόγηση Μια τέτοια απόδειξη ονομάζεται απόδειξη ταμπλό (tableaux proof). 9-27

28 Πίνακες Απόδειξης (2) Πως προκύπτουν τα φ i στον πίνακα; Δουλεύουμε «προς τα πίσω», ξεκινώντας από τη μετασυνθήκη και προσπαθώντας να εντοπίσουμε κατάλληλες ενδιάμεσες συνθήκες χρησιμοποιώντας τους κανόνες. Η διαδικασία υπολογισμού κατάλληλου φ i στο βήμα {φ i } C i ; {φ i+1 } ονομάζεται υπολογισμός της ασθενέστερης προσυνθήκης (weakest precondition): ψάχνουμε να βρούμε τη λογικά πιο ασθενή (χαλαρή) ιδιότητα για την οποία ισχύει η προδιαγραφή. (Η συνθήκη φ είναι ασθενέστερη από τη συνθήκη ψ αν φ ψ.) 9-28

29 Αποδείξεις ταμπλό Ανάθεση και Συνεπαγωγή Αναθέσεις: Ποια είναι η ασθενέστερη προσυνθήκη για μια εντολή ανάθεσης x:= E με μετασυνθήκη ψ; Η ψ[ε/x]. Συνεπώς το αξίωμα ανάθεσης σε απόδειξη «ταμπλό» έχει ως εξής: {ψ[ε/x] } x := E {ψ} Κανόνας Ανάθεσης Συνεπαγωγή: Μπορούμε να γράψουμε μία πρόταση φ ακριβώς κάτω από μία άλλη πρόταση ψ - χωρίς να παρεμβάλλεται κώδικας - αν η φ συνεπάγεται από την ψ 9-29

30 Παράδειγμα 1 Να δείξετε ότι = par {true} z := x; z := z + y; u := z; {u = x+y} Απόδειξη: {true} {x+y= x+y} Ενδυνάμωση της Προσυνθήκης z := x; {z+y= x+y} Κανόνας Ανάθεσης z := z + y; {z= x+y} Κανόνας Ανάθεσης u = z; {u := x+y} Κανόνας Ανάθεσης 9-30

31 Αποδείξεις ταμπλό Εντολή if Ποια είναι η ασθενέστερη προσυνθήκη φ για μια εντολή if B then C 1 else C 2 με μετασυνθήκη ψ; Υπολογίζουμε τη φ ως εξής: 1. Σπρώχνουμε τη ψ προς τα πάνω μέσω της C 1 (που μπορεί να είναι μια ακολουθία εντολών). Έστω ότι το αποτέλεσμα είναι ο τύπος φ Παρόμοια, σπρώχνουμε τη ψ προς τα πάνω μέσω της C 2. Έστω ότι το αποτέλεσμα είναι ο τύπος φ Θέτουμε ως φ την πρόταση (Β φ 1 ) ( Β φ 2 ). 9-31

32 Να δείξετε ότι = par {true} Succ; {y = x+1} όπου Succ το πρόγραμμα: Παράδειγμα a := x+1; if (a-1 == 0) y := 1; else y := a; 9-32

33 Παράδειγμα (συν.) Απόδειξη: {true} {x+1-1 = 0 1 = x+1) ( (x+1-1 = 0 x+1 = x+1} Ενδυνάμωση Προσυνθήκης a:= x+1; {a-1 = 0 1 = x+1) ( (a-1 = 0 a = x+1} Κανόνας Ανάθεσης if (a-1 == 0) {1= x+1} Κανόνας Εντολής if y := 1; {y = x+1} Κανόνας Ανάθεσης else {a = x+1} Κανόνας Εντολής if y:= a; {y = x+1} Κανόνας Ανάθεσης {y = x+1} Κανόνας Εντολής if 9-33

34 Αποδείξεις ταμπλό Εντολή while (1) Εντολή while: { } { B} C { } while B C { B} Σύμφωνα με τον κανόνα, η αμετάβλητη συνθήκη η επιλέγεται έτσι ώστε η ορθότητα της να διατηρείται από τον βρόχο C του while. Αυτό σημαίνει ότι αν η B είναι αληθής και η η είναι αληθής πριν από την εκτέλεση της C και αν το σώμα εντολών C τερματίζει, τότε η η είναι επίσης αληθής στο τέλος της εκτέλεσης. Η ερμηνεία αυτή είναι συμβατή με την έννοια της μερικής ορθότητας. 9-34

35 Αποδείξεις ταμπλό Εντολή while (2) Ο κανόνας μας επιτρέπει να αποδεικνύουμε προδιαγραφές των οποίων η μετασυνθήκη είναι η σύζευξη της προσυνθήκης με την άρνηση του Β, δηλαδή, προδιαγραφές της μορφής: {η} while B C { η Β} Πως μπορούμε να χειριστούμε προδιαγραφές της μορφής {φ} while B C {ψ} όπου οι ιδιότητες φ και ψ δε σχετίζονται μεταξύ τους; 9-35

36 Αποδείξεις ταμπλό Εντολή while (3) Η απάντηση είναι ότι πρέπει να εντοπίσουμε κατάλληλη αμετάβλητη συνθήκη η τέτοια ώστε φ η η Β ψ {η} while B C { η Β} Σε τέτοια περίπτωση, οι κανόνες συνεπαγωγής μας οδηγούν στο συμπέρασμα ότι {φ} while B C {ψ} Το πιο κρίσιμο βήμα της απόδειξης είναι η επιλογή της αμετάβλητης συνθήκης (invariant). 9-36

37 Αποδείξεις ταμπλό Εντολή while (4) Ορισμός: Αμετάβλητη συνθήκη σε μία εντολή while B C είναι μια πρόταση η τέτοια ώστε par { η Β } C { η } Μία χρήσιμη αμετάβλητη συνθήκη συνήθως εκφράζει μία σχέση μεταξύ των μεταβλητών του βρόχου C, μία σχέση που διατηρείται ακόμη και αν οι τιμές των μεταβλητών αλλάξουν. Ένας τρόπος για να ανακαλύπτουμε την αμετάβλητη συνθήκη είναι να δημιουργήσουμε ένα ίχνος εκτέλεσης του προγράμματος (trace). 9-37

38 Παράδειγμα Έστω το πρόγραμμα fact(x) με κώδικα y := 1; z := 0; while (z!= x) { z := z + 1; y := y * z; } επανάληψη z y z!= x true true true true true true false Έστω ότι το πρόγραμμα εκτελείται για x = 6. Ο πίνακας επιδεικνύει τις τιμές των μεταβλητών του προγράμματος κατά την εκκίνηση της i-οστής εκτέλεσης του βρόχου. Παρατηρούμε ότι η αμετάβλητη συνθήκη είναι απλά η y = z! 9-38

39 Παράδειγμα (συν.) Η αμετάβλητη συνθήκη που εντοπίστηκε επίσης διαθέτει τις ιδιότητες που επιθυμούμε: είναι αρκετά ασθενής ώστε τελικά να προκύπτει από την προσυνθήκη της εντολής while που είναι y = 1 z = 0 είναι και αρκετά ισχυρή έτσι ώστε μαζί με την άρνηση της συνθήκης του while να συνεπάγεται τη μετασυνθήκη y = x! Δηλαδή ισχύουν οι συνεπαγωγές = par (y = 1 z = 0) (y = z!) και = par (y = z! x = z) (y = x!) 9-39

40 Εντολές while σε απόδειξη «ταμπλό»: 1. Εντοπίζουμε μια συνθήκη η που υπολογίζουμε να είναι κατάλληλη αμετάβλητη συνθήκη. 2. Προσπαθούμε να αποδείξουμε ότι η Β ψ (όπου Β είναι η λογική συνθήκη της εντολής while) και ότι φ η. Αν τα καταφέρουμε προχωρούμε στο Βήμα 3, διαφορετικά επιστρέφουμε στο Βήμα Σπρώχνουμε τη συνθήκη η προς τα πάνω μέσα από το σώμα του βρόχου εφαρμόζοντας τους κανόνες που πρέπει ανάλογα με τις εντολές που συναντούμε. Έστω ότι προκύπτει η συνθήκη η. 4. Αποδεικνύουμε ότι η Β η, που ουσιαστικά αποδεικνύει ότι το η είναι αμετάβλητη συνθήκη. (Αν αποτύχουμε επιστρέφουμε στο Βήμα 1.) 5. Τέλος, γράφουμε την η πάνω από την εντολή while και αμέσως προηγούμενα τη συνθήκη φ. 9-40

41 Παράδειγμα (συν.) {True} {1 = 0!} Ενδυνάμωση Προσυνθήκης y := 1; {y = 0!} Κανόνας Ανάθεσης z := 0; {y = z!} Κανόνας Ανάθεσης while (z!= x) { {y = z! z x} Υπόθεση Αμετάβλητης Συνθήκης & Φρουρός { y * (z + 1) = (z + 1)!} Κανόνας Συνεπαγωγής z := z + 1; {y * z = z!} Κανόνας Ανάθεσης y := y * z; { y = z! } Κανόνας Ανάθεσης } {y = z! (z x)} Κανόνας while {y = x!} Κανόνας Συνεπαγωγής 9-41

42 Ολική Ορθότητα Το σύστημα αποδείξεων που έχουμε μελετήσει αποδεικνύει τη μερική ορθότητα προγραμμάτων. Δηλαδή, ελέγχει κατά πόσο το πρόγραμμα ικανοποιεί την προδιαγραφή του σε περίπτωση που τερματίζει. Δεν ενημερώνει αν το πρόγραμμα τερματίζει ή αν εισέρχεται σε ατέρμονο βρόχο. Κατά την ανάλυση ολικής ορθότητας μας ενδιαφέρει να αποδείξουμε ότι και το πρόγραμμα τερματίζει και ικανοποιεί την προδιαγραφή του κατά τον τερματισμό. 9-42

43 Τερματισμός και η εντολή while H μόνη εντολή που μπορεί να προκαλέσει μη τερματισμό στη γλώσσα που μελετούμε είναι η εντολή while. Επομένως το Σύστημα Απόδειξης Ολικής Ορθότητας κληρονομεί τους κανόνες/αξιώματα από το Σύστημα Απόδειξης Μερικής Ορθότητας με εξαίρεση τον Κανόνα while. O αναθεωρημένος Κανόνας while αποτελείται από δύο σκέλη: Την απόδειξη της μερικής ορθότητας, δηλαδή απόδειξη ότι αν ο βρόχος τερματίσει τότε ικανοποιεί την προδιαγραφή του και Την απόδειξη ότι τερματίζει. 9-43

44 Τερματισμός και η εντολή while Η απόδειξη τερματισμού προϋποθέτει τον εντοπισμό μιας ακέραιης έκφρασης της οποίας η τιμή της μειώνεται κάθε φορά που εκτελείται το σώμα του βρόχου και δεν γίνεται ποτέ αρνητική. Μια τέτοια έκφραση ονομάζεται η μεταβλητή έκφραση (variant) και η ύπαρξή της αποδεικνύει ότι o βρόχος τερματίζει. Για το πρόγραμμα fact (Διαφάνεια 9-38) μία κατάλληλη μεταβλητή έκφραση είναι η x z: Κατά την εκκίνηση της εκτέλεσης του βρόχου x-z = x Με κάθε επανάληψη του βρόχου η τιμή της x-z μειώνεται κατά 1 (αφού το z αυξάνεται κατά 1) Το x-z δεν μπορεί να γίνει ποτέ αρνητικό: όταν γίνει 0 ο βρόχος τερματίζει. 9-44

45 Ο κανόνας Τotal-while { 0 Β 0 E { 0 E} E0} C while B { 0 E C { E B} } Η Ε είναι η μεταβλητή έκφραση και ως Ε 0 συμβολίζουμε την αρχική της τιμή. Εξήγηση Κανόνα: Σύμφωνα με τον κανόνα, αν η συνθήκη η είναι μια αμετάβλητη συνθήκη του βρόχου και επιπλέον η Ε είναι μια μεταβλητή έκφραση με αρχική μη-αρνητική τιμή Ε 0 η οποία μειώνεται σε κάθε εκτέλεση του C χωρίς να γίνει μικρότερη από το 0 τότε η η είναι μια αμετάβλητη συνθήκη ολόκληρης της εντολής while το οποίο τερματίζει. 9-45

46 Παράδειγμα Θα δείξουμε ότι το πρόγραμμα fact y := 1; z := 0; while (z!= x) { z := z + 1; y := y * z; } Ικανοποιεί την προδιαγραφή = tot {x 0} fact {y = x!} με αμετάβλητη συνθήκη την y = z! και μεταβλητή έκφραση την x z. 9-46

47 Παράδειγμα (συν.) {x 0} {1 = 0! 0 x-0} Ενδυνάμωση Προσυνθήκης y := 1; {y = 0! 0 x-0} Κανόνας Ανάθεσης z := 0; {y = z! 0 x-z} Κανόνας Ανάθεσης while (z!= x) { {y = z! z x 0 x-z = E 0 } Υπόθεση Αμ. Συνθήκης & Φρουρός { y * (z + 1) = (z + 1)! 0 x- (z+1) < E 0 } Κανόνας Συνεπαγωγής z := z + 1; {y * z = z! 0 x- z < E 0 } Κανόνας Ανάθεσης y := y * z; { y = z! 0 x- z < E 0 } Κανόνας Ανάθεσης } {y = z! (z x)} Κανόνας while {y = x!} Κανόνας Συνεπαγωγής 9-47

48 Τερματισμός εντολών while Στη γενική περίπτωση, το πρόβλημα κατά πόσο μια εντολή while τερματίζει είναι μη αποφασίσιμο: δεν υπάρχει διαδικασία η οποία με δεδομένο εισόδου μια εντολή while να μπορεί να απαντήσει αν αυτή τερματίζει. Κατ επέκταση το ίδιο ισχύει και για την εύρεση μεταβλητών εκφράσεων για τέτοιες εντολές. Ο πιο κάτω κώδικας επιδεικνύει ένα χαρακτηριστικά «δύσκολο» βρόχο για τον οποίο έχει δειχθεί η αδυναμία εύρεσης μεταβλητής συνθήκης παρόλο που εμπειρικά παρατηρούμε ότι ο βρόχος τερματίζει πάντα. c := x; while ( c!= 1){ if (c mod 2 == 0) c := c/2 else c := 3*c + 1 } Για x = 5 ο βρόχος εκτελεί 6 επαναλήψεις, για x = 72 εκτελεί 32 επαναλήψεις για x = εκτελεί 177 επαναλήψεις

49 Σχόλια Τα συστήματα κανόνων που μελετήσαμε είναι ορθά: αν μπορούμε να αποδείξουμε την ορθότητα μιας προδιαγραφής μέσω των συστημάτων αυτών τότε οι προδιαγραφές είναι πράγματι ορθές. Τα συστήματα αυτά όμως δεν είναι πλήρη: υπάρχουν ορθές προδιαγραφές που δεν αποδεικνύονται βάσει αυτών. Επεκτάσεις των συστημάτων έχουν διατυπωθεί για: Συναρτήσεις Παράλληλα προγράμματα Συναρτησιακές Γλώσσες Προγραμματισμού 9-49

50 Παράδειγμα Τμήμα ελάχιστο αθροίσματος Έστω ο πίνακας int A[n]. Τμήμα του Α ονομάζεται οποιοδήποτε συνεχόμενο κομμάτι του πίνακα A[i],,A[j] όπου 0 i j < n. Γράφουμε S i,j για το άθροισμα A[i] + A[i+1] + + A[j]. Ονομάζουμε το τμήμα A[i],,A[j] του πίνακα ως τμήμα με το ελάχιστο άθροισμα αν για οποιοδήποτε άλλο τμήμα του πίνακα A[i ],,A[j ] ισχύει ότι S i,j S i,j. Παράδειγμα: Έστω ο πίνακας A = [-1, 3, 15, -6, 4, -5]. Οι πίνακες [3, 15, -6] και [-5] είναι τμήματα του Α ενώ ο πίνακας [-1, 3, - 6] δεν είναι τμήμα του Α. Τμήμα με το ελάχιστο άθροισμα για τον πίνακα είναι ο πίνακας [-6, 4, -5] με άθροισμα

51 Παράδειγμα Ο Aλγόριθμος Θεωρείστε το πιο κάτω πρόγραμμα Min_Sum για εύρεση του ελάχιστου αθροίσματος τμήματος του πίνακα Α. k := 1; t := Α[0]; s := Α[0]; while (k!= n){ t := min(t + Α[k], Α[k]); s := min(s,t); k := k+1; } Στόχος: Η απόδειξη par {True} Min_Sum { i, j (0 i j<n s S i,j }. Δοκιμάστε να αποδείξετε την προδιαγραφή αυτή με αμετάβλητη συνθήκη την Inv 1 (s,k) = i, j (0 i j < k s S i,j ) 9-51

52 Ενδυνάμωση της Αμετάβλητης Συνθήκης Παρατηρούμε ότι η συνθήκη που επιλέξαμε δεν είναι αρκετά δυνατή για να μας οδηγήσει στην απόδειξη. Αυτό οφείλεται στο γεγονός ότι αγνοεί την μεταβλητή t. Για την μεταβλητή t παρατηρούμε ότι ισχύει η συνθήκη: Inv 2 (t,k) = i (0 i <k t S i,k-1 ) Επομένως συνδυάζουμε τις δύο αυτές συνθήκες στην αμετάβλητη συνθήκη: Inv 1 (s,k) Inv 2 (t,k) 9-52

53 Απόδειξη (1) {True} {Inv 1 (Α[0],1) Inv 2 (Α[0],1)} k := 1; {Inv 1 (Α[0],k) Inv 2 (Α[0],k)} t := Α[0]; {Inv 1 (Α[0],k) Inv 2 (t,k)} s := Α[0]; {Inv 1 (s,k) Inv 2 (t,k)} Ενδυνάμωση Προσυνθήκης Κανόνας Ανάθεσης Κανόνας Ανάθεσης Κανόνας Ανάθεσης 9-53

54 Απόδειξη (2) {Inv 1 (s,k) Inv 2 (t,k)} while (k!= n){ {Inv 1 (s,k) Inv 2 (t,k) k n} {Inv 1 (min(s, min (t + A[k], A[k])), k+1) Inv 2 (min(t + A[k], A[k]), k+1)} t := min(t + Α[k], Α[k]); {Inv 1 (min(s,t), k+1) Inv 2 (t, k+1)} s := min(s,t); {Inv 1 (s, k+1) Inv 2 (t, k+1)} k := k+1; {Inv 1 (s, k) Inv 2 (t, k)} } {Inv 1 (s, k) Inv 2 (t, k) k = n} {Inv 1 (s, n)} Αμετάβλητη Συνθήκη και Φρουρός Ενδυνάμωση Συνθήκης Χρειάζεται απόδειξη Κανόνας Ανάθεσης Κανόνας Ανάθεσης Κανόνας Ανάθεσης Κανόνας While Αποδυνάμωση Συνεπαγωγής 9-54

55 Απόδειξη (3) Λήμμα: H συνθήκη Inv 1 (s,k) Inv 2 (t,k) k n συνεπάγεται την Inv 1 (min(s, min (t + A[k], A[k])), k+1) Inv 2 (min(t + A[k], A[k]), k+1). Ιδανικά θα θέλουμε να αποδείξουμε για το πρόγραμμα ότι: par {True} Min_Sum { i, j (0 i j<n s = S i,j } ή ακόμα ότι tot {True} Min_Sum { i, j (0 i j<n s = S i,j } 9-55

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

Ανάλυση της Ορθότητας Προγραμμάτων Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων ΚανόνεςΑπόδειξηςΜερικήςΟρθότητας

Διαβάστε περισσότερα

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

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες

Διαβάστε περισσότερα

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

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Εισαγωγή Τα προγράμματα μιας (κλασικής) γλώσσας προγραμματισμού

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 Λύσεις Σειράς Ασκήσεων 5 Να υπολογίσετε τις ασθενέστερες προσυνθήκες έτσι ώστε οι πιο κάτω προδιαγραφές να είναι ορθές σύμφωνα (i) με την έννοια της μερικής ορθότητας και (ii) με την έννοια της

Διαβάστε περισσότερα

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

ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι Η τυπική επαλήθευση βάση μοντέλου είναι κατάλληλη για συστήματα επικοινωνούντων διεργασιών (π.χ. κατανεμημένα συστήματα) όπου το βασικό πρόβλημα είναι ο έλεγχος αλλά γενικά δεν

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 5 Λύσεις Σειράς Ασκήσεων 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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 (15 μονάδες) Σειρά Προβλημάτων 5 Λύσεις Να δώσετε προδιαγραφές (τριάδες Hoare) για τα πιο κάτω προγράμματα: (α) Ένα πρόγραμμα το οποίο παίρνει ως δεδομένο εισόδου δύο πίνακες Α και Β και ελέγχει

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 5 Άσκηση Λύσεις Σειράς Ασκήσεων 5 Έστω P και Q συνθήκες και S ένα πρόγραμμα. Να εξηγήσετε με λόγια τις πιο κάτω προδιαγραφές (i) με την έννοια της μερικής ορθότητας και (ii) με την έννοια της ολικής ορθότητας.

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις Να αποφασίσετε κατά πόσο οι πιο κάτω προδιαγραφές είναι ορθές σύμφωνα με την έννοια της μερικής ορθότητας και την έννοια της ολικής ορθότητας. Να αιτιολογήσετε σύντομα

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 (α) {x = 12 y = 7} skip {y = 7} Λύσεις Σειράς Ασκήσεων 5 Η προδιαγραφή αυτή είναι ορθή τόσο με την έννοια της μερικής ορθότητας όσο και με την έννοια της ολικής ορθότητας. Αυτό οφείλεται στο γεγονός

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 5 Άσκηση 1 Λύσεις Σειράς Ασκήσεων 5 Να υπολογίσετε τις ασθενέστερες προσυνθήκες έτσι ώστε οι πιο κάτω προδιαγραφές να είναι ορθές σύμφωνα (i) με την έννοια της μερικής ορθότητας και (ii) με την έννοια της

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 2ο μέρος σημειώσεων: Συστήματα Αποδείξεων για τον ΠΛ, Μορφολογική Παραγωγή, Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60 Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ; Εντολή επανάληψης Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή Πρόβλημα Πώς θα υπολογίσουμε το άθροισμα των ακέραιων 1 5000; Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί

Διαβάστε περισσότερα

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

Διαβάστε περισσότερα

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος Θέμα 1 Δίνονται τα παρακάτω τμήματα αλγορίθμου Α. βαλίτσα Αληθής εισιτήριο Αληθής ταξίδι βαλίτσα και εισιτήριο Τι τιμή θα έχει η λογική μεταβλητή

Διαβάστε περισσότερα

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

Επαναληπτικές Διαδικασίες

Επαναληπτικές Διαδικασίες Επαναληπτικές Διαδικασίες Οι επαναληπτικές δομές ( εντολές επανάληψης επαναληπτικά σχήματα ) χρησιμοποιούνται, όταν μια ομάδα εντολών πρέπει να εκτελείται αρκετές- πολλές φορές ανάλογα με την τιμή μιας

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

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

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο 2.1-2.5) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στον Κατηγορηματικό Λογισμό Σύνταξη Κανόνες Συμπερασμού Σημασιολογία ΕΠΛ 412 Λογική στην

Διαβάστε περισσότερα

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 008 Κατ οίκον Εργασία Σκελετοί Λύσεων Άσκηση Παρατηρούμε ότι ο χρόνος εκτέλεσης μέσης περίπτωσης της κάθε εντολής if ξεχωριστά: if (c mod 0) for (k ; k

Διαβάστε περισσότερα

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Εισαγωγή - 1 Μία κλασσική γλώσσα προγραμματισμού αποτελείται από: Εκφράσεις (των

Διαβάστε περισσότερα

4.3 Ορθότητα και Πληρότητα

4.3 Ορθότητα και Πληρότητα 4.3 Ορθότητα και Πληρότητα Συστήματα αποδείξεων όπως η μορφολογική παραγωγή και η κατασκευή μοντέλων χρησιμοποιούνται για να δείξουμε την εγκυρότητα εξαγωγών συμπερασμάτων. Ένα σύστημα αποδείξεων μπορεί

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G,k η G είναι μια ασυμφραστική γραμματική η οποία παράγει κάποια λέξη 1 n όπου n k } (β) { Μ,k η Μ είναι

Διαβάστε περισσότερα

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 1 Λύσεις Σειράς Ασκήσεων 1 Άσκηση 1 Έστω οι προτάσεις / προϋπόθεσεις: Π1. Σε όσους αρέσει η τέχνη αρέσουν και τα λουλούδια. Π2. Σε όσους αρέσει το τρέξιμο αρέσει και η μουσική. Π3. Σε όσους δεν αρέσει η

Διαβάστε περισσότερα

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Είσοδος:

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ 1. Ποιες από τις παρακάτω εντολές είναι σωστές; α) if A + B

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

Ασκήσεις Επανάληψης Λύσεις Άσκηση 1 Ασκήσεις Επανάληψης Λύσεις (α) Το επακόλουθο (A (B C)) ((A C) (A B)) είναι ψευδές. Αυτό φαίνεται στην ανάθεση τιμών [Α] = Τ, [Β] = F, [C] = T. (β) Ακολουθεί η απόδειξη του επακόλουθου. 1. x(p(x)

Διαβάστε περισσότερα

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων ΕΠΛ 1 Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 009 Κατ οίκον Εργασία 1 Σκελετοί Λύσεων Άσκηση 1 Αρχικά θα πρέπει να υπολογίσουμε τον αριθμό των πράξεων που μπορεί να εκτελέσει ο υπολογιστής σε μια ώρα,

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

Διαβάστε περισσότερα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

Διαβάστε περισσότερα

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

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

Ασκήσεις Επανάληψης Λύσεις Άσκηση 1 Ασκήσεις Επανάληψης Λύσεις (α) Το επακόλουθο (A (B C)) ((A C) (A B)) είναι ψευδές. Αυτό φαίνεται στην ανάθεση τιμών [Α] = Τ, [Β] = F, [C] = T. (β) Ακολουθεί η απόδειξη του επακόλουθου. 1. x(p(x)

Διαβάστε περισσότερα

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

Διαβάστε περισσότερα

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

Διαβάστε περισσότερα

Προτασιακός Λογισμός (HR Κεφάλαιο 1)

Προτασιακός Λογισμός (HR Κεφάλαιο 1) Προτασιακός Λογισμός (HR Κεφάλαιο 1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνταξη Λογικός Συμπερασμός Σημασιολογία Ορθότητα και Πληρότητα Κανονικές Μορφές Προτάσεις Horn ΕΠΛ 412 Λογική

Διαβάστε περισσότερα

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 2.4.5 8.2 Δομή Επανάληψης Δομές Επανάληψης Οι δομές επανάληψης χρησιμοποιούνται στις περιπτώσεις όπου μια συγκεκριμένη ακολουθία εντολών πρέπει να εκτελεστεί

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 1 Λύσεις Σειρά Προβλημάτων 1 Λύσεις Άσκηση 1 Να διατυπώσετε τον πιο κάτω συλλογισμό στον Προτασιακό Λογισμό και να τον αποδείξετε χρησιμοποιώντας τη Μέθοδο της Επίλυσης. Δηλαδή, να δείξετε ότι αν ισχύουν οι πέντε

Διαβάστε περισσότερα

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

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

Διαβάστε περισσότερα

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 3ο μέρος σημειώσεων: Μέθοδος της Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια

Διαβάστε περισσότερα

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

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

Διαβάστε περισσότερα

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { a m b n c p m,n,p 0 και είτε m + n = p είτε m = n + p } (β) { xx rev yy rev x, y {a,b}

Διαβάστε περισσότερα

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.

Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ Κεφάλαιο 2 : Δομή Επιλογής Εντολές επιλογής Εντολή ΑΝ. Εντολές

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Στοιχεία προτασιακής λογικής Περιεχόμενα

Διαβάστε περισσότερα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 6 η Βρόχοι Επανάληψης Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

Διαβάστε περισσότερα

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

Διαβάστε περισσότερα

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΣΕΙΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: 7 Α1. Κάθε σωστή απάντηση

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

Διαβάστε περισσότερα

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 8 ης διάλεξης

Ασκήσεις μελέτης της 8 ης διάλεξης Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2017 18 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 8 ης διάλεξης 8.1. (i) Έστω ότι α και β είναι δύο τύποι της προτασιακής

Διαβάστε περισσότερα

Πληρότητα της μεθόδου επίλυσης

Πληρότητα της μεθόδου επίλυσης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο, θα πρέπει να περιέχει τουλάχιστον

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 412: Λογική στην Πληροφορική Ενδιάμεση Εξέταση Σκελετοί Λύσεων Ημερομηνία : Σάββατο, 27 Οκτωβρίου 2012 Διάρκεια : 11:00 13:00 Διδάσκουσα : Άννα Φιλίππου Άσκηση

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ Εισαγωγή Οι αριθμοί που εκφράζουν το πλήθος των στοιχείων ανά αποτελούν ίσως τους πιο σημαντικούς αριθμούς της Συνδυαστικής και καλούνται διωνυμικοί συντελεστές διότι εμφανίζονται

Διαβάστε περισσότερα

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Έρευνες-Δομές Επανάληψης Από τις έρευνες προκύπτει ότι οι αρχάριοι προγραμματιστές δεν χρησιμοποιούν αυθόρμητα την επαναληπτική διαδικασία για

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 8η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 8η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 8η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στο βιβλίο Artificial Intelligence A Modern Approach των S. Russel

Διαβάστε περισσότερα

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Η Δομή Επανάληψης Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες Οι 2 πρώτες διδακτικές ώρες στην τάξη Η τρίτη διδακτική ώρα στο εργαστήριο Γενικός Διδακτικός Σκοπός Ενότητας Να εξοικειωθούν

Διαβάστε περισσότερα

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

Λύσεις Σειράς Ασκήσεων 4 Άσκηση 1 Λύσεις Σειράς Ασκήσεων 4 Θεωρήστε το σύνολο των ατομικών προτάσεων ΑΡ = {α, π, ε} που αντιστοιχούν στις ενέργειες αποστολής μηνύματος, παραλαβής μηνύματος και επιστροφής αποτελέσματος που εκτελούνται

Διαβάστε περισσότερα

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει

Διαβάστε περισσότερα

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές! Εντολές Επανάληψης Πολλές φορές χρειάζεται να επαναλάβουμε τις ίδιες εντολές Πχ. Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα όρων μιας ακολουθίας διαδοχικών ακεραίων. Δηλαδή αν ο χρήστης δώσει τον αριθμό

Διαβάστε περισσότερα

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 3 Λύσεις Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { xyw 1w 2 x, y {a, b}, w 1 = a n, w 2 = b 2n, όπου, αν x=y=a, τότε n = 2k, διαφορετικά

Διαβάστε περισσότερα

x < y ή x = y ή y < x.

x < y ή x = y ή y < x. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Εαρινό Εξάμηνο 011-1 Τμήμα Μαθηματικών Διδάσκων: Χ.Κουρουνιώτης Μ8 ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΥΣΗΣ Φυλλάδιο 1 Ανισότητες Οι πραγματικοί αριθμοί είναι διατεταγμένοι. Ενισχύουμε αυτήν την ιδέα με

Διαβάστε περισσότερα

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

Επαναληπτικό Διαγώνισμα στη Δομή Ακολουθίας και Δομή Επιλογής Επαναληπτικό Διαγώνισμα στη Δομή Ακολουθίας και Δομή Επιλογής Ονοματεπώνυμο:.. Διάρκεια:... Mονάδες:.. Βαθμός: Θέμα Α Α1. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα

Διαβάστε περισσότερα

Μαθηματική Λογική και Λογικός Προγραμματισμός

Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων- Σημειώσεις έτους 2007-2008 Καθηγητής Γεώργιος Βούρος Μαθηματική Λογική και Λογικός Προγραμματισμός Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης Στη C++ υπάρχουν 3 διαφορετικές εντολές επανάληψης: while for do-while 1 2 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολή while Παράδειγμα #1 Κατασκευάστε πρόγραμμα που για

Διαβάστε περισσότερα

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4) Βασικές Έννοιες Αλγορίθμων Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4) Δομές εντολών Υπάρχουν διάφορα είδη εντολών όπως, ανάθεσης ή εκχώρησης τιμής, εισόδου εξόδου, κ.ά., αλλά γενικά χωρίζονται σε τρείς

Διαβάστε περισσότερα

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Σχέσεις ισοδυναμίας trce equivlence filure equivlence strong isimultion wek isimultion ΕΠΛ 664 Ανάλυση και Επαλήθευση

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

Διαβάστε περισσότερα

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα Μορφολογική Παραγωγή 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα Συστήματα Αποδείξεων στον ΠΛ(1/2) Συχνά μας ενδιαφέρει να μπορούμε να διαπιστώσουμε αν μία εξαγωγή

Διαβάστε περισσότερα