O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

ΑΕΠΠ

89 visualizações

Publicada em

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

Publicada em: Educação
  • Seja o primeiro a comentar

ΑΕΠΠ

  1. 1. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΠΕΡΙΒΑΛΛΟΝ (Α.Ε.Π.Π.)(Α.Ε.Π.Π.) ΙΟΡΔΑΝΗΣ ΣΑΒΒΟΥΛΙΔΗΣΙΟΡΔΑΝΗΣ ΣΑΒΒΟΥΛΙΔΗΣ http://users.sch.gr/iordanissavhttp://users.sch.gr/iordanissav
  2. 2. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΣΚΟΠΟΣΣΚΟΠΟΣ ΜΑΘΗΜΑΤΟΣΜΑΘΗΜΑΤΟΣ Το μάθημα έχει ως σκοπό να αναπτύξει την σκέψη των μαθητών,Το μάθημα έχει ως σκοπό να αναπτύξει την σκέψη των μαθητών, ώστε να κατανοούν και να επιλύουν «ώστε να κατανοούν και να επιλύουν «προβλήματαπροβλήματα» με τη βοήθεια» με τη βοήθεια του Η/Υ.του Η/Υ. Η επίλυση γίνεται με τη δημιουργίαΗ επίλυση γίνεται με τη δημιουργία αλγορίθμωναλγορίθμων στο χαρτί και στηστο χαρτί και στη συνέχειασυνέχεια προγραμμάτωνπρογραμμάτων σε μια υποθετική γλώσσασε μια υποθετική γλώσσα προγραμματισμού με όνομα «ΓΛΩΣΣΑ»προγραμματισμού με όνομα «ΓΛΩΣΣΑ» Η «ΓΛΩΣΣΑ», ακολουθεί τις γενικές αρχές των πραγματικώνΗ «ΓΛΩΣΣΑ», ακολουθεί τις γενικές αρχές των πραγματικών γλωσσών προγραμματισμού, αλλά δεν παράγει αληθινές εφαρμογέςγλωσσών προγραμματισμού, αλλά δεν παράγει αληθινές εφαρμογές (ψευδογλώσσα)(ψευδογλώσσα) Χρησιμοποιείται ώστε να μας εισάγει με ένα γενικό τρόπο στονΧρησιμοποιείται ώστε να μας εισάγει με ένα γενικό τρόπο στον συναρπαστικό κόσμο του προγραμματισμού Η/Υσυναρπαστικό κόσμο του προγραμματισμού Η/Υ Η μετατροπή ενός προγράμματος από «ΓΛΩΣΣΑ» σεΗ μετατροπή ενός προγράμματος από «ΓΛΩΣΣΑ» σε πραγματικήπραγματική γλώσσα προγραμματισμού (π.χ.γλώσσα προγραμματισμού (π.χ. Pascal, C, Fortran, Java, VisualPascal, C, Fortran, Java, Visual BasicBasic κ.λπ.κ.λπ.)) είναι απλή υπόθεσηείναι απλή υπόθεση Κάθε γλώσσα προγραμματισμού, σχεδιάζεται για συγκεκριμένοΚάθε γλώσσα προγραμματισμού, σχεδιάζεται για συγκεκριμένο σκοπό, αλλά όλες έχουν κοινά χαρακτηριστικά και επεξεργάζονταισκοπό, αλλά όλες έχουν κοινά χαρακτηριστικά και επεξεργάζονται τους ίδιους τύπους δεδομένων, με παρόμοιο λεξιλόγιοτους ίδιους τύπους δεδομένων, με παρόμοιο λεξιλόγιο
  3. 3. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΕΦΑΛΑΙΟ 1ΚΕΦΑΛΑΙΟ 1οο ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ
  4. 4. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΤΙ ΕΙΝΑΙ «ΠΡΟΒΛΗΜΑ»ΤΙ ΕΙΝΑΙ «ΠΡΟΒΛΗΜΑ» ΟΡΙΣΜΟΣΟΡΙΣΜΟΣ ΠρόβλημαΠρόβλημα, θεωρείται μια κατάσταση την οποία, θεωρείται μια κατάσταση την οποία πρέπει να επιλύσουμε, χωρίς να είναιπρέπει να επιλύσουμε, χωρίς να είναι απαραίτητα γνωστή ή προφανής η λύσης τηςαπαραίτητα γνωστή ή προφανής η λύσης της.. Π.χ. Τρύπα του όζοντος, πληθωρισμός, αργήΠ.χ. Τρύπα του όζοντος, πληθωρισμός, αργή ταχύτητα μετάδοσης δεδομένων, ιοίταχύτητα μετάδοσης δεδομένων, ιοί υπολογιστών κ.λπ.υπολογιστών κ.λπ.
  5. 5. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΑΤΑΝΟΗΣΗ ΠΡΟΒΛΗΜΑΤΟΣΚΑΤΑΝΟΗΣΗ ΠΡΟΒΛΗΜΑΤΟΣ Η κατανόηση ενός προβλήματος προϋποθέτει:Η κατανόηση ενός προβλήματος προϋποθέτει: 1.1. Σαφήνεια διατύπωσήςΣαφήνεια διατύπωσής του από αυτόν που μαςτου από αυτόν που μας το αναθέτειτο αναθέτει 2.2. Σωστή ερμηνείαΣωστή ερμηνεία από εμάς που αναλαμβάνουμεαπό εμάς που αναλαμβάνουμε να το επιλύσουμενα το επιλύσουμε Οδηγούμαστε σε προβληματικές καταστάσειςΟδηγούμαστε σε προβληματικές καταστάσεις αν ένα από τα παραπάνω δεν πληρείταιαν ένα από τα παραπάνω δεν πληρείται (χάσιμο χρόνου, χρημάτων, εργατοωρών(χάσιμο χρόνου, χρημάτων, εργατοωρών κ.λπ.).κ.λπ.). Η επόμενη διαφάνεια το απεικονίζει απόλυτα!Η επόμενη διαφάνεια το απεικονίζει απόλυτα!
  6. 6. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα Το αποτέλεσμα δεν είναι πάντα το αναμενόμενο 3. Τι περιγράψαμε 2. Τι καταλάβαμε 6. Τι παραδώσαμε5. Τι προγραμματίσαμε 4. Πως διορθώσαμε 1. Τι μας ζήτησαν
  7. 7. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΕΝΟΣΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΕΝΟΣ ΠΡΟΒΛΗΜΑΤΟΣΠΡΟΒΛΗΜΑΤΟΣ 1. ΚΑΤΑΝΟΗΣΗ1. ΚΑΤΑΝΟΗΣΗ 2. ΑΝΑΛΥΣΗ2. ΑΝΑΛΥΣΗ 3. ΕΠΙΛΥΣΗ3. ΕΠΙΛΥΣΗ Η σωστή και πλήρης αποσαφήνισηΗ σωστή και πλήρης αποσαφήνιση των δεδομένων και των ζητούμενωντων δεδομένων και των ζητούμενων του προβλήματοςτου προβλήματος Το αρχικό πρόβλημα διασπάται σεΤο αρχικό πρόβλημα διασπάται σε άλλα επί μέρους απλούστεραάλλα επί μέρους απλούστερα προβλήματα (υποπροβλήματα)προβλήματα (υποπροβλήματα) Υλοποιείται η λύση τουΥλοποιείται η λύση του προβλήματος, λύνοντας ταπροβλήματος, λύνοντας τα επιμέρους προβλήματαεπιμέρους προβλήματα
  8. 8. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΔΟΜΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣΔΟΜΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ Κάθε πρόβλημα έχει μιαΚάθε πρόβλημα έχει μια δομήδομή την οποία πρέπειτην οποία πρέπει να αναλύσουμε και να αποτυπώσουμε.να αναλύσουμε και να αποτυπώσουμε. Η καταγραφή της δομής του προβλήματος,Η καταγραφή της δομής του προβλήματος, σημαίνει και την ανάλυσή του σεσημαίνει και την ανάλυσή του σε μικρότεραμικρότερα καικαι απλούστερααπλούστερα υποπροβλήματα.υποπροβλήματα. ΟΡΙΣΜΟΣΟΡΙΣΜΟΣ Δομή προβλήματοςΔομή προβλήματος, είναι τα επιμέρους τμήματα, είναι τα επιμέρους τμήματα που αποτελούν το πρόβλημα (υποπροβλήματα)που αποτελούν το πρόβλημα (υποπροβλήματα) και ο τρόπος αλληλοσύνδεσής τους.και ο τρόπος αλληλοσύνδεσής τους.
  9. 9. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΔΙΑΓΡΑΜΜΑΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗΔΙΑΓΡΑΜΜΑΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ ΔΟΜΗΣ ΕΝΟΣ ΠΡΟΒΛΗΜΑΤΟΣΔΟΜΗΣ ΕΝΟΣ ΠΡΟΒΛΗΜΑΤΟΣ Απλοποιούμε (αποδομούμε)Απλοποιούμε (αποδομούμε) όσο το δυνατόν περισσότεροόσο το δυνατόν περισσότερο το πρόβλημα σετο πρόβλημα σε ευκολότεραευκολότερα τμήματατμήματα ΠΡΟΒΛΗΜΑΠΡΟΒΛΗΜΑ ΤΜΗΜΑ 1ΤΜΗΜΑ 1 ΤΜΗΜΑ 2ΤΜΗΜΑ 2 ΤΜΗΜΑ 3ΤΜΗΜΑ 3 ΤΜΗΜΑ 1.1ΤΜΗΜΑ 1.1 ΤΜΗΜΑ 1.3ΤΜΗΜΑ 1.3ΤΜΗΜΑ 1.2ΤΜΗΜΑ 1.2 ΤΜΗΜΑ 3.1ΤΜΗΜΑ 3.1 ΤΜΗΜΑ 3.3ΤΜΗΜΑ 3.3ΤΜΗΜΑ 3.2ΤΜΗΜΑ 3.2
  10. 10. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΑΘΟΡΙΣΜΟΣ ΑΠΑΙΤΗΣΕΩΝΚΑΘΟΡΙΣΜΟΣ ΑΠΑΙΤΗΣΕΩΝ Για τη σωστή επίλυση ενόςΓια τη σωστή επίλυση ενός προβλήματος :προβλήματος :  Προσδιορίζουμε ταΠροσδιορίζουμε τα δεδομέναδεδομένα που μαςπου μας παρέχονταιπαρέχονται  Καταγράφουμε ταΚαταγράφουμε τα ζητούμεναζητούμενα Δεν είναι πάντα εύκολο ναΔεν είναι πάντα εύκολο να διακρίνουμεδιακρίνουμε τατα δεδομένα. Δεν υπάρχει συγκεκριμένηδεδομένα. Δεν υπάρχει συγκεκριμένη μέθοδολογία.μέθοδολογία. Το ίδιο ισχύει και για τα ζητούμενα.Το ίδιο ισχύει και για τα ζητούμενα.
  11. 11. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΟΡΙΣΜΟΙΟΡΙΣΜΟΙ ΔεδομένοΔεδομένο, είναι οποιοδήποτε στοιχείο μπορούμε να, είναι οποιοδήποτε στοιχείο μπορούμε να αντιληφθούμε σε ένα πρόβλημα και αναπαρίσταται μεαντιληφθούμε σε ένα πρόβλημα και αναπαρίσταται με κάποια τιμή (αριθμητική, ημερομηνία, κείμενο, κλπ).κάποια τιμή (αριθμητική, ημερομηνία, κείμενο, κλπ). Π.χ. 1562, 24/5/2005, «ΚΑΛΗΜΕΡΑ ΣΑΣ»Π.χ. 1562, 24/5/2005, «ΚΑΛΗΜΕΡΑ ΣΑΣ» ΠληροφορίαΠληροφορία, είναι το αποτέλεσμα της επεξεργασίας, είναι το αποτέλεσμα της επεξεργασίας δεδομένων.δεδομένων. Επεξεργασία δεδομένωνΕπεξεργασία δεδομένων, είναι η διαδικασία με την, είναι η διαδικασία με την οποία ο μηχανισμός επίλυσης ενός προβλήματοςοποία ο μηχανισμός επίλυσης ενός προβλήματος δέχεταιδέχεται δεδομέναδεδομένα, τα, τα επεξεργάζεταιεπεξεργάζεται με συγκεκριμένο τρόπο καιμε συγκεκριμένο τρόπο και παράγει πληροφορίαπαράγει πληροφορία..
  12. 12. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝ Βάσει της δυνατότητας επίλυσης τους:Βάσει της δυνατότητας επίλυσης τους:  ΕπιλύσιμαΕπιλύσιμα Η λύση τους μπορεί να διατυπωθεί χωρίς πρόβλημαΗ λύση τους μπορεί να διατυπωθεί χωρίς πρόβλημα  ΑνοικτάΑνοικτά Είναι αυτά που πιθανώς λύνονται, αλλά δεν έχει βρεθείΕίναι αυτά που πιθανώς λύνονται, αλλά δεν έχει βρεθεί ακόμα η λύση τουςακόμα η λύση τους  ΆλυταΆλυτα Απλά δεν επιλύονταιΑπλά δεν επιλύονται
  13. 13. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝ (συνέχεια)(συνέχεια) Βάσει της δομής επιλύσιμων προβλημάτων:Βάσει της δομής επιλύσιμων προβλημάτων:  ΔομημέναΔομημένα Μπορούν να αυτοματοποιηθούν με συγκεκριμένηΜπορούν να αυτοματοποιηθούν με συγκεκριμένη διαδικασία (π.χ. στα μαθηματικά)διαδικασία (π.χ. στα μαθηματικά)  ΗμιδομημέναΗμιδομημένα Υπάρχουν διαφορετικές γνωστές λύσεις, αλλά αφήνεταιΥπάρχουν διαφορετικές γνωστές λύσεις, αλλά αφήνεται στον ανθρώπινο παράγοντα η επιλογή τους.στον ανθρώπινο παράγοντα η επιλογή τους.  ΑδόμηταΑδόμητα Δεν μπορούν να δομηθούν οι λύσεις τους. Προέχει ηΔεν μπορούν να δομηθούν οι λύσεις τους. Προέχει η ανθρώπινη διαίσθησηανθρώπινη διαίσθηση
  14. 14. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝ (συνέχεια)(συνέχεια) Βάσει του είδους επίλυσής τους:Βάσει του είδους επίλυσής τους:  ΑπόφασηςΑπόφασης Απάντηση με τη μορφή ΝΑΙ ή ΟΧΙ (αληθές ή ψευδές)Απάντηση με τη μορφή ΝΑΙ ή ΟΧΙ (αληθές ή ψευδές)  ΥπολογιστικάΥπολογιστικά Η λύση στηρίζεται σε υπολογισμούς ώστε να βρούμεΗ λύση στηρίζεται σε υπολογισμούς ώστε να βρούμε τις τιμές που ικανοποιούν τα δεδομένατις τιμές που ικανοποιούν τα δεδομένα  ΒελτιστοποίησηςΒελτιστοποίησης Όπου ζητούμε τη βέλτιστη λύση με τα δεδομένα πουΌπου ζητούμε τη βέλτιστη λύση με τα δεδομένα που έχουμε.έχουμε.
  15. 15. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΠΡΟΒΛΗΜΜΑΤΑ ΣΕ Η/ΥΠΡΟΒΛΗΜΜΑΤΑ ΣΕ Η/Υ Ο Η/Υ δεν έχει νόηση όπως ο άνθρωποςΟ Η/Υ δεν έχει νόηση όπως ο άνθρωπος Ο λόγος που αναθέτουμε την επίλυση ενόςΟ λόγος που αναθέτουμε την επίλυση ενός προβλήματος σε Η/Υ είναι γιατί:προβλήματος σε Η/Υ είναι γιατί: 1.1. Κάνει πολύπλοκους υπολογισμούςΚάνει πολύπλοκους υπολογισμούς 2.2. Εκτελεί επαναληπτικές διαδικασίεςΕκτελεί επαναληπτικές διαδικασίες 3.3. Χειρίζεται τεράστιο πλήθος δεδομένωνΧειρίζεται τεράστιο πλήθος δεδομένων 4.4. Είναι ταχύτατος και...Είναι ταχύτατος και... 5.5. Δεν παραπονιέται!Δεν παραπονιέται! Και όλα αυτά, ο Η/Υ μπορεί να τα κάνει μόνοΚαι όλα αυτά, ο Η/Υ μπορεί να τα κάνει μόνο μεμε προσθέσειςπροσθέσεις,, συγκρίσειςσυγκρίσεις καικαι μεταφοράμεταφορά!!
  16. 16. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΠΑΡΑΔΕΙΓΜΑΠΑΡΑΔΕΙΓΜΑ Να βρεθεί η λύση της συνάρτησηςΝα βρεθεί η λύση της συνάρτησης:: f(x) = 2xf(x) = 2x22 – 3x + 4– 3x + 4 ΚΑΤΑΝΟΗΣΗΚΑΤΑΝΟΗΣΗ Πρόκειται γιαΠρόκειται για β’ θμιαβ’ θμια εξίσωση μεεξίσωση με α=2, β=-3, γ=4α=2, β=-3, γ=4 ΑΝΑΛΥΣΗΑΝΑΛΥΣΗ Για να βρεθεί η λύση πρέπει να βρούμε τη διακρίνουσαΓια να βρεθεί η λύση πρέπει να βρούμε τη διακρίνουσα (Δ). Ο τύπος που δίνει τη διακρίνουσα είναι(Δ). Ο τύπος που δίνει τη διακρίνουσα είναι Δ = βΔ = β22 – 4αγ– 4αγ Έλεγχος γιαΈλεγχος για Δ < 0Δ < 0 ;; Η λύση προκύπτει από τον τύποΗ λύση προκύπτει από τον τύπο xx11,x,x22 = (-= (-ββ ±± √√ Δ) / 2αΔ) / 2α ΕΠΙΛΥΣΗΕΠΙΛΥΣΗ Το μόνο που μένει είναι να εφαρμόσουμε τα παραπάνωΤο μόνο που μένει είναι να εφαρμόσουμε τα παραπάνω βήματα (αλγόριθμο) σε Η/Υβήματα (αλγόριθμο) σε Η/Υ Το παραπάνω πρόβλημα είναιΤο παραπάνω πρόβλημα είναι επιλύσιμοεπιλύσιμο,, δομημένοδομημένο καικαι υπολογιστικόυπολογιστικό
  17. 17. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΚΕΦΑΛΑΙΟ 2ΚΕΦΑΛΑΙΟ 2οο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝΑΛΓΟΡΙΘΜΩΝ
  18. 18. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΤΙ ΕΙΝΑΙ ΑΛΓΟΡΙΘΜΟΣΤΙ ΕΙΝΑΙ ΑΛΓΟΡΙΘΜΟΣ ΑλγόριθμοςΑλγόριθμος, είναι μια πεπερασμένη σειρά αυστηρά καθορισμένων, είναι μια πεπερασμένη σειρά αυστηρά καθορισμένων και εκτελέσιμων βημάτων (ενεργειών), που στοχεύουν στην επίλυσηκαι εκτελέσιμων βημάτων (ενεργειών), που στοχεύουν στην επίλυση ενός προβλήματοςενός προβλήματος Ο αλγόριθμοςΟ αλγόριθμος ΔΕΝΔΕΝ είναι το ίδιο το πρόγραμμαείναι το ίδιο το πρόγραμμα Τα προγράμματα δημιουργούνται, μετατρέποντας τον αλγόριθμο,Τα προγράμματα δημιουργούνται, μετατρέποντας τον αλγόριθμο, χρησιμοποιώντας μια γλώσσα προγραμματισμού (π.χ. ΓΛΩΣΣΑ) σεχρησιμοποιώντας μια γλώσσα προγραμματισμού (π.χ. ΓΛΩΣΣΑ) σε ειδικό περιβάλλον εργασίας.ειδικό περιβάλλον εργασίας. Ιστορικό σημείωμα:Ιστορικό σημείωμα: Η λέξη προέρχεται από έναν Πέρση μαθηματικό τουΗ λέξη προέρχεται από έναν Πέρση μαθηματικό του 825 μ.Χ., τον825 μ.Χ., τον Abu Jafar Mohammed ibn MusaAbu Jafar Mohammed ibn Musa al Khowarizmial Khowarizmi.. Ο αλγόριθμος είναι σαν μια συνταγή μαγειρικής που διαχειρίζεταιΟ αλγόριθμος είναι σαν μια συνταγή μαγειρικής που διαχειρίζεται συγκεκριμένα υλικά (δεδομένα εισόδου), όπου μετά το μαγείρεμα μεσυγκεκριμένα υλικά (δεδομένα εισόδου), όπου μετά το μαγείρεμα με ένα συγκεκριμένο τρόπο (επεξεργασία), παράγεται το φαγητό (έξοδος)ένα συγκεκριμένο τρόπο (επεξεργασία), παράγεται το φαγητό (έξοδος)
  19. 19. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Κάθε αλγόριθμος ικανοποιεί τα παρακάτωΚάθε αλγόριθμος ικανοποιεί τα παρακάτω κριτήρια:κριτήρια:  ΔέχεταιΔέχεται είσοδοείσοδο ((input)input) δεδομένων, δηλ. καμία ή περισσότερεςδεδομένων, δηλ. καμία ή περισσότερες τιμέςτιμές  ΠαράγειΠαράγει έξοδοέξοδο ((output)output), δηλαδή τουλάχιστον ένα αποτέλεσμα, δηλαδή τουλάχιστον ένα αποτέλεσμα  Αποτελείται απόΑποτελείται από καθορισμένακαθορισμένα βήματα (όχι ασάφειες)βήματα (όχι ασάφειες) π.χ. Σε μια συνταγή λέει : «Βάζουμε λίγο αλάτι...». Δηλ. πόσο;π.χ. Σε μια συνταγή λέει : «Βάζουμε λίγο αλάτι...». Δηλ. πόσο;  Αποτελείται απόΑποτελείται από πεπερασμένα βήματαπεπερασμένα βήματα, δηλ. δεν εκτελείται, δηλ. δεν εκτελείται επ’ άπειρον (περατότητα)επ’ άπειρον (περατότητα)  ΕίναιΕίναι αποτελεσματικόςαποτελεσματικός (κάθε βήμα είναι απλό και εκτελέσιμο)(κάθε βήμα είναι απλό και εκτελέσιμο) π.χ. Η εντολή «Βρες το μεγαλύτερο από 100 αριθμούς» δεν υπάρχει. Πρέπειπ.χ. Η εντολή «Βρες το μεγαλύτερο από 100 αριθμούς» δεν υπάρχει. Πρέπει να αναλυθεί σε πολλές απλούστερες εντολές, δηλ.να αναλυθεί σε πολλές απλούστερες εντολές, δηλ. Πάρε με τη σειράΠάρε με τη σειρά κάθεκάθε αριθμό, έλεγξεαριθμό, έλεγξε αν αυτός είναι ο μεγαλύτεροςαν αυτός είναι ο μεγαλύτερος και αφού τελειώσουνκαι αφού τελειώσουν εμφάνισεεμφάνισε τον.τον. ΕΙΣΟΔΟΣΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑΕΠΕΞΕΡΓΑΣΙΑ ΕΞΟΔΟΣΕΞΟΔΟΣ
  20. 20. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ Η Πληροφορική μελετά τους αλγορίθμους από τιςΗ Πληροφορική μελετά τους αλγορίθμους από τις ακόλουθες σκοπιές :ακόλουθες σκοπιές : Του υλικούΤου υλικού  Επηρεάζεται η εκτέλεση ενός προγράμματος απόΕπηρεάζεται η εκτέλεση ενός προγράμματος από την απόδοση ή την αρχιτεκτονική του υλικού;την απόδοση ή την αρχιτεκτονική του υλικού; Των γλωσσών προγραμματισμούΤων γλωσσών προγραμματισμού  Αν κάποια γλώσσα μπορεί να υποστηρίξει τονΑν κάποια γλώσσα μπορεί να υποστηρίξει τον αλγόριθμο, ή χρειάζονται περισσότερες εντολέςαλγόριθμο, ή χρειάζονται περισσότερες εντολές ΘεωρητικήΘεωρητική  Αν υπάρχει κάποιος αποδοτικός αλγόριθμος για τηΑν υπάρχει κάποιος αποδοτικός αλγόριθμος για τη λύση ενός προβλήματοςλύση ενός προβλήματος ΑναλυτικήΑναλυτική  Μελετώνται οι πόροι που απαιτούνται από ένανΜελετώνται οι πόροι που απαιτούνται από έναν αλγόριθμο (μνήμη, χρόνος, είσοδος/έξοδος, κλπ)αλγόριθμο (μνήμη, χρόνος, είσοδος/έξοδος, κλπ)
  21. 21. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΩΝΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΩΝ Με ελεύθερο κείμενοΜε ελεύθερο κείμενο (free text)(free text) Δεν είναι αποτελεσματικός γιατί επιδέχεται παρανόησηΔεν είναι αποτελεσματικός γιατί επιδέχεται παρανόηση Με διαγράμματαΜε διαγράμματα ροήςροής (flow charts)(flow charts) Σπανίζουν ωστόσο, γιατί είναι δύσχρηστα καιΣπανίζουν ωστόσο, γιατί είναι δύσχρηστα και καταλαμβάνουν πολύ χώρο. Παρόλα αυτά, μπορείτε νακαταλαμβάνουν πολύ χώρο. Παρόλα αυτά, μπορείτε να τα χρησιμοποιήσετε.τα χρησιμοποιήσετε. Με ψευδοκώδικα (Με ψευδοκώδικα (pseudocode)pseudocode) Μια υποθετική γλώσσαΜια υποθετική γλώσσα ((ψευδοκώδικας), πιο κοντά στηψευδοκώδικας), πιο κοντά στη φυσική γλώσσα, αλλά με συγκεκριμένη σύνταξη καιφυσική γλώσσα, αλλά με συγκεκριμένη σύνταξη και δομή, που όταν εκτελεστεί θα δώσει τα ίδιαδομή, που όταν εκτελεστεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.αποτελέσματα με τον αλγόριθμο.
  22. 22. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΟΡΙΘΜΟΣ ΜΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟΑΛΓΟΡΙΘΜΟΣ ΜΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ (παράδειγμα)(παράδειγμα) ΕΙΣΟΔΟΣΕΙΣΟΔΟΣ: Δύο αριθμοί Α και Β: Δύο αριθμοί Α και Β ΕΞΟΔΟΣΕΞΟΔΟΣ: Πηλίκο της διαίρεσής: Πηλίκο της διαίρεσής Α/ΒΑ/Β αρκείαρκεί ΒΒ ≠ 0≠ 0 1.1. Κάνε εισαγωγή του Α και του ΒΚάνε εισαγωγή του Α και του Β 2.2. Έλεγξε αν ο ΒΈλεγξε αν ο Β ≠≠ 00 3.3. Αν ναι, υπολόγισε το αποτέλεσμα Α / Β καιΑν ναι, υπολόγισε το αποτέλεσμα Α / Β και τοποθέτησέ το στοτοποθέτησέ το στο ΧΧ και εμφάνισέ τοκαι εμφάνισέ το 4.4. Αλλιώς, εμφάνισε το μήνυμα «ΛΑΘΟΣ στο Β»Αλλιώς, εμφάνισε το μήνυμα «ΛΑΘΟΣ στο Β»
  23. 23. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΟΡΙΘΜΟΣ ΜΕ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣΑΛΓΟΡΙΘΜΟΣ ΜΕ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ (παράδειγμα)(παράδειγμα) ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ ΔιάβασεΔιάβασε Α και ΒΑ και Β ΧΧ  Α / ΒΑ / Β Εκτύπωσε ΧΕκτύπωσε Χ ΒΒ ≠ 0 ;≠ 0 ; ΝΑΙΝΑΙΟΧΙΟΧΙ ΕκτύπωσεΕκτύπωσε «ΛΑΘΟΣ στο Β»«ΛΑΘΟΣ στο Β» ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ ΙΣΧΥΕΙ ΗΙΣΧΥΕΙ Η ΣΥΝΘΗΚΗ;ΣΥΝΘΗΚΗ; ΝΑΙΝΑΙΟΧΙΟΧΙ ΕίσοδοςΕίσοδος ήή ΈξοδοςΈξοδος ΕκτέλεσηΕκτέλεση ενέργειαςενέργειας Δηλώνει την αρχή ήΔηλώνει την αρχή ή τέλος του αλγορίθμουτέλος του αλγορίθμου ΔιακλάδωσηΔιακλάδωση εκτέλεσης οδηγιώνεκτέλεσης οδηγιών του αλγορίθμουτου αλγορίθμου Είσοδος ήΕίσοδος ή έξοδοςέξοδος δεδομένωνδεδομένων Αριθμητική πράξη,Αριθμητική πράξη, εκχώρηση τιμής, κ.λπ.εκχώρηση τιμής, κ.λπ. Όλα τα σχήματα ενώνονται μεΌλα τα σχήματα ενώνονται με γραμμές που καταλήγουν σε βέλοςγραμμές που καταλήγουν σε βέλος
  24. 24. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΟΡΙΘΜΟΣ ΜΕ ΨΕΥΔΟΚΩΔΙΚΑΑΛΓΟΡΙΘΜΟΣ ΜΕ ΨΕΥΔΟΚΩΔΙΚΑ (παράδειγμα)(παράδειγμα) ΑλγόριθμοςΑλγόριθμος ΠηλίκοΠηλίκο ΔιάβασεΔιάβασε Α, ΒΑ, Β ΑνΑν Β <> 0Β <> 0 τότετότε ΧΧ  Α / ΒΑ / Β ΕμφάνισεΕμφάνισε ΧΧ ΑλλιώςΑλλιώς ΕμφάνισεΕμφάνισε «ΛΑΘΟΣ στο Β»«ΛΑΘΟΣ στο Β» Τέλος_ανΤέλος_αν ΤέλοςΤέλος ΠηλίκοΠηλίκο
  25. 25. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΣΥΝΙΣΤΩΣΕΣΣΥΝΙΣΤΩΣΕΣ ΑΛΓΟΡΙΘΜΟΥΑΛΓΟΡΙΘΜΟΥ Δομή ακολουθίαςΔομή ακολουθίας Εκτέλεση των βημάτων τουΕκτέλεση των βημάτων του αλγορίθμου βάσει της σειράςαλγορίθμου βάσει της σειράς εμφάνισης τους. Στο εξής ταεμφάνισης τους. Στο εξής τα βήματα θα τα ονομάζουμεβήματα θα τα ονομάζουμε εντολέςεντολές Δομές επιλογής (4)Δομές επιλογής (4) Η εκτέλεση των εντολώνΗ εκτέλεση των εντολών διακλαδώνεται με βάση τηνδιακλαδώνεται με βάση την επαλήθευση ή όχι, κάποιαςεπαλήθευση ή όχι, κάποιας συνθήκης.συνθήκης. Δομές επανάληψης (3)Δομές επανάληψης (3) Η εκτέλεση των εντολών μπορεί ναΗ εκτέλεση των εντολών μπορεί να γίνεται επαναληπτικά.γίνεται επαναληπτικά. ΔΟΜΕΣ ΕΛΕΓΧΟΥΔΟΜΕΣ ΕΛΕΓΧΟΥ Δομή ακολουθίαςΔομή ακολουθίας Δομή επιλογήςΔομή επιλογής ΑπλήΑπλή ΣύνθετηΣύνθετη ΠολλαπλήΠολλαπλή ΦωλιασμένηΦωλιασμένη Δομή επανάληψηςΔομή επανάληψης ΌσοΌσο Μέχρις ότουΜέχρις ότου ΓιαΓια
  26. 26. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΣΤΟΙΧΕΙΑ ΑΛΓΟΡΙΘΜΟΥΣΤΟΙΧΕΙΑ ΑΛΓΟΡΙΘΜΟΥ 1.1. Μεταβλητές (Μεταβλητές (variables)variables) Θέσεις μνήμης με όνομα, στις οποίες εκχωρούμε κάποια τιμή η οποία μπορείΘέσεις μνήμης με όνομα, στις οποίες εκχωρούμε κάποια τιμή η οποία μπορεί αργότερα να αλλάξει.αργότερα να αλλάξει. 2.2. ΣταθερέςΣταθερές (constants)(constants) Θέσεις μνήμης με όνομα, αλλά με προκαθορισμένη τιμή, σταθερή πάντα (π.χ.Θέσεις μνήμης με όνομα, αλλά με προκαθορισμένη τιμή, σταθερή πάντα (π.χ. Π : 3,14Π : 3,14 ήή ΦΠΑ : 21%ΦΠΑ : 21%)) 3.3. ΤελεστέςΤελεστές (operators)(operators) Είναι τα σύμβολα που χρησιμοποιούνται στην τέλεση των πράξεωνΕίναι τα σύμβολα που χρησιμοποιούνται στην τέλεση των πράξεων (+, - , * , / , < , > ,(+, - , * , / , < , > ,  ,, ΚΑΙ, Ή, ΟΧΙ, ^ ,ΚΑΙ, Ή, ΟΧΙ, ^ , MOD, DIV,MOD, DIV, κ.λπ.)κ.λπ.) 4.4. ΕντολέςΕντολές (commands)(commands) και Συναρτήσειςκαι Συναρτήσεις Είναι ειδικές δεσμευμένες λέξεις και δομές, τις οποίες χρησιμοποιούμε μεΕίναι ειδικές δεσμευμένες λέξεις και δομές, τις οποίες χρησιμοποιούμε με συγκεκριμένο συντακτικό κατά την εκτέλεση των βημάτων και άλλωνσυγκεκριμένο συντακτικό κατά την εκτέλεση των βημάτων και άλλων υπολογισμών του αλγορίθμουυπολογισμών του αλγορίθμου 5.5. Εκφράσεις/παραστάσεις (Εκφράσεις/παραστάσεις (expressions)expressions) Αποτελούνται από μεταβλητές ή σταθερές και παράγουν ένα αποτέλεσμα πουΑποτελούνται από μεταβλητές ή σταθερές και παράγουν ένα αποτέλεσμα που εκχωρείται (εκχωρείται () σε μεταβλητή.) σε μεταβλητή. Π.χ. Στη μεταβλητή Α εκχωρείται το αποτέλεσμα της έκφρασης Χ + 15 / ΥΠ.χ. Στη μεταβλητή Α εκχωρείται το αποτέλεσμα της έκφρασης Χ + 15 / Υ ΑΑ  Χ + 15 / ΥΧ + 15 / Υ 6.6. Σχόλια προγραμματιστήΣχόλια προγραμματιστή Είναι ελεύθερο κείμενο που συμπληρώνει ο προγραμματιστής σε σημεία τουΕίναι ελεύθερο κείμενο που συμπληρώνει ο προγραμματιστής σε σημεία του αλγορίθμου που τον ενδιαφέρουν, ώστε να κάνει τον αλγόριθμο πιο κατανοητό.αλγορίθμου που τον ενδιαφέρουν, ώστε να κάνει τον αλγόριθμο πιο κατανοητό. Στη «ΓΛΩΣΣΑ», πρέπει να ξεκινούν με το χαρακτήρα του θαυμαστικού (Στη «ΓΛΩΣΣΑ», πρέπει να ξεκινούν με το χαρακτήρα του θαυμαστικού (!!))
  27. 27. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 1. ΜΕΤΑΒΛΗΤΕΣ1. ΜΕΤΑΒΛΗΤΕΣ Χρησιμοποιούμε μεταβλητές όταν θέλουμε να αποθηκεύσουμε μια τιμή.Χρησιμοποιούμε μεταβλητές όταν θέλουμε να αποθηκεύσουμε μια τιμή. Οι μεταβλητές είναιΟι μεταβλητές είναι θέσεις μνήμηςθέσεις μνήμης μεμε όνομαόνομα,, τύποτύπο καικαι περιεχόμενοπεριεχόμενο  ΤοΤο όνομαόνομα μπορεί να είναι έναμπορεί να είναι ένα απλό γράμμααπλό γράμμα ήή μια μόνο λέξημια μόνο λέξη και δεν μπορεί να αρχίζει με αριθμό ή άλλο σύμβολο. Το μόνο επιτρεπτό σύμβολοκαι δεν μπορεί να αρχίζει με αριθμό ή άλλο σύμβολο. Το μόνο επιτρεπτό σύμβολο είναι η κάτω παύλα ( _ ) για χρήση ανάμεσα στα γράμματα του όνοματοςείναι η κάτω παύλα ( _ ) για χρήση ανάμεσα στα γράμματα του όνοματος π.χ. Επώνυμο, ΑΒ_Κ1π.χ. Επώνυμο, ΑΒ_Κ122,, StatusStatus , Χ, Υποχρεωτικό, Χ, Υποχρεωτικό Μέσος όρος,1ΑΒ, @Μέσος όρος,1ΑΒ, @335Επώνυμο5Επώνυμο ****** Επίσης, οι μεταβλητές απαγορεύεται να ονομάζονται χρησιμοποιώνταςΕπίσης, οι μεταβλητές απαγορεύεται να ονομάζονται χρησιμοποιώντας δεσμευμένες λέξεις (π.χ. Αλγόριθμος)δεσμευμένες λέξεις (π.χ. Αλγόριθμος) ******  ΤύποςΤύπος, είναι το είδος των πιθανών τιμών που μπορεί να λάβει η μεταβλητή, είναι το είδος των πιθανών τιμών που μπορεί να λάβει η μεταβλητή π.χ. Ακέραιος, δεκαδικός, κείμενο (χαρακτήρας/αλφαριθμητικό),π.χ. Ακέραιος, δεκαδικός, κείμενο (χαρακτήρας/αλφαριθμητικό), λογική τιμή (δηλ. «Αληθές» ή «Ψευδές») κ.λπ.λογική τιμή (δηλ. «Αληθές» ή «Ψευδές») κ.λπ. Σημ.: Ορίζουμε τον τύπο όταν γράφουμε σεΣημ.: Ορίζουμε τον τύπο όταν γράφουμε σε γλώσσα προγραμματισμού (π.χ. «ΓΛΩΣΣΑ»). Όχι σε αλγόριθμο.γλώσσα προγραμματισμού (π.χ. «ΓΛΩΣΣΑ»). Όχι σε αλγόριθμο.  ΤιμήΤιμή, είναι το περιεχόμενο της μεταβλητής, είναι το περιεχόμενο της μεταβλητής π.χ. 50, 45.23 , «ΝΙΚΟΣ», ΑΛΗΘΕΣπ.χ. 50, 45.23 , «ΝΙΚΟΣ», ΑΛΗΘΕΣ Κάθε μεταβλητή μπορεί να έχει μόνο μια τιμή τη φορά.Κάθε μεταβλητή μπορεί να έχει μόνο μια τιμή τη φορά. >>>>>> Αν θέσουμε νέα τιμή, η προηγούμενη αντικαθίσταταιΑν θέσουμε νέα τιμή, η προηγούμενη αντικαθίσταται. <<<. <<< ΣΩΣΤΕΣΣΩΣΤΕΣ ΛΑΘΟΣΛΑΘΟΣ
  28. 28. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 1. ΜΕΤΑΒΛΗΤΕΣ1. ΜΕΤΑΒΛΗΤΕΣ ((παραδείγματα)παραδείγματα) 1.1. Εκχώρηση της τιμής «Εκχώρηση της τιμής «ΑΙΘΡΙΟΣΑΙΘΡΙΟΣ ΚΑΙΡΟΣΚΑΙΡΟΣ», στη», στη μεταβλητή με όνομαμεταβλητή με όνομα StatusStatus StatusStatus  ““ΑΙΘΡΙΟΣ ΚΑΙΡΟΣΑΙΘΡΙΟΣ ΚΑΙΡΟΣ”” 2.2. Εκχώρηση της τιμήςΕκχώρηση της τιμής 200200, στη μεταβλητή με, στη μεταβλητή με όνομαόνομα Y3Y3 Y3Y3  200200 3.3. Εκχώρηση του αποτελέσματος της έκφρασηςΕκχώρηση του αποτελέσματος της έκφρασης Υ3 + 100,Υ3 + 100, στη μεταβλητήστη μεταβλητή ΧΧ, δηλαδή ό,τι, δηλαδή ό,τι περιέχει η μεταβλητήπεριέχει η μεταβλητή Υ3Υ3 συνσυν 100100 ΧΧ  Υ3 + 1Υ3 + 10000 4.4. ΑύξησηΑύξηση της τιμήςτης τιμής Υ3Υ3 κατάκατά 11. Υπολογίζεται. Υπολογίζεται πρώτα η έκφρασηπρώτα η έκφραση Υ3 + 1Υ3 + 1 με την τρέχουσα τιμήμε την τρέχουσα τιμή της Υ3 και εκχωρείται το αποτέλεσμα πάλι στηντης Υ3 και εκχωρείται το αποτέλεσμα πάλι στην Υ3Υ3 Υ3Υ3  Υ3 + 1Υ3 + 1 200200Y3Y3 330000ΧΧ ΑΙΘΡΙΟΣ ΚΑΙΡΟΣΑΙΘΡΙΟΣ ΚΑΙΡΟΣStatusStatus 202011Y3Y3 Η εκχώρηση τιμής σε μεταβλητή γίνεται με τον τελεστήΗ εκχώρηση τιμής σε μεταβλητή γίνεται με τον τελεστή  δηλ. από τα δεξιά προς τα αριστεράδηλ. από τα δεξιά προς τα αριστερά
  29. 29. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 2. ΣΤΑΘΕΡΕΣ2. ΣΤΑΘΕΡΕΣ ΟιΟι σταθερέςσταθερές, μοιάζουν με τις μεταβλητές,, μοιάζουν με τις μεταβλητές, στο ότι είναι κι αυτέςστο ότι είναι κι αυτές θέσεις μνήμηςθέσεις μνήμης με όνομαμε όνομα και περιεχόμενο. Ο τύπος υπονοείται βάσει της αρχικής τιμής.και περιεχόμενο. Ο τύπος υπονοείται βάσει της αρχικής τιμής. Η τιμή αυτή όμως είναι πάνταΗ τιμή αυτή όμως είναι πάντα σταθερήσταθερή σε όλο τον αλγόριθμο καισε όλο τον αλγόριθμο και είναι προκαθορισμένη στην αρχή (πριν τις δηλώσεις μεταβλητών).είναι προκαθορισμένη στην αρχή (πριν τις δηλώσεις μεταβλητών). Η εκχώρηση τιμής σε σταθερές γίνεται με το σύμβολοΗ εκχώρηση τιμής σε σταθερές γίνεται με το σύμβολο ((==),), π.χ. Π=3.14π.χ. Π=3.14 ΑντίΑντί λοιπόν της ίδιας τηςλοιπόν της ίδιας της τιμήςτιμής της σταθεράς, μπορούμε νατης σταθεράς, μπορούμε να χρησιμοποιήσουμε τοχρησιμοποιήσουμε το όνομαόνομα της (πολύ βολικό αν την αναφέρουμετης (πολύ βολικό αν την αναφέρουμε σε διάφορα σημεία στον αλγόριθμο)σε διάφορα σημεία στον αλγόριθμο) Αν τυχόν αργότερα αποφασίσουμε ότι, η αρχική τιμή της σταθεράςΑν τυχόν αργότερα αποφασίσουμε ότι, η αρχική τιμή της σταθεράς πρέπει να είναι άλλη, θα κάνουμε τη ρύθμιση αυτήπρέπει να είναι άλλη, θα κάνουμε τη ρύθμιση αυτή μόνο μια φοράμόνο μια φορά στην αρχήστην αρχή και όχι σε κάθε σημείο που θα χρησιμοποιούσαμε τηνκαι όχι σε κάθε σημείο που θα χρησιμοποιούσαμε την τιμή της.τιμή της. Το παρακάτω παράδειγμα είναι απολύτως αντιπροσωπευτικό:Το παρακάτω παράδειγμα είναι απολύτως αντιπροσωπευτικό: 21%21%Π.χ. ΦΠΑΠ.χ. ΦΠΑ
  30. 30. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 2. ΣΤΑΘΕΡΕΣ2. ΣΤΑΘΕΡΕΣ (παράδειγμα)(παράδειγμα) Έστω ότι πρέπει να υπολογίσουμε το ποσό που αντιστοιχεί στο ποσοστό ΦΠΑ (21%) τριών προϊόντων. Αυτό προκύπτει ανΈστω ότι πρέπει να υπολογίσουμε το ποσό που αντιστοιχεί στο ποσοστό ΦΠΑ (21%) τριών προϊόντων. Αυτό προκύπτει αν πολλαπλασσιάσουμε την αρχική αξία του κάθε προϊόντος, με το αντίστοιχο ποσοστό ΦΠΑ (πολλαπλασσιάσουμε την αρχική αξία του κάθε προϊόντος, με το αντίστοιχο ποσοστό ΦΠΑ (Αρχική_αξίαΑρχική_αξία xx ποσοστό_ΦΠΑποσοστό_ΦΠΑ)) ΦΠΑ_παπουτσιώνΦΠΑ_παπουτσιών  50.0050.00 xx 0.210.21 ΦΠΑ_παντελονιώνΦΠΑ_παντελονιών  60.0060.00 xx 0.210.21 ΦΠΑ_παλτόΦΠΑ_παλτό  150.00150.00 xx 0.210.21 Παρατηρείτε ότι τοΠαρατηρείτε ότι το 0.210.21 χρησιμοποιείταιχρησιμοποιείται 3 φορές3 φορές στον παραπάνω αλγόριθμο. Αν αλλάξει η νομοθεσία και το ποσοστό γίνειστον παραπάνω αλγόριθμο. Αν αλλάξει η νομοθεσία και το ποσοστό γίνει 0.230.23, τότε, τότε πρέπει να κάνουμε την αλλαγή και στα 3 σημεία.πρέπει να κάνουμε την αλλαγή και στα 3 σημεία. ΑυτόΑυτό δεν είναι ευέλικτοδεν είναι ευέλικτο και σε μεγάλες εφαρμογέςκαι σε μεγάλες εφαρμογές οδηγεί σεοδηγεί σε πολλά σφάλματαπολλά σφάλματα.. Μπορούμε να αλλάξουμε τον αλγόριθμο εισάγοντας μιαΜπορούμε να αλλάξουμε τον αλγόριθμο εισάγοντας μια σταθεράσταθερά για τον ΦΠΑ:για τον ΦΠΑ: Ποσοστό_ΦΠΑ = 0.21Ποσοστό_ΦΠΑ = 0.21 ΦΠΑ_παπουτσιώνΦΠΑ_παπουτσιών  50.0050.00 xx Ποσοστό_ΦΠΑΠοσοστό_ΦΠΑ ΦΠΑ_παντελονιώνΦΠΑ_παντελονιών  60.0060.00 xx Ποσοστό_ΦΠΑΠοσοστό_ΦΠΑ ΦΠΑ_παλτόΦΠΑ_παλτό  150.00150.00 xx Ποσοστό_ΦΠΑΠοσοστό_ΦΠΑ Αν το ποσοστό ΦΠΑ αλλάξει σε 0.23, αρκεί να κάνουμε την αλλαγή μόνο μία φορά στην αρχή του αλγορίθμου,Αν το ποσοστό ΦΠΑ αλλάξει σε 0.23, αρκεί να κάνουμε την αλλαγή μόνο μία φορά στην αρχή του αλγορίθμου, αφού χρησιμοποιούμε μόνο το όνομα της σταθεράςαφού χρησιμοποιούμε μόνο το όνομα της σταθεράς Χρήση ονόματος τηςΧρήση ονόματος της σταθεράςσταθεράς Σταθερά με αρχική τιμήΣταθερά με αρχική τιμή
  31. 31. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 3. ΤΕΛΕΣΤΕΣ3. ΤΕΛΕΣΤΕΣ Οι τελεστές είναι ταΟι τελεστές είναι τα σύμβολασύμβολα τα οποία χρησιμοποιούμε σε διάφορεςτα οποία χρησιμοποιούμε σε διάφορες εκφράσεις για να εκτελέσουμε κάποιον υπολογισμό.εκφράσεις για να εκτελέσουμε κάποιον υπολογισμό. ΤΕΛΕΣΤΗΣΤΕΛΕΣΤΗΣ ΕΠΕΞΗΓΗΣΗΕΠΕΞΗΓΗΣΗ ΠΑΡΑΔΕΙΓΜΑΠΑΡΑΔΕΙΓΜΑ  ΕΚΧΩΡΗΣΗ ΤΙΜΗΣ ΣΕ ΜΕΤΑΒΛΗΤΗΕΚΧΩΡΗΣΗ ΤΙΜΗΣ ΣΕ ΜΕΤΑΒΛΗΤΗ Χ1Χ1  1010 ((Χ1: 10)Χ1: 10) ++ ΠΡΟΣΘΕΣΗΠΡΟΣΘΕΣΗ Χ1Χ1  1010 ++ 2020 (Χ1: 30)(Χ1: 30) -- ΑΦΑΙΡΕΣΗΑΦΑΙΡΕΣΗ Χ1Χ1  1010 –– 2020 (Χ1: -10)(Χ1: -10) ** ΠΟΛΛΑΠΛΑΣΣΙΑΣΜΟΣΠΟΛΛΑΠΛΑΣΣΙΑΣΜΟΣ Χ1Χ1  1010 ** 2020 (Χ1: 200)(Χ1: 200) // ΔΙΑΙΡΕΣΗΔΙΑΙΡΕΣΗ Χ1Χ1  1010 // 22 (Χ1: 5)(Χ1: 5) ^^ ΥΨΩΣΗ ΣΕ ΔΥΝΑΜΗΥΨΩΣΗ ΣΕ ΔΥΝΑΜΗ Χ1Χ1  1010 ^^ 22 (Χ1: 100)(Χ1: 100) DIVDIV ΠΗΛΙΚΟ ΑΚΕΡΑΙΑΣ ΔΙΑΙΡΕΣΗΠΗΛΙΚΟ ΑΚΕΡΑΙΑΣ ΔΙΑΙΡΕΣΗ Χ1Χ1  1010 DIVDIV 33 (Χ1:(Χ1: 33)) MODMOD ΥΠΟΛΟΙΠΟ ΑΚΕΡΑΙΑΣ ΔΙΑΙΡΕΣΗΣΥΠΟΛΟΙΠΟ ΑΚΕΡΑΙΑΣ ΔΙΑΙΡΕΣΗΣ Χ1Χ1  1010 MODMOD 33 (Χ1:(Χ1: 11)) < , <=< , <= ΜΙΚΡΟΤΕΡΟ, ΜΙΚΡΟΤΕΡΟ ‘Η ΙΣΟΜΙΚΡΟΤΕΡΟ, ΜΙΚΡΟΤΕΡΟ ‘Η ΙΣΟ Χ1Χ1  ((55 << 7)7) (Χ1: ΑΛΗΘΕΣ)(Χ1: ΑΛΗΘΕΣ) > , >=> , >= ΜΕΓΑΛΥΤΕΡΟ, ΜΕΓΑΛΥΤΕΡΟ ‘Η ΙΣΟΜΕΓΑΛΥΤΕΡΟ, ΜΕΓΑΛΥΤΕΡΟ ‘Η ΙΣΟ Χ1Χ1  ((55 >=>= 7)7) (Χ1: ΨΕΥΔΕΣ)(Χ1: ΨΕΥΔΕΣ) = , <>= , <> ΙΣΟ ΜΕ , ΔΙΑΦΟΡΟ ΤΟΥΙΣΟ ΜΕ , ΔΙΑΦΟΡΟ ΤΟΥ Χ1Χ1  ((55 <><> 7)7) (Χ1: ΑΛΗΘΕΣ)(Χ1: ΑΛΗΘΕΣ) ΚΑΙΚΑΙ ΣΥΖΕΥΞΗ ΛΟΓΙΚΩΝ ΤΙΜΩΝ (Α / Ψ)ΣΥΖΕΥΞΗ ΛΟΓΙΚΩΝ ΤΙΜΩΝ (Α / Ψ) Χ1Χ1  (4 > 3)(4 > 3) ΚΑΙΚΑΙ (6 < 2)(6 < 2) (Χ1: ΨΕΥΔΕΣ)(Χ1: ΨΕΥΔΕΣ) ΉΉ ΔΙΑΖΕΥΞΗ ΛΟΓΙΚΩΝ ΤΙΜΩΝ (Α / Ψ)ΔΙΑΖΕΥΞΗ ΛΟΓΙΚΩΝ ΤΙΜΩΝ (Α / Ψ) Χ1Χ1  (4 > 3)(4 > 3) ΉΉ (6 < 2)(6 < 2) (Χ1: ΑΛΗΘΕΣ)(Χ1: ΑΛΗΘΕΣ) ΌΧΙΌΧΙ ΑΡΝΗΣΗ ΛΟΓΙΚΗΣ ΤΙΜΗΣ (Α / Ψ)ΑΡΝΗΣΗ ΛΟΓΙΚΗΣ ΤΙΜΗΣ (Α / Ψ) Χ1Χ1  ΌΧΙΌΧΙ (4 < 3)(4 < 3) (Χ1: ΑΛΗΘΕΣ)(Χ1: ΑΛΗΘΕΣ)
  32. 32. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΤΡΟΠΟΣ ΣΥΝΤΑΞΗΣ ΕΝΤΟΛΗΣΤΡΟΠΟΣ ΣΥΝΤΑΞΗΣ ΕΝΤΟΛΗΣ ΤΙ ΚΑΝΕΙ Η ΕΝΤΟΛΗΤΙ ΚΑΝΕΙ Η ΕΝΤΟΛΗ ΠΑΡΑΔΕΙΓΜΑΠΑΡΑΔΕΙΓΜΑ ΑλγόριθμοςΑλγόριθμος όνομα_αλγορίθμουόνομα_αλγορίθμου Δήλωση αρχής αλγορίθμουΔήλωση αρχής αλγορίθμου ΑλγόριθμοςΑλγόριθμος ΜΟΜΟ ΤέλοςΤέλος όνομα_αλγορίθμουόνομα_αλγορίθμου Δήλωση τέλους αλγορίθμουΔήλωση τέλους αλγορίθμου ΤέλοςΤέλος ΜΟΜΟ ΔιάβασεΔιάβασε μεταβλητή1, μεταβλητή2μεταβλητή1, μεταβλητή2 ΕίσοδοςΕίσοδος δεδομένων από τοδεδομένων από το χρήστη σε μεταβλητέςχρήστη σε μεταβλητές ΔιάβασεΔιάβασε Χ1, Χ2Χ1, Χ2 Εμφάνισε/εκτύπωσεΕμφάνισε/εκτύπωσε μεταβλητή1 ,μεταβλητή1 , μεταβλητή2μεταβλητή2 ΕμφάνισηΕμφάνιση τιμής μεταβλητής σετιμής μεταβλητής σε οθόνη/εκτυπωτήοθόνη/εκτυπωτή ΕμφάνισεΕμφάνισε Χ1, Χ2Χ1, Χ2 ΕκτύπωσεΕκτύπωσε Χ2Χ2 ΑνΑν μια_συνθήκη_ισχύειμια_συνθήκη_ισχύει τότετότε εκτέλεση ομάδας εντολώνεκτέλεση ομάδας εντολών αλλιώςαλλιώς εκτέλεση άλλης ομάδας εντολώνεκτέλεση άλλης ομάδας εντολών τέλος_αντέλος_αν ΔιακλάδωσηΔιακλάδωση της εκτέλεσης τουτης εκτέλεσης του αλγορίθμου προς τη μια ή τηναλγορίθμου προς τη μια ή την άλλη ομάδα εντολών, ανάλογαάλλη ομάδα εντολών, ανάλογα με τη συνθήκημε τη συνθήκη ΑνΑν χ = 5χ = 5 τότετότε yy  1010 αλλιώςαλλιώς yy  2020 τέλος_αντέλος_αν ΌσοΌσο μια_συνθήκη_ισχύειμια_συνθήκη_ισχύει επανάλαβεεπανάλαβε εκτέλεση διάφορων εντολώνεκτέλεση διάφορων εντολών τέλοςτέλος__επανάληψηςεπανάληψης Επαναληπτική εκτέλεση τωνΕπαναληπτική εκτέλεση των εντολώνεντολών ΟΣΟΟΣΟ ισχύει η συνθήκηισχύει η συνθήκη ΌσοΌσο χχ << 55 επανάλαβεεπανάλαβε χχ  χχ + 1+ 1 τέλος_επανάληψηςτέλος_επανάληψης ΑρχήΑρχή__επανάληψηςεπανάληψης εκτέλεση διάφορων εντολώνεκτέλεση διάφορων εντολών Μέχρις_ότουΜέχρις_ότου μια_συνθήκη_ισχύσειμια_συνθήκη_ισχύσει Επαναληπτική εκτέλεση τωνΕπαναληπτική εκτέλεση των εντολώνεντολών ΜΕΧΡΙΜΕΧΡΙ να ισχύσει ηνα ισχύσει η συνθήκησυνθήκη Αρχή_επανάληψηςΑρχή_επανάληψης χχ  χχ +1+1 μέχρις_ότουμέχρις_ότου χ = 5χ = 5 ΓιαΓια μεταβλητή1μεταβλητή1 απόαπό ΧΧ μέχριμέχρι ΥΥ εκτέλεση διάφορων εντολώνεκτέλεση διάφορων εντολών τέλοςτέλος__επανάληψηςεπανάληψης Επαναληπτική εκτέλεση τωνΕπαναληπτική εκτέλεση των εντολών γιαεντολών για ΣΥΓΚΕΚΡΙΜΕΝΟΣΥΓΚΕΚΡΙΜΕΝΟ πλήθος επαναλήψεωνπλήθος επαναλήψεων ΓιαΓια ii απόαπό 11 μέχριμέχρι 1010 χχ  χχ ++ 55 τέλος_επανάληψηςτέλος_επανάληψης 4. ΕΝΤΟΛΕΣ4. ΕΝΤΟΛΕΣ ( Συνοπτικός πίνακας σύνταξης τους )( Συνοπτικός πίνακας σύνταξης τους )
  33. 33. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΣΥΝΑΡΤΗΣΕΙΣ4. ΣΥΝΑΡΤΗΣΕΙΣ (Ενσωματωμένες)(Ενσωματωμένες) Οι ενσωματωμένες συναρτήσεις έχουν τηνΟι ενσωματωμένες συναρτήσεις έχουν την ίδια χρήσηίδια χρήση όπως και σταόπως και στα μαθηματικά.μαθηματικά. Μπορούν να χρησιμοποιηθούν συνδυαστικά. Π.χ :Μπορούν να χρησιμοποιηθούν συνδυαστικά. Π.χ : ΖΖ  ΗΜΗΜ (( ΣΥΝ (ΣΥΝ ( ΧΧ )) ++ Α_Μ (Α_Μ ( ΥΥ ) )) ) + 50+ 50 ΣΥΝΑΡΤΗΣΗΣΥΝΑΡΤΗΣΗ ΕΠΕΞΗΓΗΣΗΕΠΕΞΗΓΗΣΗ ΠΑΡΑΔΕΙΓΜΑΠΑΡΑΔΕΙΓΜΑ ΑΠΟΤΕΛΕΣΜΑΑΠΟΤΕΛΕΣΜΑ ΗΜ(ΗΜ(ΧΧ)) Υπολογισμός ημιτόνουΥπολογισμός ημιτόνου ΥΥ  ΗΜ(ΗΜ(200200)) Υ = 0.71Υ = 0.71 ΣΥΝ(ΣΥΝ(ΧΧ)) Υπολογισμός συνημιτόνουΥπολογισμός συνημιτόνου ΥΥ  ΣΥΝ(ΣΥΝ(5050)) Υ = 0.64Υ = 0.64 ΕΦ(ΕΦ(ΧΧ)) Υπολογισμός εφαπτομένηςΥπολογισμός εφαπτομένης ΥΥ  ΕΦ(ΕΦ(4545)) Υ = 1.73Υ = 1.73 Τ_Ρ(Τ_Ρ(ΧΧ)) Υπολογισμός τετραγωνικής ρίζαςΥπολογισμός τετραγωνικής ρίζας ΥΥ  Τ_Ρ(Τ_Ρ(1616)) Υ = 4Υ = 4 ΛΟΓ(ΛΟΓ(ΧΧ)) Υπολογισμός φυσικού λογάριθμουΥπολογισμός φυσικού λογάριθμου ΥΥ  ΛΟΓ(ΛΟΓ(4040)) Υ = 3.69Υ = 3.69 Ε(Ε(ΧΧ)) ΥπολογισμόςΥπολογισμός eexx ΥΥ  Ε(Ε(33)) Υ = 20.09Υ = 20.09 Α_Μ(Α_Μ(ΧΧ)) Ακέραιο μέρος του ΧΑκέραιο μέρος του Χ ΥΥ  Α_Μ(Α_Μ(32,632,6)) Υ = 32Υ = 32 Α_Τ(Α_Τ(ΧΧ)) Απόλυτη τιμή του ΧΑπόλυτη τιμή του Χ ΥΥ  Α_Τ(Α_Τ(-5-5)) Υ = 5Υ = 5
  34. 34. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΠΩΣ ΓΡΑΦΟΥΜΕ ΑΛΓΟΡΙΘΜΟ ΜΕΠΩΣ ΓΡΑΦΟΥΜΕ ΑΛΓΟΡΙΘΜΟ ΜΕ ΨΕΥΔΟΚΩΔΙΚΑΨΕΥΔΟΚΩΔΙΚΑ (Γενική θεώρηση)(Γενική θεώρηση) 1.1. Ξεκινάμε πάντα με τη δήλωση:Ξεκινάμε πάντα με τη δήλωση: ΑλγόριθμοςΑλγόριθμος όνομα_αλγορίθμουόνομα_αλγορίθμου 2.2. Αρχικοποιούμε τυχόν σταθερέςΑρχικοποιούμε τυχόν σταθερές.. 3.3. ΔίνουμεΔίνουμε τιμήτιμή στις απαραίτητες μεταβλητές,στις απαραίτητες μεταβλητές, είτε με την εντολήείτε με την εντολή ΔιάβασεΔιάβασε,, είτε μεείτε με απ’ ευθείας εκχώρηση (απ’ ευθείας εκχώρηση ().). 4.4. Χρησιμοποιούμε όπου χρειάζεται δομέςΧρησιμοποιούμε όπου χρειάζεται δομές διακλάδωσης (διακλάδωσης (ΑνΑν ), και δομές επανάληψης), και δομές επανάληψης Για , Όσο, Μέχρις_ότουΓια , Όσο, Μέχρις_ότου)) 5.5. Κάνουμε τους υπολογισμούς μαςΚάνουμε τους υπολογισμούς μας εκχωρώντας τα αποτελέσματα πάλι σεεκχωρώντας τα αποτελέσματα πάλι σε μεταβλητές (μεταβλητές ()) 6.6. ΕμφανίζουμεΕμφανίζουμε ((σε οθόνη ή εκτυπωτή) τασε οθόνη ή εκτυπωτή) τα αποτελέσματα με τις εντολές:αποτελέσματα με τις εντολές: ΕμφάνισεΕμφάνισε ήή εκτύπωσεεκτύπωσε μεταβλητή1,2...Νμεταβλητή1,2...Ν 7.7. Τα βήματα 2 ως 6 μπορεί ναΤα βήματα 2 ως 6 μπορεί να εμφανίζονταιεμφανίζονται αρκετές φορέςαρκετές φορές και μεκαι με οποιαδήποτεοποιαδήποτε σειρά,σειρά, ανάλογα με το πρόβλημαανάλογα με το πρόβλημα 8.8. Τελειώνουμε πάντα με τη δήλωσηΤελειώνουμε πάντα με τη δήλωση ΤέλοςΤέλος όνομα_αλγορίθμουόνομα_αλγορίθμου ((ίδιο όνομα με τοίδιο όνομα με το βήμα 1)βήμα 1) ΑλγόριθμοςΑλγόριθμος εμβαδό_κύκλουεμβαδό_κύκλου π = 3.14π = 3.14 ΔιάβασεΔιάβασε ρρ ΕμβΕμβ  π * ρ ^ 2π * ρ ^ 2 ΕμφάνισεΕμφάνισε “E“Eμβαδό=μβαδό=“,“,ΕμβΕμβ ΤέλοςΤέλος εμβαδό_κύκλουεμβαδό_κύκλου ΠαράδειγμαΠαράδειγμα
  35. 35. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΠΩΣ ΓΡΑΦΟΥΜΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑΠΩΣ ΓΡΑΦΟΥΜΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΣΕ «ΓΛΩΣΣΑ»ΣΕ «ΓΛΩΣΣΑ» (Γενική θεώρηση)(Γενική θεώρηση) 1.1. Ξεκινάμε πάντα με τη δήλωση:Ξεκινάμε πάντα με τη δήλωση: ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ όνομα_προγράμματοςόνομα_προγράμματος 2.2. Μετά γράφουμε (αν υπάρχουν) τις σταθερές με τηΜετά γράφουμε (αν υπάρχουν) τις σταθερές με τη δήλωση:δήλωση: ΣΤΑΘΕΡΕΣΣΤΑΘΕΡΕΣ και από την επόμενη γραμμήκαι από την επόμενη γραμμή τις αρχικοποιούμε,τις αρχικοποιούμε, χρήση του ίσον (=)χρήση του ίσον (=) 3.3. Μετά δηλώνουμε τις μεταβλητές με τη δήλωση:Μετά δηλώνουμε τις μεταβλητές με τη δήλωση: ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ και από την επόμενη γραμμή τιςκαι από την επόμενη γραμμή τις ονομάζουμε, δίνοντας και τονονομάζουμε, δίνοντας και τον τύποτύπο τουςτους 4.4. Ξεκινούμε το κύριο σώμα του προγράμματοςΞεκινούμε το κύριο σώμα του προγράμματος με τη δήλωση:με τη δήλωση: ΑΡΧΗΑΡΧΗ 5.5. ΔίνουμεΔίνουμε τιμήτιμή στις απαραίτητες μεταβλητές,στις απαραίτητες μεταβλητές, είτε με την εντολήείτε με την εντολή ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ,, είτε μεείτε με απ’ ευθείας εκχώρηση (απ’ ευθείας εκχώρηση (), όχι και με τους δύο), όχι και με τους δύο τρόπους ταυτόχρονα.τρόπους ταυτόχρονα. 6.6. Χρησιμοποιούμε όπου χρειάζεται δομέςΧρησιμοποιούμε όπου χρειάζεται δομές διακλάδωσης (διακλάδωσης (ΑΝΑΝ ) και δομές επανάληψης) και δομές επανάληψης ((ΓΙΑ , ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥΓΙΑ , ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ)) 7.7. Κάνουμε τους υπολογισμούς μας εκχωρώνταςΚάνουμε τους υπολογισμούς μας εκχωρώντας τα αποτελέσματα πάλι σε μεταβλητές (τα αποτελέσματα πάλι σε μεταβλητές ()) 8.8. Εμφανίζουμε τα αποτελέσματα με τις εντολές:Εμφανίζουμε τα αποτελέσματα με τις εντολές: ΓΡΑΨΕΓΡΑΨΕ μεταβλητή1,2...Νμεταβλητή1,2...Ν 9.9. Τελειώνουμε το κύριο σώμα του προγράμματοςΤελειώνουμε το κύριο σώμα του προγράμματος με τη δήλωση:με τη δήλωση: ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ εμβαδό_κύκλουεμβαδό_κύκλου ΣΤΑΘΕΡΕΣΣΤΑΘΕΡΕΣ π = 3.14π = 3.14 ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣΠΡΑΓΜΑΤΙΚΕΣ: Εμβ, ρ: Εμβ, ρ ΑΡΧΗΑΡΧΗ ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ ρρ ΕμβΕμβ  π * ρ ^ 2π * ρ ^ 2 ΓΡΑΨΕΓΡΑΨΕ “E“Eμβαδό=μβαδό=“,“,ΕμβΕμβ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠαράδειγμαΠαράδειγμα Τα κεφαλαία γράμματα στιςΤα κεφαλαία γράμματα στις εντολές δεν είναι υποχρεωτικάεντολές δεν είναι υποχρεωτικά αλλά ΣΥΝΙΣΤΩΝΤΑΙαλλά ΣΥΝΙΣΤΩΝΤΑΙ
  36. 36. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΔΙΑΦΟΡΕΣ ΣΤΗ ΣΥΓΓΡΑΦΗΔΙΑΦΟΡΕΣ ΣΤΗ ΣΥΓΓΡΑΦΗ ΑΛΓΟΡΙΘΜΟΥ & ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ «ΓΛΩΣΣΑ»ΑΛΓΟΡΙΘΜΟΥ & ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ «ΓΛΩΣΣΑ» ΈναςΈνας αλγόριθμοςαλγόριθμος γραμμένος με ψευδοκώδικα, έχει λίγεςγραμμένος με ψευδοκώδικα, έχει λίγες μόνο διαφορές στη συγγραφή του, από έναμόνο διαφορές στη συγγραφή του, από ένα πρόγραμμαπρόγραμμα γραμμένο σε «γραμμένο σε «ΓΛΩΣΣΑΓΛΩΣΣΑ», γι’ αυτό πιθανώς να υπάρξει μια», γι’ αυτό πιθανώς να υπάρξει μια μικρή σύγχυση. Αναλυτικότερα έχουμε:μικρή σύγχυση. Αναλυτικότερα έχουμε:  Η έναρξη στον αλγόριθμο γίνεται με τη δήλωσηΗ έναρξη στον αλγόριθμο γίνεται με τη δήλωση Αλγόριθμος,Αλγόριθμος, ενώενώ στο πρόγραμμα με τη δήλωσηστο πρόγραμμα με τη δήλωση ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ  Οι μεταβλητές και οι σταθερές δηλώνονται μόνο στο πρόγραμμα.Οι μεταβλητές και οι σταθερές δηλώνονται μόνο στο πρόγραμμα. Στον αλγόριθμο, απλά γράφουμε //μεταβλητή1, μεταβλητή2,...// στηνΣτον αλγόριθμο, απλά γράφουμε //μεταβλητή1, μεταβλητή2,...// στην αρχήαρχή  Μόνο στο πρόγραμμα έχουμε έναρξη του κύριου σώματοςΜόνο στο πρόγραμμα έχουμε έναρξη του κύριου σώματος με τη δήλωσημε τη δήλωση ΑΡΧΗΑΡΧΗ  Στον αλγόριθμο η έξοδος γίνεται με την εντολήΣτον αλγόριθμο η έξοδος γίνεται με την εντολή ΕμφάνισεΕμφάνισε, ενώ στο, ενώ στο πρόγραμμα με την εντολήπρόγραμμα με την εντολή ΓΡΑΨΕΓΡΑΨΕ  Το τέλος στον αλγόριθμο, γίνεται με τοΤο τέλος στον αλγόριθμο, γίνεται με το ΤέλοςΤέλος όνομα_αλγορίθμουόνομα_αλγορίθμου ενώ στο πρόγραμμα, μόνο με τοενώ στο πρόγραμμα, μόνο με το ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
  37. 37. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΣΥΝΙΣΤΩΣΕΣΣΥΝΙΣΤΩΣΕΣ ΑΛΓΟΡΙΘΜΟΥΑΛΓΟΡΙΘΜΟΥ Δομή ακολουθίαςΔομή ακολουθίας Εκτέλεση των βημάτων τουΕκτέλεση των βημάτων του αλγορίθμου βάσει της σειράςαλγορίθμου βάσει της σειράς εμφάνισης τους. Στο εξής τα βήματαεμφάνισης τους. Στο εξής τα βήματα θα τα ονομάζουμεθα τα ονομάζουμε εντολέςεντολές 4 δομές επιλογής4 δομές επιλογής Η εκτέλεση των εντολώνΗ εκτέλεση των εντολών διακλαδώνεται με βάση τηνδιακλαδώνεται με βάση την επαλήθευση ή όχι, κάποιαςεπαλήθευση ή όχι, κάποιας συνθήκης.συνθήκης. 3 δομές επανάληψης3 δομές επανάληψης Η εκτέλεση των εντολών μπορεί ναΗ εκτέλεση των εντολών μπορεί να γίνεται επαναληπτικά.γίνεται επαναληπτικά. ΔΟΜΕΣ ΕΛΕΓΧΟΥΔΟΜΕΣ ΕΛΕΓΧΟΥ Δομή ακολουθίαςΔομή ακολουθίας Δομή επιλογήςΔομή επιλογής ΑπλήΑπλή ΣύνθετηΣύνθετη ΠολλαπλήΠολλαπλή ΦωλιασμένηΦωλιασμένη Δομή επανάληψηςΔομή επανάληψης ΌσοΌσο Μέχρις ότουΜέχρις ότου ΓιαΓια
  38. 38. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Παράδειγμα #1Παράδειγμα #1 ΑλγόριθμοςΑλγόριθμος μέσος_όροςμέσος_όρος ΔιάβασεΔιάβασε χ1, χ2, χ3χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1+χ2+χ3) / Πλήθος(χ1+χ2+χ3) / Πλήθος ΕμφάνισεΕμφάνισε ΜΟΜΟ ΤέλοςΤέλος μέσος_όροςμέσος_όρος Δήλωση έναρξης αλγορίθμουΔήλωση έναρξης αλγορίθμου Εισαγωγή τιμών στις χ1,χ2,χ3 από το χρήστηΕισαγωγή τιμών στις χ1,χ2,χ3 από το χρήστη Εκχώρηση τιμής στη μεταβλητή ΠλήθοςΕκχώρηση τιμής στη μεταβλητή Πλήθος Υπολογισμός και εκχώρηση τιμής στηΥπολογισμός και εκχώρηση τιμής στη MOMO Εμφάνιση αποτελέσματος ΜΟΕμφάνιση αποτελέσματος ΜΟ Δήλωση τέλους αλγορίθμουΔήλωση τέλους αλγορίθμου Σημαίνει ότι η εκτέλεση τωνΣημαίνει ότι η εκτέλεση των εντολών, γίνεται με τη σειρά πουεντολών, γίνεται με τη σειρά που εμφανίζονται (ακολουθιακά)εμφανίζονται (ακολουθιακά)
  39. 39. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Παράδειγμα #1 (συνέχεια)Παράδειγμα #1 (συνέχεια) ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ Διάβασε χ1, χ2, χ3Διάβασε χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1 + χ2 + χ3) / Πλήθος(χ1 + χ2 + χ3) / Πλήθος Εμφάνισε ΜΟΕμφάνισε ΜΟ ΑλγόριθμοςΑλγόριθμος μέσος_όροςμέσος_όρος ΔιάβασεΔιάβασε χ1, χ2, χ3χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1+χ2+χ3) / Πλήθος(χ1+χ2+χ3) / Πλήθος ΕμφάνισεΕμφάνισε ΜΟΜΟ ΤέλοςΤέλος μέσος_όροςμέσος_όρος Με διάγραμμαΜε διάγραμμα ροήςροής Με ψευδοκώδικαΜε ψευδοκώδικα ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ μέσος_όροςμέσος_όρος ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣΑΚΕΡΑΙΕΣ: χ: χ1,1,χχ2,2,χχ33,Πλήθος,Πλήθος ΠΡΑΓΜΑΤΙΚΕΣΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ: ΜΟ ΑΡΧΗΑΡΧΗ ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ χ1, χ2, χ3χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1+χ2+χ3) / Πλήθος(χ1+χ2+χ3) / Πλήθος ΓΡΑΨΕΓΡΑΨΕ ΜΟΜΟ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Με πρόγραμμαΜε πρόγραμμα
  40. 40. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 8 4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Παράδειγμα #2Παράδειγμα #2 5 85 Χ ΥΖ 5 8 1. Ζ  ΧΧ 2. Χ  ΥΥ 3. Υ  ΖΖ Ο κλασσικός τρόπος αντιμετάθεσης (Ο κλασσικός τρόπος αντιμετάθεσης (Swap)Swap) τιμών δύο μεταβλητώντιμών δύο μεταβλητών 5 Χ 8 Υ 8 1. Χ  ΥΥ ΤΟ ΛΑΘΟΣ ΠΟΥ ΓΙΝΕΤΑΙΤΟ ΛΑΘΟΣ ΠΟΥ ΓΙΝΕΤΑΙ ΤΟ ΣΩΣΤΟΤΟ ΣΩΣΤΟ ΒΟΗΘΗΤΙΚΗΒΟΗΘΗΤΙΚΗ ΜΕΤΑΒΛΗΤΜΕΤΑΒΛΗΤ ΗΗ Χάνουμε την τιμήΧάνουμε την τιμή της Χ και κάνουμετης Χ και κάνουμε και τις δύο ίσεςκαι τις δύο ίσες
  41. 41. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ4. ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Παράδειγμα #2 (Αντιμετάθεσης συνέχεια)Παράδειγμα #2 (Αντιμετάθεσης συνέχεια) ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ ΔιάβασεΔιάβασε x,x, yy zz  xx xx yy yy zz Εμφάνισε χ,Εμφάνισε χ, yy ΑλγόριθμοςΑλγόριθμος SwapSwap ΔιάβασεΔιάβασε xx,, yy zz  xx xx  yy yy  zz ΕμφάνισεΕμφάνισε x,x, yy ΤέλοςΤέλος SwapSwap Με διάγραμμαΜε διάγραμμα ροήςροής Με ψευδοκώδικαΜε ψευδοκώδικα ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ SwapSwap ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣΑΚΕΡΑΙΕΣ:: x, yx, y,, zz ΑΡΧΗΑΡΧΗ ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ x, yx, y zz  xx xx  yy yy  zz ΓΡΑΨΕΓΡΑΨΕ x, yx, y ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Με πρόγραμμαΜε πρόγραμμα
  42. 42. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΕΒΡΑΑΛΓΕΒΡΑ BOOLEBOOLE
  43. 43. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΕΒΡΑΑΛΓΕΒΡΑ BOOLEBOOLE (( Εισαγωγή στις Λογικές Πράξεις –Εισαγωγή στις Λογικές Πράξεις – George Boole,George Boole, Άγγλος μαθημ. )Άγγλος μαθημ. ) Χρησιμοποιούνται κατά κόρον στον προγραμματισμόΧρησιμοποιούνται κατά κόρον στον προγραμματισμό Σε συγκρίσεις, δομές επιλογής και επανάληψης, δηλ. παντούΣε συγκρίσεις, δομές επιλογής και επανάληψης, δηλ. παντού Κάνουν χρήση τουλάχιστον μιας συνθήκηςΚάνουν χρήση τουλάχιστον μιας συνθήκης Το αποτέλεσμα είναι πάντα μια από τις τιμέςΤο αποτέλεσμα είναι πάντα μια από τις τιμές ((ΑΛΗΘΗΣΑΛΗΘΗΣ ,, ΨΕΥΔΗΣΨΕΥΔΗΣ )) Λογικοί τελεστέςΛογικοί τελεστές (κατά σειρά(κατά σειρά προτεραιότηταςπροτεραιότητας)) 1.1. ΌΧΙΌΧΙ (ένας τελεστέος)(ένας τελεστέος) Αντιστρέφει την πρόταση που την ακολουθείΑντιστρέφει την πρόταση που την ακολουθεί 2.2. ΚΑΙΚΑΙ (δύο τελεστέοι, λογική σύζευξη)(δύο τελεστέοι, λογική σύζευξη) ΠρέπειΠρέπει και οι δύοκαι οι δύο προτάσεις να έχουν τιμήπροτάσεις να έχουν τιμή ΑΛΗΘΗΣΑΛΗΘΗΣ για να είναι τελικά ΑΛΗΘΗΣγια να είναι τελικά ΑΛΗΘΗΣ 3.3. ΉΉ (δύο τελεστέοι, λογική διάζευξη)(δύο τελεστέοι, λογική διάζευξη) ΠρέπειΠρέπει τουλάχιστον η μιατουλάχιστον η μια πρόταση να είναιπρόταση να είναι ΑΛΗΘΗΣΑΛΗΘΗΣ για να είναι τελικά ΑΛΗΘΗΣγια να είναι τελικά ΑΛΗΘΗΣ
  44. 44. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΕΒΡΑΑΛΓΕΒΡΑ BOOLEBOOLE (με παραδείγματα λογικών τελεστών)(με παραδείγματα λογικών τελεστών) ΑΑ ΌΧΙΌΧΙ (Α)(Α) ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΌΧΙΌΧΙ (Χ = 5)(Χ = 5) ισοδυναμεί με (Χ<>5)ισοδυναμεί με (Χ<>5) ΌΧΙ (ΑΛΗΘΗΣ)ΌΧΙ (ΑΛΗΘΗΣ) ισοδυναμεί με ΨΕΥΔΗΣισοδυναμεί με ΨΕΥΔΗΣ ΌΧΙ (ΑΠΑΝΤΗΣΗ = «Ν»)ΌΧΙ (ΑΠΑΝΤΗΣΗ = «Ν») ισοδυναμεί με ΑΠΑΝΤΗΣΗ <> «Ν»ισοδυναμεί με ΑΠΑΝΤΗΣΗ <> «Ν» ΑΑ ΒΒ ΑΑ ΚΑΙΚΑΙ ΒΒ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ (Χ=5) ΚΑΙ (Χ=10)(Χ=5) ΚΑΙ (Χ=10) : ΨΕΥΔΗΣ: ΨΕΥΔΗΣ (Χ>5) ΚΑΙ (Χ<10)(Χ>5) ΚΑΙ (Χ<10) : ΑΛΗΘΗΣ για 5<Χ<10: ΑΛΗΘΗΣ για 5<Χ<10 ΨΕΥΔΗΣ για κάθε άλλο ΧΨΕΥΔΗΣ για κάθε άλλο Χ (Α=Β) ΚΑΙ (Α=Γ)(Α=Β) ΚΑΙ (Α=Γ) :ΑΛΗΘΗΣ για Β=Γ:ΑΛΗΘΗΣ για Β=Γ ΨΕΥΔΗΣ για Β<>ΓΨΕΥΔΗΣ για Β<>Γ (ΠΟΛΗ = «ΠΑΤΡΑ») ΚΑΙ (ΟΝΟΜΑ <> «ΝΙΚΟΣ»)(ΠΟΛΗ = «ΠΑΤΡΑ») ΚΑΙ (ΟΝΟΜΑ <> «ΝΙΚΟΣ») ΑΑ ΒΒ ΑΑ ΉΉ ΒΒ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ (Χ=5) Ή (Χ=10)(Χ=5) Ή (Χ=10) : ΑΛΗΘΗΣ για Χ=5 ή Χ=10: ΑΛΗΘΗΣ για Χ=5 ή Χ=10 ΨΕΥΔΗΣ για κάθε άλλο ΧΨΕΥΔΗΣ για κάθε άλλο Χ (Χ>5) Ή (Χ<10)(Χ>5) Ή (Χ<10) : ΑΛΗΘΗΣ πάντα: ΑΛΗΘΗΣ πάντα (ΠΟΛΗ=«ΠΑΤΡΑ») Ή (Χ=15)(ΠΟΛΗ=«ΠΑΤΡΑ») Ή (Χ=15)
  45. 45. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΑΛΓΕΒΡΑΑΛΓΕΒΡΑ BOOLEBOOLE (Εξάσκηση)(Εξάσκηση) Να συμπληρώσετε τους παρακάτω πίνακες με τις τιμές ΑΛΗΘΗΣ,ΨΕΥΔΗΣΝα συμπληρώσετε τους παρακάτω πίνακες με τις τιμές ΑΛΗΘΗΣ,ΨΕΥΔΗΣ ΑΑ ΒΒ ΓΓ (Α>4)(Α>4) ΚΑΙΚΑΙ (Β<Γ)(Β<Γ) (Α=Β)(Α=Β) ΉΉ (Γ<Β)(Γ<Β) 66 44 -1-1 55 -2-2 00 33 33 22 1010 1010 2020 ΑΑ ΒΒ ΓΓ ΑΑ << ““ΞΞ”” ΚΑΙΚΑΙ Β<=ΓΒ<=Γ ΑΑ >=>= ““ΟΟ”” ΉΉ Γ<ΒΓ<Β ““ΝΝ”” 33 55 ““ΟΟ”” 99 33 ““ΧΧ”” 88 88 ““ΑΑ”” 00 -2-2 ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΨΕΥΔΗΣΨΕΥΔΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ ΑΛΗΘΗΣΑΛΗΘΗΣ
  46. 46. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα ΣΥΝΙΣΤΩΣΕΣΣΥΝΙΣΤΩΣΕΣ ΑΛΓΟΡΙΘΜΟΥΑΛΓΟΡΙΘΜΟΥ Δομή ακολουθίαςΔομή ακολουθίας Εκτέλεση των βημάτων τουΕκτέλεση των βημάτων του αλγορίθμου βάσει της σειράςαλγορίθμου βάσει της σειράς εμφάνισης τους. Στο εξής ταεμφάνισης τους. Στο εξής τα βήματα θα τα ονομάζουμεβήματα θα τα ονομάζουμε εντολέςεντολές 4 δομές επιλογής4 δομές επιλογής Η εκτέλεση των εντολώνΗ εκτέλεση των εντολών διακλαδώνεται με βάση τηνδιακλαδώνεται με βάση την επαλήθευση ή όχι, κάποιαςεπαλήθευση ή όχι, κάποιας συνθήκης.συνθήκης. 3 δομές επανάληψης3 δομές επανάληψης Η εκτέλεση των εντολών μπορεί ναΗ εκτέλεση των εντολών μπορεί να γίνεται επαναληπτικά.γίνεται επαναληπτικά. ΔΟΜΕΣ ΕΛΕΓΧΟΥΔΟΜΕΣ ΕΛΕΓΧΟΥ Δομή ακολουθίαςΔομή ακολουθίας Δομή επιλογήςΔομή επιλογής ΑπλήΑπλή ΣύνθετηΣύνθετη ΠολλαπλήΠολλαπλή ΦωλιασμένηΦωλιασμένη Δομή επανάληψηςΔομή επανάληψης ΌσοΌσο Μέχρις ότουΜέχρις ότου ΓιαΓια
  47. 47. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ ((Απλή)Απλή) ΑλγόριθμοςΑλγόριθμος αποτελέσματααποτελέσματα ΔιάβασεΔιάβασε μ1, μ2, μ3μ1, μ2, μ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (μ1+μ2+μ3) / Πλήθος(μ1+μ2+μ3) / Πλήθος ΑνΑν ΜΟ >= 10ΜΟ >= 10 τότετότε ΕμφάνισεΕμφάνισε «ΠΕΡΑΣΕΣ»«ΠΕΡΑΣΕΣ» ΕμφάνισεΕμφάνισε ΜΟΜΟ τέλος_αντέλος_αν ΤέλοςΤέλος αποτελέσματααποτελέσματα Η εντολήΗ εντολή Αν/τότεΑν/τότε Η ροή εκτέλεσης των εντολώνΗ ροή εκτέλεσης των εντολών του αλγορίθμου εξαρτάται απότου αλγορίθμου εξαρτάται από την επαλήθευση ή όχι, μιαςτην επαλήθευση ή όχι, μιας συνθήκηςσυνθήκης ΑνΑν συνθήκη_ισχύεισυνθήκη_ισχύει τότετότε εντολέςεντολές .......................... Τέλος_ΑνΤέλος_Αν
  48. 48. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ (Απλή)(Απλή) (συνέχεια)(συνέχεια) ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ Διάβασε χ1, χ2, χ3Διάβασε χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1 + χ2 + χ3) / Πλήθος(χ1 + χ2 + χ3) / Πλήθος Εμφάνισε «ΠΕΡΑΣΕΣ»Εμφάνισε «ΠΕΡΑΣΕΣ» Εμφάνισε ΜΟΕμφάνισε ΜΟ ΜΟ >= 10ΜΟ >= 10 ΝΑΙΝΑΙΟΧΙΟΧΙ Με διάγραμμα ροήςΜε διάγραμμα ροής ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ αποτελέσματααποτελέσματα ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣΑΚΕΡΑΙΕΣ:: μ1,μ2,μ3,Πλήθοςμ1,μ2,μ3,Πλήθος ΠΡΑΓΜΑΤΙΚΕΣΠΡΑΓΜΑΤΙΚΕΣ:: ΜΟΜΟ ΑΡΧΗΑΡΧΗ ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ μ1, μ2, μ3μ1, μ2, μ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (μ1+μ2+μ3) / Πλήθος(μ1+μ2+μ3) / Πλήθος ΑΝΑΝ ΜΟ >= 10ΜΟ >= 10 ΤΟΤΕΤΟΤΕ ΓΡΑΨΕΓΡΑΨΕ «ΠΕΡΑΣΕΣ»«ΠΕΡΑΣΕΣ» ΓΡΑΨΕΓΡΑΨΕ ΜΟΜΟ ΤΕΛΟΣ_ΑΝΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Με πρόγραμμαΜε πρόγραμμα
  49. 49. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ (Σύνθετη)(Σύνθετη) ΑλγόριθμοςΑλγόριθμος αποτελέσματααποτελέσματα ΔιάβασεΔιάβασε μ1, μ2, μ3μ1, μ2, μ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (μ1+μ2+μ3) / Πλήθος(μ1+μ2+μ3) / Πλήθος ΑνΑν ΜΟ >= 10ΜΟ >= 10 τότετότε ΕμφάνισεΕμφάνισε «ΠΕΡΑΣΕΣ»«ΠΕΡΑΣΕΣ» ΕμφάνισεΕμφάνισε ΜΟΜΟ αλλιώςαλλιώς ΕμφάνισεΕμφάνισε «ΚΟΠΗΚΕΣ»«ΚΟΠΗΚΕΣ» τέλος_αντέλος_αν ΤέλοςΤέλος αποτελέσματααποτελέσματα Μια άλλη συνήθης μορφήΜια άλλη συνήθης μορφή ΑνΑν συνθήκη_ισχύεισυνθήκη_ισχύει τότετότε εντολέςεντολές ........................ αλλιώςαλλιώς εντολέςεντολές ............................ Τέλος_ΑνΤέλος_Αν
  50. 50. ΠρόβλημαΠρόβλημα ΑλγόριθμοιΑλγόριθμοι Αν/τότεΑν/τότε ΌσοΌσο Μέχρις_ότουΜέχρις_ότου ΓιαΓιαBooleBoole Δομές δεδομένωνΔομές δεδομένων ΓλώσσεςΓλώσσες ΥποπρόγραμμαΥποπρόγραμμα 4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ4. ΔΟΜΗ ΕΠΙΛΟΓΗΣ (Σύνθετη)(Σύνθετη) (συνέχεια)(συνέχεια) ΑΡΧΗΑΡΧΗ ΤΕΛΟΣΤΕΛΟΣ Διάβασε χ1, χ2, χ3Διάβασε χ1, χ2, χ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (χ1 + χ2 + χ3) / Πλήθος(χ1 + χ2 + χ3) / Πλήθος Εμφάνισε «ΠΕΡΑΣΕΣ»Εμφάνισε «ΠΕΡΑΣΕΣ» Εμφάνισε ΜΟΕμφάνισε ΜΟ ΜΟ >= 10ΜΟ >= 10 ΝΑΙΝΑΙΟΧΙΟΧΙ ΕμφάνισεΕμφάνισε «ΚΟΠΗΚΕΣ»«ΚΟΠΗΚΕΣ» Με διάγραμμα ροήςΜε διάγραμμα ροής ΠΡΟΓΡΑΜΜΑΠΡΟΓΡΑΜΜΑ αποτελέσματααποτελέσματα ΜΕΤΑΒΛΗΤΕΣΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣΑΚΕΡΑΙΕΣ:: μ1,μ2,μ3,Πλήθοςμ1,μ2,μ3,Πλήθος ΠΡΑΓΜΑΤΙΚΕΣΠΡΑΓΜΑΤΙΚΕΣ:: ΜΟΜΟ ΑΡΧΗΑΡΧΗ ΔΙΑΒΑΣΕΔΙΑΒΑΣΕ μ1, μ2, μ3μ1, μ2, μ3 ΠλήθοςΠλήθος  33 ΜΟΜΟ  (μ1+μ2+μ3) / Πλήθος(μ1+μ2+μ3) / Πλήθος ΑΝΑΝ ΜΟ >= 10ΜΟ >= 10 ΤΟΤΕΤΟΤΕ ΓΡΑΨΕΓΡΑΨΕ «ΠΕΡΑΣΕΣ»«ΠΕΡΑΣΕΣ» ΓΡΑΨΕΓΡΑΨΕ ΜΟΜΟ ΑΛΛΙΩΣΑΛΛΙΩΣ ΓΡΑΨΕΓΡΑΨΕ «ΚΟΠΗΚΕΣ»«ΚΟΠΗΚΕΣ» ΤΕΛΟΣ_ΑΝΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Με πρόγραμμαΜε πρόγραμμα

×