Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 2ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΜΕΡΟΣ Α : ΒΑΣΙΚΟΙ ΟΡΙΣΜΟΙ ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΩΝ
2 ΥΠΟΛΟΓΙΣΜΟΣ ΜΟΡΙΩΝ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ ΓΙΑ ΚΑΘΕ ΕΠΙΣΤΗΜΟΝΙΚΟ ΠΕΔΙΟ ΥΠΟΛΟΓΙΖΟΝΤΑΙ ΜΟΝΟ ΤΑ 4 ΕΞΕΤΑΖΟΜΕΝΑ ΜΑΘΗΜΑΤΑ ΤΟΥ ΣΥΓΚΕΚΡΙΜΕΝΟΥ ΠΕΔΙΟΥ Για τον υπολογισμό των μορίων εφαρμόζεται ο τύπος: [ (Α+Β+Γ+Δ) x 2 + (Α x 1,3) + (Β x 0,7) ] x 100 = ΣΥΝΟΛΟ ΜΟΡΙΩΝ για συγκεκριμένο πεδίο, όπου Α, Β, Γ, Δ είναι οι γραπτοί βαθμοί των 4 πανελλαδικών μαθημάτων του συγκεκριμένου πεδίου και Α,Β είναι οι γραπτοί βαθμοί των 2 μαθημάτων με συντελεστές βαρύτητας του συγκεκριμένου πεδίου. Σε περίπτωση που ο υποψήφιος διεκδικεί την εισαγωγή του σε πεδίο με μειωμένους συντελεστές βαρύτητας, τότε για τον υπολογισμό των μορίων εφαρμόζεται ο τύπος: [ (Α+Β+Γ+Δ) x 2 + (Α x 0,9) + (Β x 0,4) ] x 100 = ΣΥΝΟΛΟ ΜΟΡΙΩΝ για συγκεκριμένο πεδίο, όπου Α, Β, Γ, Δ είναι οι γραπτοί βαθμοί των 4 πανελλαδικών μαθημάτων του συγκεκριμένου πεδίουκαι Α,Β είναι οι γραπτοί βαθμοί των 2 μαθημάτων με μειωμένους συντελεστές βαρύτητας του συγκεκριμένου πεδίου. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΔΙΑΔΙΚΑΣΙΑ ΣΥΝΔΕΣΗΣ MODEM ΣΤΟ ΔΙΑΔΙΚΤΥΟ 3 Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΒΑΣΙΚΟΙ ΟΡΙΣΜΟΙ 4 Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ 5 ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ Ο αλγόριθμος πρέπει με κάποιο τρόπο να δέχεται κάποιες τιμές ως είσοδο Ο αλγόριθμος πρέπει να βγάζει τουλάχιστον μια τιμή ως αποτέλεσμα Τα βήματα του αλγορίθμου πρέπει να είναι σαφή ΠΕΡΑΤΟΤΗΤΑ Ο αλγόριθμος πρέπει να τερματίζει ΠΑΝΤΑ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ Κάθε εντολή πρέπει να έχει λόγο ύπαρξης και αποτέλεσμα Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ ΚΡΙΤΗΡΙΟ 1: ΕΙΣΟΔΟΣ 6 Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδοι στον αλγόριθμο. Υπάρχει περίπτωση να μη δίνονται τιμές δεδομένων Αυτό εμφανίζεται, όταν ο αλγόριθμος δημιουργεί και επεξεργάζεται κάποιες πρωτογενείς τιμές με τη βοήθεια συναρτήσεων παραγωγής τυχαίων αριθμών ή με τη βοήθεια άλλων απλών εντολών. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ ΚΡΙΤΗΡΙΟ 2: ΕΞΟΔΟΣ 7 Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον μία τιμή δεδομένων ως αποτέλεσμα: προς το χρήστη ή προς έναν αλλο αλγόριθμο. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ ΚΡΙΤΗΡΙΟ 3: ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ 8 Κάθε εντολή πρέπει να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της. Για παράδειγμα, σε μία εντολή διαίρεσης πρέπει να ελέγχεται και η περίπτωση που ο διαιρέτης λαμβάνει μηδενική τιμή και να εκτελούνται οι κατάλληλες ενέργειες. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ 9 ΚΡΙΤΗΡΙΟ 4: ΠΕΡΑΤΟΤΗΤΑ Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μία διαδικασία που δεν τελειώνει μετά από ένα συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμο, αλλά λέγεται απλά υπολογιστική διαδικασία ΚΡΙΤΗΡΙΟ 5: ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ Κάθε μεμονωμένη εντολή του αλγορίθμου πρέπει να είναι απλή. Αυτό σημαίνει ότι μία εντολή δεν αρκεί να έχει ορισθεί, αλλά πρέπει να είναι και εκτελέσιμη. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΠΑΡΑΣΤΑΣΗ 10 ΑΛΓΟΡΙΘΜΩΝ Ελεύθερο κείμενο (free text) Διαγραμματικές τεχνικές (diagramming techniques) Φυσική γλώσσα κατά βήματα (natural language) Ανεπεξέργαστος και αδόμητος τρόπος Εγκυμονεί κινδύνους μη εκτελέσιμη παρουσίαση παραβίαση αποτελεσματικότητας Γραφικός τρόπος Διάγραμμα ροής (flow chart) Δεν θεωρείται η καλύτερη λύση Περιγραφή κατά βήματα Κίνδυνος παραβίασης καθοριστικότητας Κωδικοποίηση (coding) Ψευδογλώσσα ή γλώσσα προγραμματισμού Πλήρως καθορισμένη και σαφής αναπαράσταση αλγορίθμου Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής 11 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6ο: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΝΟΤΗΤΑ 6.3: ΦΥΣΙΚΕΣ ΚΑΙ ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/
Η έννοια του προγράμματος 12 Η επίλυση ενός προβλήματος περιλαμβάνει 3 στάδια: Ακριβής προσδιορισμός Ανάπτυξη του αντίστοιχου αλγορίθμου Διατύπωση του αλγορίθμου σε μορφή κατανοητή από τον υπολογιστή ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: Η δημιουργία του προγράμματος, δηλαδή του συνόλου των εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
Φυσικές και τεχνητές γλώσσες 13 Οι γλώσσες προγραμματισμού αναπτύχθηκαν για να δίνουμε εντολές στον υπολογιστή (τεχνητές γλώσσες) Χρησιμοποιούνται για την επικοινωνία ανθρώπου - υπολογιστή, όπως οι φυσικές γλώσσες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων. Ακολουθούν τις βασικές έννοιες & αρχές της γλωσσολογίας Μια γλώσσα προσδιορίζεται από: Το αλφάβητό της Το λεξιλόγιό της Τη γραμματική της Τη σημασιολογία της Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
Αλφάβητο Λεξιλόγιο 14 Αλφάβητο μιας γλώσσας καλείται το σύνολο των στοιχείων που χρησιμοποιείται από τη γλώσσα. Το αλφάβητο της ελληνικής γλώσσας περιέχει τα γράμματα Α-Ω και α-ω, τα 10 ψηφία (0-9) και όλα τα σημεία στίξης. Λεξιλόγιο: Το λεξιλόγιο είναι ένα υποσύνολο όλων των δυνατών ακολουθιών που δημιουργούνται από το σύνολο του αλφαβήτου της γλώσσας Η ακολουθία ΣΧΟΛΕΙΟ είναι αποδεκτή, ενώ η ακολουθία ΑΝΤΚΠΗΝΝ δεν είναι Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
Γραμματική - Σημασιολογία 15 Η γραμματική αποτελείται από το τυπικό ή τυπολογικό (accidence) και το συντακτικό (syntax) Τυπικό: Το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή Συντακτικό: Το σύνολο των κανόνων που καθορίζει τη νομιμότητα της διάταξης και της σύνδεσης των λέξεων της γλώσσας για τη δημιουργία προτάσεων (ή εντολών στις γλώσσες προγραμματισμού) Σημασιολογία (semantics):το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων, των εκφράσεων & προτάσεων. Στις γλώσσες προγραμματισμού η σημασιολογία των λέξεων αποφασίζεται από τον δημιουργό της γλώσσας. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
Διαφορές Φυσικών Τεχνητών γλωσσών 16 Δυνατότητα εξέλιξης: Οι φυσικές γλώσσες εξελίσσονται συνεχώς, γιατί και ο άνθρωπος αλλάζει και εξελίσσεται ανάλογα με την εποχή δημιουργούνται νέες λέξεις κανόνες γραμματικής και συντακτικού αλλάζουν με την πάροδο του χρόνου Αντίθετα οι τεχνητές γλώσσες χαρακτηρίζονται από στασιμότητα Ωστόσο, συχνά οι γλώσσες προγραμματισμού βελτιώνονται & μεταβάλλονται για να καλύψουν περισσότερες εφαρμογές ή για να διορθώσουν αδυναμίες τους Οι γλώσσες προγραμματισμού αλλάζουν σε επίπεδο διαλέκτου ή σε επίπεδο επέκτασης Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης 17 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 7ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΠΕΡΙ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 18 Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας έμφαση σε συγκεκριμένα χαρακτηριστικά Δεν υπάρχει ιδανική γλώσσα προγραμματισμού, υπάρχει απλά η καταλληλότερη για κάθε τύπο εφαρμογής Οι γλώσσες προγραμματισμού περιέχουν πληροφορίες σχετικές με τεχνικά θέματα. Κάθε νεότερη έκδοση συνήθως εμπλουτίζει την προηγούμενη, χωρίς δομικές αλλαγές Σχεδόν όλες οι γλώσσες προγραμματισμού έχουν κοινά χαρακτηριστικά, επεξεργάζονται τους ίδιους τύπους δεδομένων, υποστηρίζουν τις ίδιες βασικές δομές & έχουν παρόμοιες εντολές Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
Η «ΓΛΩΣΣΑ» 19 «ΓΛΩΣΣΑ» ονομάζεται η γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε Είναι σχεδιασμένη για εκπαιδευτικούς σκοπούς. Περιέχει χαρακτηριστικά, δομές και εντολές που περιέχονται σε διάφορες σύγχρονες γλώσσες προγραμματισμού (Visual Basic, C, C++, Java κτλ) Δεν ασχολείται με τις τεχνικές λεπτομέρειες των γλωσσών αυτών. Ο προγραμματισμός στη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθμου και τη μετατροπή του σε σωστό πρόγραμμα Οι εντολές στη ΓΛΩΣΣΑ, είναι ΠΑΝΤΟΤΕ ΓΡΑΜΜΕΝΕΣ ΜΕ ΚΕΦΑΛΑΙΑ ΓΡΑΜΜΑΤΑ Οι μεταβλητές γράφονται με πεζά ή κεφαλαία, αλλά με το ΠΡΩΤΟ ΓΡΑΜΜΑ ΠΑΝΤΑ ΚΕΦΑΛΑΙΟ Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΤΟ ΑΛΦΑΒΗΤΟ ΤΗΣ ΓΛΩΣΣΑΣ 20 Αποτελείται από: Γράμματα του Ελληνικού Αλφαβήτου, Κεφαλαία (Α- Ω), και Πεζά (α-ω) Γράμματα του Λατινικού Αλφαβήτου, Κεφαλαία (Α-Ζ), και πεζά (a-z) Ψηφία (0-9) Ειδικούς χαρακτήρες + - * / = ( ).,! & [ ] ^ κενός χαρακτήρας Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ 21 Η ΓΛΩΣΣΑ υποστηρίζει τους ακόλουθους τύπους δεδομένων: Ακέραιος τύπος: όλοι οι ακέραιοι που μας είναι γνωστοί από τα μαθηματικά. Μπορούν να είναι θετικοί, αρνητικοί, ή μηδέν. (1, 432, -232, 0) Πραγματικός τύπος: Όλοι οι πραγματικοί αριθμοί, όπως είναι γνωστοί από τα μαθηματικά. Μπορούν να είναι θετικοί, αρνητικοί, ή μηδέν. (2.271, -109.32, 0.1) Χαρακτήρας: Ένας χαρακτήρας, ή σειρά χαρακτήρων. Μπορεί να περιέχει οποιοδήποτε χαρακτήρα παράγει το πληκτρολόγιο. Οι χαρακτήρες πρέπει να βρίσκονται απαραίτητα μέσα σε απλά εισαγωγικά. Ονομάζονται και αλφαριθμητικά, γιατί συχνά περιέχουν αλφαβητικούς και αριθμητικούς χαρακτήρες. Λογικός: Δέχεται μόνο δύο τιμές ΑΛΗΘΗΣ και ΨΕΥΔΗΣ. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
22 ΟΙ ΕΝΤΟΛΕΣ ΣΤΟΝ ΑΛΓΟΡΙΘΜΟ & ΤΟ ΠΡΟΓΡΑΜΜΑ Κάθε ενέργεια, (πχ είσοδος ή έξοδος) πρέπει να περιγράφεται με συγκεκριμένη λέξη-εντολή, ώστε να μπορέσει ο υπολογιστής να την αποκρυπτογραφήσει και να την εκτελέσει. Δεσμευμένη λέξη είναι μια λέξη που επιτελεί συγκεκριμένη λειτουργία σε ένα αλγόριθμο/πρόγραμμα και ΔΕΝ μπορεί να χρησιμοποιείται άσκοπα για άλλες χρήσεις (πχ όνομα μεταβλητής). Για παράδειγμα οι εντολές «Διάβασε», «Εμφάνισε», «Εκτύπωσε», «Αντιμετάθεσε» κτλ ΠΡΟΣΟΧΗ: Δεν κάνουμε κατάχρηση κατά την επίλυση ασκήσεων και δεν επινοούμε εντολές από μόνοι μας όταν τις χρειαζόμαστε (π.χ. να ορίσουμε εντολή «Υπολόγισε») και χρησιμοποιούμε ΜΟΝΟ τις εντολές που γνωρίζουμε και έχουμε ορίσει.
ΣΤΑΘΕΡΕΣ 23 Οι σταθερές είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά τη διάρκεια εκτέλεσης του προγράμματος. Οι σταθερές μπορούν να είναι οποιουδήποτε τύπου δεδομένων Συμβολικές σταθερές: Μπορούμε να αντιστοιχίσουμε σταθερές τιμές με ονόματα, εφόσον τα δηλώσουμε στην αρχή του προγράμματος, αλλά δεν μπορούμε να μεταβάλλουμε την τιμή κατά τη διάρκεια εκτέλεσης του προγράμματος. Η χρήση σταθερών κάνει το πρόγραμμα πιο ευανάγνωστο, και επομένως πιο εύκολο στην κατανόηση και στη διόρθωση. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΣΥΜΒΟΛΙΚΕΣ ΣΤΑΘΕΡΕΣ 24 Σύνταξη: ΣΤΑΘΕΡΕΣ ΟΝΟΜΑ_ΣΤΑΘ1 = ΤΙΜΗ_1 ΟΝΟΜΑ_ΣΤΑΘ2 = ΤΙΜΗ_2 Παράδειγμα: ΣΤΑΘΕΡΕΣ ΟΝΟΜΑ = Δημήτρης Π = 3.14 ΣΥΝΤΕΛΕΣΤΗΣ = 100 ΦΠΑ = 0.19 Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΜΕΤΑΒΛΗΤΕΣ 25 Η έννοια της μεταβλητής (variable) χρησιμοποιείται όπως και στα μαθηματικά Παριστάνει μια ποσότητα που η τιμή της μπορεί να μεταβάλλεται ΠΡΟΣΟΧΗ: Ο τύπος της μεταβλητής δε μπορεί να αλλάξει κατά τη διάρκεια του προγράμματος, αλλά μόνο οι τιμές που λαμβάνει αυτή. Η ΓΛΩΣΣΑ επιτρέπει χρήση μεταβλητών και για τους τέσσερις τύπους της (ακέραιες, πραγματικές, χαρακτήρες & λογικές) Η δήλωση του τύπου της μεταβλητής γίνεται υποχρεωτικά στο τμήμα δήλωσης μεταβλητών Τα ονόματα μεταβλητών ακολουθούν τους γενικούς κανόνες δημιουργίας ονομάτων Το όνομα της κάθε μεταβλητής είναι μοναδικό για κάθε πρόγραμμα καλό είναι τα ονόματα των μεταβλητών να είναι σχετικά με τη χρήση τους. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΤΡΟΠΟΣ ΔΗΛΩΣΗΣ ΜΕΤΑΒΛΗΤΩΝ 26 Σύνταξη: ΜΕΤΑΒΛΗΤΕΣ ΤΥΠΟΣ_ΜΕΤ_1 : ΛΙΣΤΑ_1 ΤΥΠΟΣ_ΜΕΤ_2 : ΛΙΣΤΑ_2. Παράδειγμα: ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : ΤΙΜΗ, Ν, Ι, Π[30], Τ[30,40] ΠΡΑΓΜΑΤΙΚΕΣ : ΕΜΒΑΔΟΝ, ΜΕΣΗ_ΤΙΜΗ ΧΑΡΑΚΤΗΡΕΣ : ΟΝΟΜΑ, ΤΑΞΗ ΛΟΓΙΚΕΣ : ΕΛΕΓΧΟΣ,DONE Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΚΑΝΟΝΕΣ ΟΝΟΜΑΤΟΔΟΣΙΑΣ 27 Κάθε πρόγραμμα, καθώς και τα δεδομένα που χρησιμοποιούνται μέσα σε αυτό (μέσα από μεταβλητές & σταθερές) έχουν ένα όνομα, το οποίο πρέπει να ακολουθεί τους εξής κανόνες: Μπορούν να αποτελούνται από γράμματα (απεριόριστα) του ελληνικού ή λατινικού αλφαβήτου, ψηφία, και τον χαρακτήρα κάτω_παύλα (underscore), συνεχόμενα χωρίς κενά ενδιάμεσα Πρέπει υποχρεωτικά να αρχίζουν με γράμμα Να μην είναι κάποια από τις «δεσμευμένες λέξεις», δηλαδή τους όρους που έχουν καθοριστεί και χρησιμοποιούνται για να εκτελέσουν συγκεκριμένες λειτουργίες μέσα σε έναν αλγόριθμο. Αποδεκτά: Α, Όνομα, Τιμή, Τυπική_Απόκλιση, Α100, ΦΠΑ, μέγιστο Μη αποδεκτά: 100Α, Μέση Τιμή, Φ.Π.Α., Κόστος$
ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ 28 ΑΡΙΘΜΗΤΙΚΟΣ ΤΕΛΕΣΤΗΣ ΠΡΑΞΗ + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση ^ Ύψωση σε δύναμη DIV Πηλίκο Ακεραίας Διαίρεσης MOD Υπόλοιπο Ακεραίας Διαίρεσης ΣΗΜΕΙΩΣΗ : Οι πράξεις DIV & MOD ορίζονται μόνο μεταξύ θετικών ακέραιων αριθμών Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
Πράξεις div και mod 29 div: Το πηλίκο ακέραιας διαίρεσης δυο θετικών ακεραίων αριθμών Π.χ. η πράξη 10 div 4 δίνει αποτέλεσμα 2 mod: Το υπόλοιπο ακέραιας διαίρεσης δύο θετικών ακέραιων αριθμών Για παράδειγμα 10 mod 2 0 10 mod 3 1
ΠΑΡΑΔΕΙΓΜΑ 30 10-9 1 3 3 div 125 8-8 15 45-40 5 div mod mod
ΑΡΙΘΜΗΤΙΚΕΣ ΕΚΦΡΑΣΕΙΣ 31 Όταν μια τιμή προκύπτει από υπολογισμό, τότε αναφερόμαστε σε «εκφράσεις» Κατά τη σύνταξη μιας αριθμητικής έκφρασης, χρησιμοποιούμε: Αριθμητικές σταθερές Μεταβλητές Συναρτήσεις Αριθμητικούς τελεστές και παρενθέσεις Οι αριθμητικές εκφράσεις υλοποιούν απλές ή σύνθετες μαθηματικές πράξεις Κάθε έκφραση, αναπαριστά μια αριθμητική τιμή που προκύπτει με την εκτέλεση όλων των πράξεων της έκφρασης είναι απαραίτητο να έχουν οριστεί ΟΛΕΣ οι μεταβλητές Επιμέλεια που Παρουσίασης: συμπεριλαμβάνονται Δημήτρης Σπανουδάκης στην έκφραση
ΙΕΡΑΡΧΙΑ ΠΡΑΞΕΩΝ 32 Οι πράξεις που παρουσιάζονται σε μια έκφραση, εκτελούνται σύμφωνα με την ακόλουθη ιεραρχία: 1. Ύψωση σε δύναμη 2. Πολλαπλασιασμός και διαίρεση (& οι πράξεις div/mod) 3. Πρόσθεση και αφαίρεση Όταν η ιεραρχία είναι ίδια, τότε οι πράξεις εκτελούνται από τα αριστερά προς τα δεξιά Για να προηγηθεί πράξη χαμηλότερης προτεραιότητας, είναι απαραίτητη η χρήση των κατάλληλων παρενθέσεων. 2+3*4 14 (2+3)*4 20 Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ 33 Χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά τη διάρκεια εκτέλεσης του προγράμματος Προσοχή: Η εντολή εκχώρησης ΔΕΝ ΕΊΝΑΙ ΕΞΙΣΩΣΗ Υπολογίζεται η τιμή της παράστασης στο δεξιό μέρος της εκχώρησης, και η τελική τιμή αποδίδεται στη μεταβλητή που βρίσκεται στο αριστερό μέρος της εντολής Παραδείγματα: Χ <- 10 ΜΗΝΑΣ <- Ιανουάριος ΕΜΒΑΔΟΝ <- Α * Β Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ ΤΙΜΗΣ 34 T 2 * 3.14*(L/g)^(1/2) ΜΕΤΑΒΛΗΤΗ ΕΚΧΩΡΗΣΗ ΤΙΜΗΣ ΕΚΦΡΑΣΗ
ΕΝΤΟΛΗ ΔΙΑΒΑΣΕ 35 Ακολουθείται από ένα η περισσότερα ονόματα μεταβλητών Αν υπάρχουν περισσότερες από μια μεταβλητές, αυτές χωρίζονται μεταξύ τους με κόμμα (, ) Κατά τη διάρκεια εκτέλεσης του προγράμματος, όταν φτάσει το πρόγραμμα στην εντολή ΔΙΑΒΑΣΕ, διακόπτει τη ροή του και περιμένει να καταχωρηθούν δεδομένα από το πληκτρολόγιο, τα οποία και θα εκχωρηθούν στις αντίστοιχες μεταβλητές. ΔΙΑΒΑΣΕ Όνομα, Βαθμό Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΕΝΤΟΛΕΣ ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ 36 Η εντολή «Διάβασε» είναι η εντολή με την οποία πραγματοποιείται η είσοδος στον αλγόριθμο. Ακολουθείται από το όνομα μιας η περισσότερων μεταβλητών Μετά την ολοκλήρωση της εντολής, οι μεταβλητές θα έχουν λάβει την τιμή που καταχώρησε ο χρήστης από το πληκτρολόγιο. Αν είναι περισσότερες από μια οι μεταβλητές, λαμβάνουν τις τιμές που καταχωρούνται με τη σειρά που έχουν γραφτεί οι μεταβλητές ΠΡΟΣΟΧΗ: Η εντολή Διάβασε ακολουθείται υποχρεωτικά και ΜΟΝΟ από μεταβλητές
ΕΝΤΟΛΗ ΓΡΑΨΕ 37 Εμφανίζει τιμές στη μονάδα εξόδου Χρησιμοποιείται κυρίως για να εμφανίζει μηνύματα και αποτελέσματα, τα οποία περιέχονται στις αντίστοιχες μεταβλητές Συσκευή εξόδου μπορεί να είναι η οθόνη, ο εκτυπωτής, η βοηθητική μνήμη, ή οποιαδήποτε άλλη συσκευή εξόδου έχει οριστεί Η λίστα των στοιχείων προς εμφάνιση μπορεί να περιλαμβάνει σταθερές τιμές και ονόματα μεταβλητών ΓΡΑΨΕ Η τετραγωνική ρίζα του, χ, είναι:, ΡΙΖΑ Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΕΝΤΟΛΕΣ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (2) 38 Οι εντολές «Εκτύπωσε» και «Εμφάνισε» είναι οι εντολές με τις οποίες υλοποιείται η έξοδος του αλγορίθμου, στον εκτυπωτή ή στην οθόνη αντίστοιχα. Μπορούμε να εμφανίσουμε, τις τιμές των μεταβλητών που επιθυμούμε ή και συγκεκριμένα μηνύματα που θέλουμε Εκτύπωσε T ή Εμφάνισε T Εκτυπώνει την τιμή της/των μεταβλητών που ακολουθούν. Εκτύπωσε ΚΕΙΜΕΝΟ ή Εμφάνισε ΚΕΙΜΕΝΟ Εμφανίζει ακριβώς ότι βρίσκεται μέσα στα εισαγωγικά, ως μήνυμα στην έξοδο Παράδειγμα: Αν η μεταβλητή Τ έχει τιμή 5 το Εκτύπωσε T εκτυπώνει 5 Εκτύπωσε Τ εκτυπώνει Τ
ΣΥΝΑΡΤΗΣΕΙΣ 39 Πολλές γνωστές συναρτήσεις από τα μαθηματικά χρησιμοποιούνται στη ΓΛΩΣΣΑ ΗΜ(Χ): Υπολογισμός ημιτόνου ΣΥΝ(Χ): Υπολογισμός συνημιτόνου ΕΦ(Χ): Υπολογισμός εφαπτομένης Τ_Ρ(Χ): Υπολογισμός τετραγωνικής ρίζας ΛΟΓ(Χ): Υπολογισμός φυσικού λογαρίθμου Ε(Χ): Υπολογισμός του e x Α_Μ(Χ): Ακέραιο μέρος του Χ Α_Τ(Χ): Απόλυτη τιμή του Χ Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ 40 Η πρώτη εντολή είναι η λέξη ΠΡΟΓΡΑΜΜΑ, ακολουθούμενη από το όνομα του προγράμματος Ακολουθεί το τμήμα δήλωσης σταθερών, εφόσον υπάρχουν Ακολουθεί το τμήμα δήλωσης μεταβλητών, όπου δηλώνονται υποχρεωτικά, όλες οι μεταβλητές που θα χρησιμοποιηθούν, καθώς και ο τύπος τους. Ακολουθεί το κύριο μέρος του προγράμματος, με τις εντολές του, που ορίζεται από τα ΑΡΧΗ και ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Κάθε εντολή γράφεται σε ξεχωριστή γραμμή Αν πρέπει να συνεχιστεί σε επόμενη γραμμή, τότε ο πρώτος χαρακτήρας πρέπει να είναι & Αν ο πρώτος χαρακτήρας είναι! (θαυμαστικό) σημαίνει ότι πρόκειται για σχόλια, τα οποία δεν είναι εκτελέσιμες εντολές αλλά βοηθούν στην κατανόηση του κώδικα. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 41 Μπορούν να αναπαραστήσουν οποιοδήποτε αλγόριθμο, οποιασδήποτε πολυπλοκότητας Βοηθούν στην κατανόηση της ροής του αλγορίθμου Είναι πιο «εύκολα» στο σχεδιασμό, γιατί δεν ασχολούνται με το συντακτικό μιας γλώσσας, αλλά περιγράφουν την ακολουθία των βημάτων Θεωρούνται ισοδύναμα του αλγορίθμου Μπορούν να μετατραπούν σε αλγόριθμο & αντίστροφα Απαιτείται προσοχή στο σχεδιασμό, ώστε να είναι σαφής η διαδρομή που ακολουθείται σε κάθε περίπτωση. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΣΥΜΒΟΛΑ ΔΙΑΓΡΑΜΜΑΤΟΣ ΡΟΗΣ 42 Ένα διάγραμμα ροής αποτελείται από συγκεκριμένα σύμβολα έννοιες, τα οποία έχουν δεδομένο σχήμα, ανάλογα με το τι συμβολίζουν Η μετάβαση από κάθε σύμβολο στο επόμενο γίνεται με γραμμές βέλη, που καθορίζουν τη ροή του αλγορίθμου Δεν υπάρχουν ποτέ σύμβολα στο διάγραμμα ροής που να μην είναι συνδεδεμένα με το διάγραμμα Για κάθε σύμβολο πρέπει να υπάρχει (τουλάχιστον ένα) βέλος που να οδηγεί σε αυτό, και βέλος που να ξεκινάει από αυτό, με εξαίρεση τα σύμβολα αρχής & τέλους. Δεν χρησιμοποιούμε ποτέ σύμβολα δικής μας έμπνευσης Δεν υπάρχουν βέλη που να μην καταλήγουν πουθενά. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΣΥΜΒΟΛΑ ΔΙΑΓΡΑΜΜΑΤΟΣ ΡΟΗΣ 43 Σε κάθε διάγραμμα ροής υπάρχουν δυο ελλείψεις, που συμβολίζουν την αρχή και το τέλος του αλγορίθμου. Υπάρχει πάντα μόνο μια αρχή και μόνο ένα τέλος Από την «Αρχή» ξεκινάει μόνο ένα βέλος που οδηγεί στην πρώτη εντολή. Από την τελευταία εντολή του αλγορίθμου φεύγει ένα βέλος που καταλήγει στο «Τέλος» Σχηματικά, προτείνεται να τοποθετείται η «Αρχή» πάνω από όλα τα σχήματα σύμβολα και το «Τέλος» κάτω από όλα τα υπόλοιπα σχήματα του αλγορίθμου που αναπαριστάται. Δεν τα παραλείπουμε ποτέ, ακόμα και όταν αναπαριστούμε τμήμα αλγορίθμου για να δίνουμε πιο σαφή εικόνα. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
ΣΥΜΒΟΛΑ ΔΙΑΓΡΑΜΜΑΤΟΣ ΡΟΗΣ 44 Οι εντολές που αναπαριστούν είσοδο δεδομένων στον αλγόριθμο από το χρήστη και έξοδο δεδομένων από τον αλγόριθμο τοποθετούνται μέσα σε πλάγιο παραλληλόγραμμο. Οι εντολές που αναπαριστούν εκτέλεση πράξεων χωρίς είσοδο/έξοδο τοποθετούνται μέσα σε ορθογώνιο παραλληλόγραμμο. Μέσα στα παραλληλόγραμμα, οι αντίστοιχες εντολές διατυπώνονται αναλυτικά, σύμφωνα με τους κανόνες σύνταξης και τους όρους που απαιτεί το συντακτικό των αλγορίθμων. Σε περίπτωση που υπάρχουν συνεχόμενες εντολές ίδιου τύπου μπορούν να τοποθετηθούν σε ένα ενιαίο παραλληλόγραμμο (ορθογώνιο ή πλάγιο) και να γραφούν η μία εντολή κάτω από την άλλη. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
45 ΣΥΜΒΟΛΑ ΔΙΑΓΡΑΜΜΑΤΟΣ ΡΟΗΣ Συχνά μέσα σε έναν αλγόριθμο πρέπει να ληφθεί μια απόφαση η οποία αλλάζει την εξέλιξη του αλγορίθμου ανάλογα με την τιμή μιας συγκεκριμένης συνθήκης. Η συνθήκη στα διαγράμματα ροής αναπαριστάται με έναν ρόμβο. Σε κάθε ρόμβο/συνθήκη, καταλήγει ένα βέλος και από κάθε ρόμβο ξεκινούν δύο βέλη, που καθορίζουν τις εντολές που εκτελούνται σε κάθε περίπτωση (τις εντολές που εκτελούνται όταν ισχύει η συνθήκη και αυτές που εκτελούνται όταν ΔΕΝ ισχύει). Τα βέλη που ξεκινούν από το ρόμβο, έχουν υποχρεωτικά τις ετικέτες «Αληθής» και «Ψευδής» ώστε να καθορίζουν ποια πορεία ακολουθείται σε κάθε περίπτωση. Μέσα στον ρόμβο, περιγράφεται με σαφήνεια η συνθήκη της οποίας η τιμή καθορίζει την πορεία του αλγορίθμου. Σε περίπτωση που σε συγκεκριμένο σημείο του αλγορίθμου υπάρχουν παραπάνω από δυο διαφορετικές πιθανές αποφάσεις, αυτές αναλύονται σε πιο απλές διαδοχικές συνθήκες έτσι ώστε κάθε συνθήκη ρόμβος να έχει ακριβώς δύο βέλη ένα εκ των οποίων θα καταλήγει στην επόμενη συνθήκη ώστε να επιτύχουμε συνολικά τη σωστή αναπαράσταση του συγκεκριμένου σημείου. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης 46 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 2 ο (+ 7 ο ): ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΜΕΡΟΣ Β : ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ
ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 47 Η δομή ακολουθίας είναι η βασικότερη και απλούστερη δομή Χρησιμοποιείται για την αντιμετώπιση και επίλυση πολύ απλών προβλημάτων Την επιλέγουμε όταν είναι η σειρά εκτέλεσης των ενεργειών που πρέπει να εκτελέσουμε είναι δεδομένη και απλή, χωρίς συνθήκες ή επαναλαμβανόμενες πράξεις, δηλαδή όταν χρειάζεται να εκτελεστούν διαδοχικά όλες οι εντολές ακριβώς μια και μόνη φορά.
ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 48 Να αναπτυχθεί αλγόριθμος που θα δέχεται ως είσοδο δύο αριθμούς και θα υπολογίζει και θα εκτυπώνει το άθροισμά τους Αρχική γραμμή κάθε Αλγορίθμου Σήμανση έναρξης Αλγόριθμος Παράδειγμα_1 Είσοδος 1 ου δεδομένου & εκχώρηση στη μεταβλητή a Διάβασε a Είσοδος 2 ου δεδομένου και εκχώρηση στη μεταβλητή b Διάβασε b Εκτέλεση πράξεων, εκχώρηση αποτελέσματος σε νέα μεταβλητή c a + b Εμφάνιση του αποτελέσματος στην έξοδο Εκτύπωσε c Τελευταία γραμμή κάθε αλγορίθμου Σήμανση τέλους Tέλος Παράδειγμα_1
49 ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Αλγόριθμος Παράδειγμα_1 Διάβασε a Διάβασε b c a + b Εκτύπωσε c Tέλος Παράδειγμα_1 ΑΡΧΗ Διάβασε a Διάβασε b c a + b Εκτύπωσε c ΤΕΛΟΣ
ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ ΚΡΙΤΗΡΙΑ ΑΛΓΟΡΙΘΜΟΥ 50 1. Αλγόριθμος Παράδειγμα_1 2. Διάβασε a 3. Διάβασε b 4. c a + b 5. Εκτύπωσε c ΕΙΣΟΔΟΣ 6. Tέλος Παράδειγμα_1 ΕΞΟΔΟΣ ΠΕΡΑΤΟΤΗΤΑ
ΠΑΡΑΔΕΙΓΜΑ 51 Να σχεδιαστεί αλγόριθμος που να μετατρέπει μια τιμή θερμοκρασίας από βαθμούς Φαρενάιτ σε βαθμούς Κελσίου. Η μετατροπή της θερμοκρασίας γίνεται με τον τύπο C 5( F 9 32)
52 ΜΕΤΑΤΡΟΠΗ ΑΠΌ ΦΑΡΕΝΑΙΤ ΣΕ ΚΕΛΣΙΟΥ C 5( F 9 32) Αλγόριθμος Θερμοκρασία Διάβασε farenheit celsius (farenheit - 32) * 5 / 9 Εκτύπωσε celsius Τέλος Θερμοκρασία
ΑΝΑΓΝΩΡΙΣΙΜΟΤΗΤΑ ΜΕΤΑΒΛΗΤΩΝ 53 Αλγόριθμος Πρόβλημα1 Διάβασε metavliti1 metavliti2 (metavliti1-32) * 5 / 9 Εκτύπωσε metavliti2 Τέλος Πρόβλημα1 Στο παραπάνω παράδειγμα αλγορίθμου, δεν μπορούμε εύκολα να αντιληφθούμε το ρόλο της κάθε μεταβλητής, καθώς τα ονόματά τους δεν μας δίνουν κάποια σχετική πληροφορία. Η σωστή επιλογή των ονομάτων των μεταβλητών, βοηθά πάρα πολύ την ανάπτυξη του αλγορίθμου, την κατανόησή του, την παρακολούθηση της ροής του και τη διόρθωση πιθανών λαθών!
54 ΠΑΡΑΔΕΙΓΜΑ Να γραφεί αλγόριθμος που να υπολογίζει την περίοδο του εκκρεμούς T 2 L g
55 ΥΠΟΛΟΓΙΣΜΟΣ ΠΕΡΙΟΔΟΥ ΕΚΚΡΕΜΟΥΣ T 2 L g ΜΕΤΑΒΛΗΤΕΣ Αλγόριθμος Περίοδος_Εκκρεμούς Διάβασε L Διάβασε g T 2 * 3.14*(L/g)^(1/2) Εκτύπωσε T Tέλος Περίοδος_Εκκρεμούς ΣΤΑΘΕΡΑ
ΣΥΝΗΘΗ ΛΑΘΗ 56 Αλγόριθμος Θερμοκρασία Διάβασε farenheit celsius (fahrenheit-32) * 5 / 9 Εκτύπωσε celsius Τέλος Θερμοκρασίας ΛΑΘΟΣ 1 ο : Αλλαγή πτώσης στα ονόματα ΛΑΘΟΣ 2 ο : Αλλαγή στην ορθογραφία
ΠΑΡΑΔΕΙΓΜΑ ΣΕ ΠΡΟΓΡΑΜΜΑ 57 Το επόμενο πρόγραμμα υπολογίζει το συνολικό κόστος παραγγελιών υπολογιστών.το πρόγραμμα διαβάζει από το πληκτρολόγιο την ποσότητα της παραγγελίας και την τιμή του ενός υπολογιστή, υπολογίζει και γράφει το συνολικό κόστος καθώς και το αντίστοιχο κόστος του ΦΠΑ.Ο συντελεστής ΦΠΑ είναι 24%. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
58 ΠΡΟΓΡΑΜΜΑ Κόστος_Υπολογιστών! Πρόγραμμα υπολογισμού κόστους παραγγελίας υπολογιστών ΣΤΑΘΕΡΕΣ ΦΠΑ=0.24 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ποσότητα ΠΡΑΓΜΑΤΙΚΕΣ: Αξία_ΦΠΑ, Συνολικό_κόστος, Τιμή_μονάδας, Κόστος ΑΡΧΗ! Εισαγωγή δεδομένων ΓΡΑΨΕ Δώσε την ποσότητα της παραγγελίας ΔΙΑΒΑΣΕ Ποσότητα ΓΡΑΨΕ Δώσε την τιμή του υπολογιστή ΔΙΑΒΑΣΕ Τιμή_μονάδας! Υπολογισμοί Κόστος <- Ποσότητα* Τιμή_μονάδας Αξία_ΦΠΑ <- Κόστος*ΦΠΑ Συνολικό_κόστος <- Κόστος+Αξία_ΦΠΑ! Εμφάνιση αποτελεσμάτων ΓΡΑΨΕ Το κόστος των,ποσότητα, υπολογιστών είναι:,κόστος ΓΡΑΨΕ Η αξία του ΦΠΑ είναι:, Αξία_ΦΠΑ ΓΡΑΨΕ Το συνολικό κόστος είναι:, Συνολικό_κόστος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης
59 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 2ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΜΕΡΟΣ 3ο: ΔΟΜΗ ΕΠΙΛΟΓΗΣ & ΚΕΦΑΛΑΙΟ 8 ο : ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ e-mail: dspanoud@hotmail.com
ΣΥΓΚΡΙΤΙΚΟΙ ΤΕΛΕΣΤΕΣ 60 Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
ΣΥΓΚΡΙΣΕΙΣ 61 Οι συγκρίσεις γίνονται σε δεδομένα αριθμητικά, αλφαριθμητικά και λογικά. Η σύγκριση μεταξύ δύο αριθμών γίνεται με τον προφανή τρόπο. Στην περίπτωση των πραγματικών αριθμών θεωρούμε ότι οι αριθμοί μπορούν να έχουν άπειρο αριθμό ψηφίων. Η σύγκριση μεμονωμένων χαρακτήρων στηρίζεται στην αλφαβητική σειρά, για παράδειγμα το α θεωρείται μικρότερο από το β. Η σύγκριση αλφαριθμητικών δεδομένων βασίζεται στη σύγκριση χαρακτήρα προς χαρακτήρα σε κάθε θέση μέχρις ότου βρεθεί κάποια διαφορά, για παράδειγμα η λέξη κακός θεωρείται μικρότερη από τη λέξη καλός αφού το γράμμα κ προηγείται από το λ. Η σύγκριση λογικών τιμών έχει έννοια μόνο στην περίπτωση του ίσου (=) και του διάφορου (<>), αφού οι τιμές που μπορούν να λάβουν οι λογικές μεταβλητές είναι μόνο ΑΛΗΘΗΣ και ΨΕΥΔΗΣ. Επιμέλεια Παρουσίασης: Δημήτρης Σπανουδάκης Καθηγητής Πληροφορικής ΠΕ19
ΔΟΜΗ ΕΠΙΛΟΓΗΣ 62 Ελάχιστα προβλήματα επιλύονται με τη χρήση μόνο της δομής της ακολουθίας. Συνήθως, σε κάθε αλγόριθμο, παιτείται να ληφθούν κάποιες αποφάσεις, με βάση κάποια κριτήρια, και τα βήματα που θα πρέπει να ακολουθηθούν, να είναι διαφορετικά ανάλογα με την κάθε περίπτωση. Η διαδικασία της δομής επιλογής, περιλαμβάνει: Τον έλεγχο κάποιας συνθήκης, η οποία μπορεί να λάβει δύο τιμές (ΑΛΗΘΗΣ ΨΕΥΔΗΣ) Για κάθε αποτέλεσμα του ελέγχου της συνθήκης, καθορίζεται ένα σύνολο διαφορετικών εντολών που θα εκτελεστούν.
ΔΟΜΗ ΕΠΙΛΟΓΗΣ (ΠΑΡΑΔΕΙΓΜΑ) 63 Να κατασκευαστεί αλγόριθμος που να υπολογίζει και να εκτυπώνει την απόλυτη τιμή ενός αριθμού. Η απόλυτη τιμή ενός αριθμού είναι: Η ίδια η τιμή αν ο αριθμός είναι θετικός ή μηδέν Ο αντίθετος του αριθμού, αν ο αριθμός είναι αρνητικός
Υπολογισμός απόλυτης τιμής 64 Αλγόριθμος Παράδειγμα_2 Διάβασε a Αν a < 0 τότε a a*(-1) Εκτύπωσε a Τέλος Παράδειγμα_2
ΔΟΜΗ ΕΠΙΛΟΓΗΣ 65 Αν Συνθήκη τότε Εντολή Η Εντολή εκτελείται ΜΟΝΟ αν ισχύει η συνθήκη Αν a < 0 τότε a a*(-1) ΠΡΟΣΟΧΗ: Αυτός ο τρόπος σύνταξης της «Αν» χρησιμοποιείται μόνο σε περιπτώσεις ΠΟΛΥ ΑΠΛΩΝ επιλογών, με μια μόνο εντολή και μια περίπτωση, και καλό είναι να χρησιμοποιούμε την πλήρη σύνταξη, που περιγράφεται στην επόμενη διαφάνεια.
ΔΟΜΗ ΕΠΙΛΟΓΗΣ ΠΛΗΡΗΣ ΜΟΡΦΗ 66 Αν a < 0 τότε a a*(-1) Τέλος_αν ΕΣΟΧΗ Αν a < 0 τότε a a*(-1) Τέλος_αν Κάθε «Αν» πρέπει οπωσδήποτε να τελειώνει με ένα αντίστοιχο «Τέλος_αν» Προσέχουμε να είναι απόλυτα ευθυγραμμισμένα κατακόρυφα, για λόγους οπτικού διαχωρισμού και ευκολότερης κατανόησης της δομής. Οι εντολές που βρίσκονται μέσα στο βρόχο της δομής, πρέπει να γράφονται με μια μικρή εσοχή, ώστε να ξεχωρίζουν οπτικά.
ΕΚΤΕΛΕΣΗ ΠΕΡΙΣΣΟΤΕΡΩΝ ΕΝΤΟΛΩΝ ΜΕ ΜΙΑ ΣΥΝΘΗΚΗ 67 Αν συνθήκη τότε εντολή_1 εντολή_2... εντολή_ν Τέλος_αν Οι εντολές που πρέπει να εκτελεστούν υπό την ίδια συνθήκη, γράφονται ως μια ενότητα. Ευθυγραμμισμένες, στην ίδια εσοχή, για λόγους ευκρίνειας Οι εντολές μέσα σε μια δομή επιλογής εκτελούνται σειριακά. Αν δεν ισχύει η συνθήκη δεν εκτελείται καμία από τις εντολές που περικλείονται από τα άκρα της δομής.
ΔΟΜΗ ΕΠΙΛΟΓΗΣ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ 68 Αλγόριθμος Παράδειγμα_2 Διάβασε a Αν a < 0 τότε a a*(-1) Τέλος_αν Εκτύπωσε a Τέλος Παράδειγμα_2
ΔΟΜΗ ΕΠΙΛΟΓΗΣ ΜΕ ΕΚΤΕΛΕΣΗ ΠΡΑΞΕΩΝ ΚΑΙ ΣΤΙΣ ΔΥΟ ΕΠΙΛΟΓΕΣ 69 Αν συνθήκη τότε εντολή ή εντολές αλλιώς εντολή ή εντολές Τέλος_αν
ΠΑΡΑΔΕΙΓΜΑ ΣΥΝΘΕΤΗΣ ΕΠΙΛΟΓΗΣ 70 Να διαβασθούν δύο αριθμοί και σε περίπτωση που ο πρώτος αριθμός είναι μικρότερος του δεύτερου, να υπολογισθεί και να εκτυπωθεί το άθροισμά τους, διαφορετικά να υπολογισθεί και να εκτυπωθεί το γινόμενό τους.
ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 71 Αλγόριθμος Παράδειγμα_3 Διάβασε a, b Αν a < b τότε c a + b αλλιώς c a * b Τέλος_αν Εκτύπωσε c Τέλος Παράδειγμα_3
72 ΠΑΡΑΔΕΙΓΜΑ: Εύρεση Μεγίστου Ελαχίστου μεταξύ 2 αριθμών Αλγόριθμος Μεγ_Ελάχ Διάβασε a, b Αν a > b τότε max a Αλλιώς max b Τέλος_αν Αν a < b τότε min a Αλλιώς min b Τέλος_αν Εμφάνισε Το μέγιστο είναι:, max, και το ελάχιστο:, min Τέλος Μεγ_Ελάχ
ΔΙΑΔΙΚΑΣΙΕΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ 73 Υπάρχουν περιπτώσεις όπου μια απλή επιλογή δεν επιλύει το πρόβλημα, γιατί υπάρχουν πάνω από δύο πιθανές διαφορετικές καταστάσεις Απαιτείται μια πιο σύνθετη δομή που θα δίνει τη δυνατότητα για επιπλέον επιλογές
ΔΙΑΔΙΚΑΣΙΕΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ 74 Αν συνθήκη τότε εντολή ή εντολές αλλιώς_αν συνθήκη τότε εντολή ή εντολές αλλιώς_αν συνθήκη τότε εντολή ή εντολές. αλλιώς εντολή ή εντολές Τέλος_αν ΠΡΟΑΙΡΕΤΙΚΟ, ΑΝ ΔΕΝ ΤΟ ΧΡΕΙΑΖΟΜΑΣΤΕ ΔΕΝ ΤΟ ΠΡΟΣΘΕΤΟΥΜΕ
75 ΠΑΡΑΔΕΙΓΜΑ Δευτεροβάθμια Εξίσωση (a<>0) Αλγόριθμος Εξίσωση Διάβασε a, b, c d b^2 4*a*c Αν d > 0 τότε s1 (-1*b + d ^(1/2))/(2*a) s2 (-1*b - d ^(1/2))/(2*a) Εκτύπωσε Δύο ρίζες:, s1, s2 αλλιώς_αν d = 0 τότε s (-1*b)/(2*a) Εκτύπωσε Μία διπλή ρίζα:, s αλλιώς Εκτύπωσε Αδύνατη Τέλος_αν Τέλος Εξίσωση
76 ΔΙΑΔΙΚΑΣΙΕΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ (Παράδειγμα) Να διαβαστεί ένας ακέραιος αριθμός & να εκτυπωθεί η σχέση του με το μηδέν. Λύση: Τρεις πιθανές περιπτώσεις: Θετικός Μηδέν Αρνητικός
ΛΥΣΗ (1) 77 Αλγόριθμος Πρόσημο Διάβασε a Αν a > 0 τότε Eκτύπωσε Θετικός αριθμός αλλιώς_αν a = 0 τότε Eκτύπωσε Μηδενικός αλλιώς_αν a < 0 τότε Eκτύπωσε Αρνητικός Τέλος_αν Τέλος Πρόσημο
ΛΥΣΗ (ΒΕΛΤΙΩΜΕΝΗ) 78 Αλγόριθμος Πρόσημο_2 Διάβασε a Αν a > 0 τότε Eκτύπωσε Θετικός αριθμός αλλιώς_αν a = 0 τότε Eκτύπωσε Μηδενικός αλλιώς Eκτύπωσε Αρνητικός Τέλος_αν Τέλος Πρόσημο_2 Αφού δεν είναι ούτε θετικός ο αριθμός, ούτε μηδέν, άρα θα είναι σίγουρα αρνητικός, επομένως, η τελευταία σύγκριση είναι περιττή (όχι λάθος, απλά περιττή)
ΠΑΡΑΔΕΙΓΜΑ (2) 79 Να διαβασθεί ένας ακέραιος και να εκτυπωθεί το αντίστοιχο γράμμα της αλφαβήτου, αν ο ακέραιος έχει τιμή 1 ή 2 ή 3 διαφορετικά να εκτυπωθεί η λέξη άγνωστος.
ΛΥΣΗ 80 Αλγόριθμος Παράδειγμα_4 Διάβασε a Αν a = 1 τότε εκτύπωσε Α αλλιώς_αν a = 2 τότε εκτύπωσε Β αλλιώς_αν a = 3 τότε εκτύπωσε Γ αλλιώς εκτύπωσε άγνωστος Τέλος_αν Τέλος Παράδειγμα_4
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ 81
ΕΜΦΩΛΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ 82 Υπάρχουν περιπτώσεις όπου η επιλογή δεν είναι απλή διαδικασία, και χρειάζονται πολλαπλές επιλογές, που πρέπει να γίνουν ταυτόχρονα, ή η μία μέσα στην άλλη, ανάλογα με το τι ακριβώς μας ζητείται. Η δομή επιλογής μας επιτρέπει να τοποθετήσουμε και νέα δομή επιλογής εντός αυτής, σε κάποιον ή σε κάποιους από τους κλάδους της.
ΠΑΡΑΔΕΙΓΜΑ 83 Έχουμε το πρόβλημα του χαρακτηρισμού ατόμων ως προς τα σωματικά τους χαρακτηριστικά: Βάρος (Βαρύς αν έχει βάρος τουλάχιστον 80 κιλά, διαφορετικά Ελαφρύς) Ύψος (Ψηλός εάν έχει ύψος τουλάχιστον 1,70μ, διαφορετικά Κοντός) Σε κάθε άτομο θα πρέπει να αποδοθούν δυο χαρακτηρισμοί Πρέπει να γίνουν 2 συγκρίσεις
ΛΥΣΕΙΣ 84 ΔΙΑΒΑΣΕ βάρος, ύψος ΑΝ βάρος < 80 ΤΟΤΕ χ_β ελαφρύς ΑΛΛΙΩΣ χ_β βαρύς ΤΈΛΟΣ_ΑΝ ΑΝ ύψος < 1.70 ΤΟΤΕ χ_υ κοντός ΑΛΛΙΩΣ χ_υ ψηλός ΤΈΛΟΣ_ΑΝ ΓΡΑΨΕ χ_β, χ_υ ΔΙΆΒΑΣΕ βάρος, ύψος ΑΝ βάρος < 80 ΤΟΤΕ ΑΝ ύψος < 1.70 ΤΟΤΕ ΓΡΑΨΕ Ελαφρύς - κοντός ΑΛΛΙΩΣ ΓΡΑΨΕ Ελαφρύς - ψηλός ΤΈΛΟΣ_ΑΝ ΑΛΛΙΏΣ ΑΝ ύψος < 1.70 ΤΟΤΕ ΓΡΑΨΕ Βαρύς - κοντός ΑΛΛΙΩΣ ΓΡΑΨΕ Βαρύς - ψηλός ΤΈΛΟΣ_ΑΝ ΤΈΛΟΣ_ΑΝ
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ 85
ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ 86 Υπάρχουν περιπτώσεις όπου η συνθήκη που πρέπει να ελέγξουμε κάθε φορά (Αν.. ) αποτελείται από παραπάνω από ένα κριτήρια. Δηλαδή, για να μπορέσουμε να πάρουμε μια απόφαση, να χρειάζεται να εξετάσουμε περισσότερες από μια συνθήκες ή καταστάσεις. Για τέτοιες περιπτώσεις, υπάρχουν οι λογικές πράξεις, τις οποίες μπορούμε να χρησιμοποιήσουμε ώστε να συνδυάσουμε τις διαφορετικές συνθήκες: Λογική Πράξη «ΚΑΙ» (Σύζευξη) Λογική Πράξη «Η» (Διάζευξη) Λογική Πράξη «ΌΧΙ» (Άρνηση)
ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ 87 Έκφραση Α Έκφραση Β Α ΚΑΙ Β Α Η Β ΟΧΙ Α ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ
ΛΥΣΗ ΜΕ ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ 88 ΔΙΑΒΑΣΕ βάρος, ύψος ΑΝβάρος < 80 ΚΑΙ ύψος < 1.70 ΤΟΤΕ ΓΡΑΨΕ Ελαφρύς - κοντός ΑΛΛΙΩΣ_ΑΝ βάρος < 80 ΚΑΙ ύψος >= 1.70 ΓΡΑΨΕ Ελαφρύς - ψηλός ΑΛΛΙΩΣ_ΑΝ βάρος >= 80 ΚΑΙ ύψος < 1.70 ΓΡΑΨΕ Βαρύς - κοντός αλλιώς ΓΡΑΨΕ Βαρύς - ψηλός ΤΕΛΟΣ_ΑΝ
ΠΑΡΑΔΕΙΓΜΑ ΛΟΓΙΚΩΝ ΠΡΑΞΕΩΝ 89 Να σχεδιάσετε πρόγραμμα που: θα διαβάζει το Γ.Μ.Ο. του μαθητή της Γ Λυκείου και το σύνολο των μορίων του και εάν έχει Γ.Μ.Ο.>10 ή σύνολο μορίων >9.999, θα του εμφανίζει μήνυμα ότι έχει τη δυνατότητα να καταθέσει μηχανογραφικό. Αν έχει σύνολο απουσιών μικρότερο από 114 και αδικαιολόγητες απουσίες κάτω από 50, να εκτυπώνει μήνυμα «Επαρκής Φοίτηση»
90 ΠΡΟΓΡΑΜΜΑ Παρ_Φοίτησης ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: μορια, συν_απουσιες, αδικ_απουσίες ΠΡΑΓΜΑΤΙΚΕΣ: ΓΜΟ ΑΡΧΗ ΔΙΑΒΑΣΕ ΓΜΟ, μόρια, συν_απουσίες, αδικ_απουσίες ΑΝ μόρια > 9999 Ή ΓΜΟ > 10 ΤΟΤΕ ΓΡΑΨΕ Υπάρχει δυνατότητα υποβολής μηχανογραφικού ΤΕΛΟΣ_ΑΝ ΑΝ συν_απουσίες < 114 ΚΑΙ αδικ_απουσίες < 50 ΓΡΑΨΕ Επαρκής Φοίτηση ΑΛΛΙΩΣ ΓΡΑΨΕ Φοίτηση ανεπαρκής ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
91 Μία εταιρεία ταχυδροµικών υπηρεσιών εφαρµόζει για τα έξοδα αποστολής ταχυδροµικών επιστολών εσωτερικού και εξωτερικού, χρέωση σύµφωνα µε τον παρακάτω πίνακα: ΒΑΡΟΣ ΕΞΟΔΑ ΑΠΟΣΤΟΛΗΣ ΕΣΩΤΕΡΙΚΟΥ 0-500 2,0 4,8 501-1000 3,5 7,2 1001-2000 4,6 11,5 ΕΞΟΔΑ ΑΠΟΣΤΟΛΗΣ ΕΞΩΤΕΡΙΚΟΥ Για παράδειγµα τα έξοδα αποστολής µιας επιστολής βάρους 800 γραµµαρίων και προορισµού εσωτερικού είναι 3,5 Ευρώ. Να γράψετε αλγόριθµο ο οποίος: α. Να διαβάζει το βάρος της επιστολής. β. Να διαβάζει τον προορισµό της επιστολής. Η τιµή "ΕΣ" δηλώνει προορισµό εσωτερικού και η τιµή "ΕΞ" δηλώνει προορισµό εξωτερικού. γ. Να υπολογίζει τα έξοδα αποστολής ανάλογα µε τον προορισµό και το βάρος της επιστολής. δ. Να εκτυπώνει τα έξοδα αποστολής. Παρατήρηση: Θεωρείστε ότι ο αλγόριθµος δέχεται τιµές για το βάρος µεταξύ του 0 και του 2000 και για τον προορισµό µόνο τις τιµές "ΕΣ" και "ΕΞ".
92 ΛΥΣΗ Αλγόριθμος Ταχυδρομείο Εμφάνισε Δώσε βάρος επιστολής Διάβασε βάρος Εμφάνισε Δώσε προορισμό: ΕΣ για Εσωτερικό ή ΕΞ για εξωτερικό Διάβασε προορισμός Αν προορισμός = ΕΣ τότε Αν βάρος <=500 τότε χρέωση 2.0 αλλιώς_αν βάρος <=1000 τότε χρέωση 3.5 αλλιώς_αν βάρος <=2000 τότε χρέωση 4.6 Τέλος_αν αλλιώς_αν προορισμός = ΕΞ τότε Αν βάρος <=500 τότε χρέωση 4.8 αλλιώς_αν βάρος <=1000 τότε χρέωση 7.2 αλλιώς_αν βάρος <=2000 τότε χρέωση 11.5 Τέλος_αν Τέλος_αν Εμφάνισε Η χρέωση είναι, χρέωση Τέλος Ταχυδρομείο
Μία εταιρεία ταχυδροµικών υπηρεσιών χρεώνει τα έξοδα αποστολής μιας επιστολής κλιμακωτά, ανά γραμμάριο βάρους, σύμφωνα με τον ακόλουθο πίνακα: 93 ΒΑΡΟΣ ΕΞΟΔΑ ΑΠΟΣΤΟΛΗΣ ΕΣΩΤΕΡΙΚΟΥ ΕΞΟΔΑ ΑΠΟΣΤΟΛΗΣ ΕΞΩΤΕΡΙΚΟΥ Τα πρώτα 500γρ 0,002 / γραμμάριο 0,0048 / γραμμάριο 501-1000 0,0035 / γραμμάριο 0,0072 /γραμμάριο 1001 και πάνω 0,0048 / γραμμάριο 0,0123 / γραμμάριο Να γράψετε αλγόριθµο ο οποίος: α. Να διαβάζει το βάρος της επιστολής. β. Να διαβάζει τον προορισµό της επιστολής. Η τιµή "ΕΣ" δηλώνει προορισµό εσωτερικού και η τιµή "ΕΞ" δηλώνει προορισµό εξωτερικού. γ. Να υπολογίζει τα έξοδα αποστολής ανάλογα µε τον προορισµό και το βάρος της επιστολής. δ. Να εκτυπώνει τα έξοδα αποστολής.
94 ΛΥΣΗ ΚΛΙΜΑΚΩΤΗ ΧΡΕΩΣΗ Αλγόριθμος Ταχυδρομείο_κλιμ Εμφάνισε Δώσε βάρος επιστολής Διάβασε βάρος Εμφάνισε Δώσε προορισμό: ΕΣ για Εσωτερικό ή ΕΞ για εξωτερικό Διάβασε προορισμός Αν προορισμός = ΕΣ τότε Αν βάρος <=500 τότε χρέωση 0.002 * βάρος αλλιώς_αν βάρος <=1000 τότε χρέωση 0.002 * 500 + 0.0035 * (βάρος 500) αλλιώς χρέωση 0.002*500 + 0.0035*500 + 0.0048*(βάρος-1000) Τέλος_αν αλλιώς_αν προορισμός = ΕΞ τότε Αν βάρος <=500 τότε χρέωση 0.0048 * βάρος αλλιώς_αν βάρος <=1000 τότε χρέωση 0.0048 * 500 + 0.0072 * (βάρος 500) αλλιώς χρέωση 0.0048*500 + 0.0072*500 + 0.0125*(βάρος-1000) Τέλος_αν Τέλος_αν Εμφάνισε Η χρέωση είναι, χρέωση Τέλος Ταχυδρομείο_κλιμ