ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ΄ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΘΗΜΑ 3 ΚΕΦΑΛΑΙΟ 2 Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Ορισμός αλγορίθμου Σπουδαιότητα αλγορίθμου Περιγραφή αναπαράσταση αλγορίθμου Βασικές συνιστώσες αλγορίθμου Δομή ακολουθίας
Τι είναι αλγόριθμος Ορισμός Αυστηρά καθορισμένη σειρά ενεργειών, πεπερασμένων στον αριθμό που εκτελούνται σε πεπερασμένο χρόνο, που οδηγεί στην λύση ενός προβλήματος. Κάθε αλγόριθμος πρέπει να έχει ως είσοδο κάποια δεδομένα και να παράγει τουλάχιστον μια πληροφορία ως έξοδο. Παράδειγμα : Αλγόριθμος για τη διαδικασία ενός γεύματος να συγκεντρώσουμε τα υλικά, να προετοιμάσουμε τα σκεύη μαγειρικής, να παρασκευάσουμε το φαγητό, να ετοιμάσουμε τη σαλάτα, να στρώσουμε το τραπέζι, να γευματίσουμε, να καθαρίσουμε το τραπέζι, και να πλύνουμε τα πιάτα και τα κουζινικά
Κριτήρια ενός αλγορίθμου Είσοδος (input) : δεδομένα είσοδοι στον αλγόριθμο. (καμία, μια, οι περισσότερες τιμές δεδομένων) Έξοδος (output) : αποτελέσματα αλγορίθμων (είτε προς τον χρήστη, είτε προς έναν άλλο αλγόριθμο) Καθοριστικότητα (defineteness) : κάθε εντολή καθορίζεται πολύ συγκεκριμένα για τον τρόπο εκτέλεσής της. Περατότητα (finiteness) : ο αλγόριθμος τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης. Αλλιώς ονομάζεται υπολογιστική διαδικασία. Αποτελεσματικότητα (effectiveness) : ο αλγόριθμος αποτελείται από μεμονωμένες απλές και εκτελέσιμες εντολές.
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Ορισμός αλγορίθμου Σπουδαιότητα αλγορίθμου Περιγραφή αναπαράσταση αλγορίθμου Βασικές συνιστώσες αλγορίθμου Δομή ακολουθίας Δομή επιλογής Διαδικασίες πολλαπλών επιλογών Εμφωλευμένες Διαδικασίες Δομή επανάληψης
Σπουδαιότητα αλγορίθμων ΠΛΗΡΟΦΟΡΙΚΗ : H επιστήμη που μελετά τους αλγόριθμους από τις σκοπιές: Υλικού (hardware). Η ταχύτητα εκτέλεσης ενός αλγορίθμου επηρεάζεται από τις διάφορες τεχνολογίες υλικού Γλωσσών Προγραμματισμού (programming languages). Το είδος της γλώσσας προγραμματισμού που χρησιμοποιείται (δηλαδή, χαμηλότερου ή υψηλότερου επιπέδου) αλλάζει τη δομή και τον αριθμό των εντολών ενός αλγορίθμου. Οι γλώσσες χαμηλότερου επιπέδου είναι ταχύτερες Θεωρητική (theoretical). Η εξέταση του ερωτήματος για το αν πράγματι υπάρχει ή όχι κάποιος αποδοτικός αλγόριθμος για την επίλυση ενός προβλήματος Αναλυτική (analytical). Μελετώνται οι υπολογιστικοί πόροι που απαιτούνται από έναν αλγόριθμο
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων Ορισμός αλγορίθμου Σπουδαιότητα αλγορίθμου Περιγραφή αναπαράσταση αλγορίθμου Βασικές συνιστώσες αλγορίθμου Δομή ακολουθίας Δομή επιλογής Διαδικασίες πολλαπλών επιλογών Εμφωλευμένες Διαδικασίες Δομή επανάληψης
Περιγραφή & αναπαράσταση αλγορίθμων Ελεύθερο κείμενο (free text): ανεπεξέργαστος και αδόμητος τρόπος παρουσίασης αλγορίθμου (παραβίαση αποτελεσματικότητας) Διαγραμματικές τεχνικές (diagramming techniques): γραφικός τρόπος παρουσίασης του αλγορίθμου (διάγραμμα ροής) Φυσική γλώσσα (natural language): περιγραφή κατά βήματα (παραβίαση της καθοριστικότητας) Κωδικοποίηση (coding): πρόγραμμα γραμμένο είτε σε ψευδογλώσσα είτε σε προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο
Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή αλγόριθμου
Το αλφάβητο της ΓΛΩΣΣΑΣ
Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Σταθερές Μεταβλητές Τύποι δεδομένων Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Σταθερές
Ονόματα Τα ονόματα αυτά μπορούν να αποτελούνται από γράμματα πεζά ή κεφαλαία του ελληνικού ή του λατινικού αλφαβήτου (Α-Ω, Α-Ζ), ψηφία (0-9) καθώς και τον χαρακτήρα κάτω παύλα (underscore) (_), ενώ πρέπει υποχρεωτικά να αρχίζουν με γράμμα Μερικές λέξεις χρησιμοποιούνται από την ίδια τη ΓΛΩΣΣΑ για συγκεκριμένους λόγους, π.χ. οι λέξεις Αλγόριθμος, ΑΚΕΡΑΙΟΣ, ΑΝ κ.λπ, αυτές οι λέξεις δεν μπορούν να χρησιμοποιηθούν ως ονόματα. Οι λέξεις αυτές αποκαλούνται δεσμευμένες
Ονόματα Παραδείγματα ονομάτων που είναι αποδεκτά από τη ΓΛΩΣΣΑ είναι: Α, Όνομα, Τιμή, Τυπική_Απόκλιση, Α100, ΦΠΑ, μέγιστο, Υπολογισμός_Ταχύτητας Παραδείγματα ονομάτων που δεν είναι αποδεκτά είναι: 100Α, Μέση Τιμή, Κόστος$
Μεταβλητές Μια μεταβλητή λοιπόν, παριστάνει μία ποσότητα που η τιμή της μπορεί να μεταβάλλεται Οι μεταβλητές αντιστοιχούνται από το μεταγλωττιστή σε συγκεκριμένες θέσεις μνήμης Η τιμή της μεταβλητής είναι η τιμή που βρίσκεται στην αντίστοιχη θέση μνήμης και όπως αναφέρθηκε μπορεί να μεταβάλλεται κατά τη διάρκεια της εκτέλεσης του προγράμματος Μπορούμε να παρομοιάσουμε τη μεταβλητή σαν ένα γραμματοκιβώτιο, το όνομα της μεταβλητής και ως περιεχόμενο εσωτερικά, την τιμή που έχει εκείνη τη συγκεκριμένη στιγμή η μεταβλητή
Μεταβλητές - ονοματολογία Το όνομα κάθε μεταβλητής, ακολουθεί τους κανόνες δημιουργίας ονομάτων, δηλαδή αποτελείται από γράμματα, ψηφία καθώς και τον χαρακτήρα _, ενώ το όνομα κάθε μεταβλητής είναι μοναδικό για κάθε πρόγραμμα. Ένα όνομα θα πρέπει να περιέχει τουλάχιστον ένα γράμμα και να αρχίζει από γράμμα
Μεταβλητές
Τύποι δεδομένων Ανάλογα με το είδος της τιμής που λαμβάνουν, οι μεταβλητές και οι σταθερές διακρίνονται σε: Ακέραιος τύπος. Όπως στα μαθηματικά. Οι ακέραιοι μπορούν να είναι θετικοί, αρνητικοί ή μηδέν Πραγματικός τύπος. Όπως στα μαθηματικά. Οι αριθμοί 3.14159, 2.71828, -112.45, 0.45 είναι πραγματικοί αριθμοί Λογικός. Αυτός ο τύπος δέχεται μόνο δύο τιμές ΑΛΗΘΗΣ και ΨΕΥΔΗΣ. Οι τιμές αντιπροσωπεύουν αληθείς ή ψευδείς συνθήκες
Τύποι δεδομένων Χαρακτήρας. Ο τύπος αυτός αναφέρεται τόσο σε έναν οποιδήποτε χαρακτήρα ή σειρά χαρακτήρων Παραδείγματα χαρακτήρων είναι “Κ”, ”Κώστας”, “σήμερα είναι Τετάρτη”, “Τα πολλαπλάσια του 15 είναι” Οι χαρακτήρες πρέπει υποχρεωτικά να βρίσκονται μέσα σε απλά ή διπλά εισαγωγικά Τα δεδομένα αυτού του τύπου, επειδή περιέχουν τόσο αλφαβητικούς όσο και αριθμητικούς χαρακτήρες, ονομάζονται συχνά αλφαριθμητικά
Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Αριθμητικοί τελεστές Οι αριθμητικοί τελεστές που υποστηρίζονται από τη ΓΛΩΣΣΑ καλύπτουν τις βασικές πράξεις: πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση ενώ υποστηρίζεται και η ύψωση σε δύναμη, η ακέραια διαίρεση και το υπόλοιπο της ακέραιας διαίρεσης
Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Συναρτήσεις
Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Αριθμητικές εκφράσεις Οταν μια τιμή προκύπτει από υπολογισμό, τότε αναφερόμαστε σε εκφράσεις (expressions) Για τη σύνταξη μιας αριθμητικής έκφρασης χρησιμοποιούμε τελεστές και τελεσταίους. Οι αριθμητικές εκφράσεις υλοποιούν απλές ή σύνθετες μαθηματικές πράξεις
Αριθμητικές εκφράσεις Κάθε έκφραση παριστάνει μια συγκεκριμένη αριθμητική τιμή, η οποία βρίσκεται μετά την εκτέλεση των πράξεων Γι’ αυτό είναι απαραίτητο όλες οι μεταβλητές, που εμφανίζονται σε μια έκφραση να έχουν οριστεί προηγούμενα, δηλαδή να έχουν κάποια τιμή Το αποτέλεσμα του υπολογισμού των εκφράσεων είναι ένας αριθμός ή μια λογική τιμή. Όταν η τιμή μιας έκφρασης είναι λογική τότε η έκφραση λέγεται λογική συνθήκη ή απλά συνθήκη
Αριθμητικές εκφράσεις
Αριθμητικές εκφράσεις
Αριθμητικές εκφράσεις Οταν η ιεραρχία είναι ίδια, τότε οι πράξεις εκτελούνται από τ’ αριστερά προς τα δεξιά Η πράξη που πρέπει να προηγηθεί περικλείεται σε ένα ζεύγος παρενθέσων, οπότε και εκτελείται πρώτη. Π.χ. η έκφραση 2+3*4 δίδει ως αποτέλεσμα 14, ενώ η (2+3)*4 δίδει 20, διότι εκτελείται πρώτα η πρόσθεση και μετά ο πολλαπλασιασμός
Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 7 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Εντολή εκχώρησης
Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή προγράμματος
Εντολή εισόδου
Εντολή εισόδου Η εντολή ΔΙΑΒΑΣΕ ακολουθείται πάντοτε από ένα ή περισσότερα ονόματα μεταβλητών Αν υπάρχουν περισσότερες από μία μεταβλητές τότε αυτές χωρίζονται με κόμμα (,) Κατά την εκτέλεση του προγράμματος η εντολή ΔΙΑΒΑΣΕ διακόπτει την εκτέλεσή του και το πρόγραμμα περιμένει την εισαγωγή από το πληκτρολόγιο τιμών, που θα εκχωρηθούν στις μεταβλητές
Εντολή εξόδου
Εντολή εξόδου Η εντολή ΓΡΑΨΕ έχει ως αποτέλεσμα την εμφάνιση τιμών στη μονάδα εξόδου Συσκευή εξόδου μπορεί να είναι η οθόνη του υπολογιστή, ο εκτυπωτής, βοηθητική μνήμη ή γενικά οποιαδήποτε συσκευή εξόδου έχει οριστεί στο πρόγραμμα Η λίστα των στοιχείων μπορεί να περιέχει σταθερές τιμές και ονόματα μεταβλητών
Εντολή εξόδου Κατά την εκτέλεση του αλγόριθμου η εντολή ΓΡΑΨΕ προκαλεί την εμφάνιση στην οθόνη των σταθερών τιμών Όταν κάποιο όνομα μεταβλητής περιέχεται στη λίστα τότε αρχικά ανακτάται η τιμή της και στη συνέχεια η τιμή αυτή εμφανίζεται στην οθόνη Αντί για την εντολή ΓΡΑΨΕ μπορούμε να χρησιμοποιήσουμε τις εντολές Εμφάνισε και Εκτύπωσε που δουλεύουν με παρόμοιο τρόπο. (μόνο σε αλγόριθμους).
Επίσης… Τα δεδομένα εισόδου ενός αλγόριθμου μπορούν να διαβαστούν με τον εξής τρόπο: Δεδομένα // α,β,γ // Παρομοίως τα αποτελέσματα με την εντολή: Αποτελέσματα // η,ξ,μ // Οι εντολές Δεδομένα και Αποτελέσματα μπορούν να αντικαταστήσουν εντολές εισόδου και εξόδου που υπάρχουν μόνο στην αρχή και στο τέλος του αλγόριθμου και όχι ενδιάμεσες
Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Κεφάλαιο 2 : Βασικά στοιχεία προγραμματισμού Το αλφάβητο της ΓΛΩΣΣΑΣ Τύποι δεδομένων Σταθερές Μεταβλητές Αριθμητικοί τελεστές Συναρτήσεις Αριθμητικές εκφράσεις Εντολή εκχώρησης Εντολές εισόδου – εξόδου Δομή αλγόριθμου
Δομή αλγόριθμου Όπως κάθε εντολή ακολουθεί αυστηρούς συντακτικούς κανόνες, έτσι και ολόκληρος ο αλγόριθμος έχει αυστηρούς κανόνες για τον τρόπο που δομείται Η πρώτη εντολή κάθε αλγόριθμου είναι υποχρεωτικά η επικεφαλίδα του προγράμματος, η οποία είναι η λέξη ΑΛΓΟΡΙΘΜΟΣ ακολουθούμενη από το όνομα του αλγόριθμου Το όνομα πρέπει να υπακούει στους κανόνες δημιουργίας ονομάτων της ΓΛΩΣΣΑΣ
Δομή αλγόριθμου ΑΛΓΟΡΙΘΜΟΣ παράδειγμα Εντολή 1 Εντολή 2 Εντολή 3 ………… ΤΕΛΟΣ παράδειγμα Κάθε εντολή γράφεται σε ξεχωριστή γραμμή. Οι εντολές είναι σειριακά βήματα (δομή ακολουθίας). Η επόμενη εντολή εκτελείται μόλις τελειώσει η προηγούμενη.
Δομή αλγορίθμου Αν μία εντολή πρέπει να συνεχιστεί και στην επόμενη γραμμή, τότε ο πρώτος χαρακτήρας αυτής της γραμμής πρέπει να είναι ο χαρακτήρας & Αν ο πρώτος χαρακτήρας είναι το θαυμαστικό (!), σημαίνει ότι αυτή η γραμμή περιέχει σχόλια και όχι εκτελέσιμες εντολές
Δομή αλγόριθμου ΠΡΟΒΛΗΜΑ: Η διοίκηση ενός εργοστασίου αποφάσισε να δώσει σε όλους τους υπαλλήλους της αύξηση 11% ως επίδομα παραγωγικότητας. Να αναπτυχθεί αλγόριθμος που διαβάζει τις μηνιαίες αποδοχές ενός εργαζομένου και εμφανίζει το ποσό του επιδόματος παραγωγικότητας αλλά και τον τελικό μισθό του εργαζομένου.
Δομή αλγόριθμου ΑΛΓΟΡΙΘΜΟΣ εργοστάσιο ! Είσοδος δεδομένων ποσοστό_επιδόματος <- 11/100 ΔΙΑΒΑΣΕ μισθός ! Επεξεργασία δεδομένων επίδομα <- μισθός * ποσοστό_επιδόματος τελικός_μισθός <- μισθός + επίδομα ! Έξοδος δεδομένων ΓΡΑΨΕ “Το επίδομα είναι: ”, επίδομα ΓΡΑΨΕ “ Ο τελικός μισθός είναι: “, τελικός μισθός ΤΕΛΟΣ εργοστάσιο