Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

Πρόλογος

Το βιβλίο αυτό απευθύνεται στους μαθητές Γ’ Τάξης Τεχνολογικής Κατεύθυνσης Ενιαίων Λυκείων, που παρακολουθούν το μάθημα “Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον” του Κύκλου Πληροφορικής και Υπηρεσιών.

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

Όλη η θεωρητική πλευρά του μαθήματος καλύπτεται από αυτό το βιβλίο. Περιλαμβάνει 14 κεφάλαια, που μπορούν να χωριστούν σε δύο μέρη. Το πρώτο μέρος (κεφάλαια 1-5) αναφέρεται στις ενότητες Ανάλυση Προβλήματος και Σχεδίαση αλγορίθμου, όπου η έμφαση δίνεται στην ανάπτυξη δεξιοτήτων αλγοριθμικής προσέγγισης των προβλημάτων. Το δεύτερο μέρος αφιερώνεται στην υλοποίηση προγραμμάτων τόσο σε περιβάλλον γλωσσών προγραμματισμού υψηλού επιπέδου όσο και σε αντικειμενοστραφές.

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

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

Στο βιβλίο δεν αναλύονται τεχνικές ή άλλες λεπτομέρειες συγκεκριμένου λογισμικού (γλωσσών προγραμματισμού). Ωστόσο δεν αποφεύγονται κάποιες αναφορές σε γνωστά προγραμματιστικά περιβάλλοντα, που γίνονται για λόγους πληρότητας. Η ανάπτυξη των προγραμμάτων που αναφέρονται ως παραδείγματα, γίνεται σε μια υποθετική γλώσσα προγραμματισμού, η οποία βέβαια ακολουθεί τις γενικές αρχές των σύγχρονων πραγματικών γλωσσών προγραμματισμού. Η υποθετική αυτή γλώσσα αποκαλείται ΓΛΩΣΣΑ και όπως θα γίνει αμέσως φανερό, η μετατροπή ενός προγράμματος από τη ΓΛΩΣΣΑ σε μια πραγματική γλώσσα προγραμματισμού είναι απλή υπόθεση.

Για την υποβοήθηση της αναγνωσιμότητας, εκτός από σχήματα, πίνακες και διάφορα πλαίσια, έχουν χρησιμοποιηθεί και αρκετά εικονίδια τα οποία χαρακτηρίζουν το μέρος του κειμένου που συνοδεύουν. Τα εικονίδια αυτά και η σημασία τους είναι:

Στην αρχή κάθε κεφαλαίου

Εισαγωγή Διδακτικοί στόχοι Προερωτήσεις

Στο κύριο μέρος κάθε κεφαλαίου

Ορισμός Ιστορικό σημείωμα Συμβουλή

Προσοχή Χρήσιμη πληροφορία Σημείωση

Στο τέλος κάθε κεφαλαίου

Ανακεφαλαίωση Λέξεις κλειδιά Ερωτήσεις-Θέματα για συζήτηση

Βιβλιογραφία Διευθύνσεις διαδικτύου

Οι συγγραφείς

Περιεχόμενα 1. Ανάλυση προβλήματος………………………………………………1 1.1 Η έννοια πρόβλημα……………………………………………….3 1.2 Κατανόηση προβλήματος……………………………………………5 1.3 Δομή προβλήματος………………………………………………..8 1.4 Καθορισμός απαιτήσεων…………………………………………..11 1.5 Κατηγορίες προβλημάτων …………………………………………16 1.6 Πρόβλημα και υπολογιστής………………………………………..18 2. Βασικές Έννοιες Αλγορίθμων……………………………………….23 2.1 Τι είναι αλγόριθμος…………………………………………….25 2.2 Σπουδαιότητα αλγορίθμων…………………………………………27 2.3 Περιγραφή και αναπαράσταση αλγορίθμων…………………………….28 2.4 Βασικές συνιστώσες/ εντολές ενός αλγορίθμου……………………….28 2.4.1 Δομή ακολουθίας………………………………………………30 2.4.2 Δομή Επιλογής ……………………………………………….32 2.4.3 Διαδικασίες πολλαπλών επιλογών ………………………………..35 2.4.4 Εμφωλευμένες Διαδικασίες ……………………………………..37 2.4.5 Δομή Επανάληψης ……………………………………………..39 3. Δομές Δεδομένων και Αλγόριθμοι …………………………………..51 3.1 Δεδομένα………………………………………………………53 3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα………………………..54 3.3 Πίνακες ………………………………………………………56 3.4 Στοίβα………………………………………………………..59 3.5 Ουρά………………………………………………………….60 3.6 Αναζήτηση …………………………………………………….64 3.7 Ταξινόμηση ……………………………………………………66 3.8 Αναδρομή ……………………………………………………..69 3.8.1 Υπολογισμός του παραγοντικού ………………………………….69 3.8.2 Υπολογισμός του μέγιστου κοινού διαιρέτη………………………..70 3.8.3 Υπολογισμός αριθμών ακολουθίας Fibonacci………………………..72 3.9 Άλλες δομές δεδομένων…………………………………………..73 3.9.1 Λίστες ……………………………………………………..73 3.9.2 Δένδρα………………………………………………………75 3.9.3 Γράφοι ……………………………………………………..75 4. Τεχνικές Σχεδίασης Αλγορίθμων…………………………………….79 4.1 Ανάλυση προβλημάτων…………………………………………….81 4.2 Μέθοδοι σχεδίασης αλγορίθμων…………………………………….83 4.3 Μέθοδος διαίρει και βασίλευε ……………………………………85 4.4 Δυναμικός προγραμματισμός ………………………………………87 4.5 Άπληστη μέθοδος ……………………………………………….90 5. Ανάλυση αλγορίθμων ……………………………………………..95 5.1 Επίδοση αλγορίθμων …………………………………………….97 5.1.1 Χειρότερη περίπτωση ενός αλγορίθμου ……………………………97 5.1.2 Μέγεθος εισόδου ενός αλγορίθμου ……………………………….98 5.1.3 Χρόνος εκτέλεσης προγράμματος ενός αλγορίθμου……………………99 5.1.4 Αποδοτικότητα αλγορίθμων …………………………………….100 5.2 Ορθότητα αλγορίθμων……………………………………………101 5.3 Πολυπλοκότητα αλγορίθμων……………………………………….104 5.3.1 Ταξινόμηση ευθείας ανταλλαγής ………………………………..107 5.3.2 Γραμμική αναζήτηση ………………………………………….108 5.4 Είδη αλγορίθμων ………………………………………………109 6. Εισαγωγή στον προγραμματισμό ……………………………………115 6.1 Η έννοια του προγράμματος ……………………………………..117 6.2 Ιστορική αναδρομή……………………………………………..117 6.2.1 Γλώσσες μηχανής……………………………………………..118 6.2.2 Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου…………………..118 6.2.3 Γλώσσες υψηλού επιπέδου………………………………………119 6.2.4 Γλώσσες 4ης γενιάς ………………………………………….127 6.3 Φυσικές και τεχνητές γλώσσες. ………………………………….130 6.4 Τεχνικές σχεδίασης προγραμμάτων ………………………………..131 6.4.1 Ιεραρχική σχεδίαση προγράμματος ………………………………132 6.4.2 Τμηματικός προγραμματισμός……………………………………132 6.4.3 Δομημένος προγραμματισμός…………………………………….132 6.5 Αντικειμενοστραφής προγραμματισμός ……………………………..136 6.6 Παράλληλος προγραμματισμός …………………………………….137 6.7 Προγραμματιστικά περιβάλλοντα ………………………………….137 7. Βασικά στοιχεία προγραμματισμού………………………………….145 7.1 Το αλφάβητο της ΓΛΩΣΣΑΣ………………………………………..148 7.2 Τύποι δεδομένων ………………………………………………148 7.3 Σταθερές……………………………………………………..149 7.4 Μεταβλητές……………………………………………………151 7.5 Αριθμητικοί τελεστές ………………………………………….152 7.6 Συναρτήσεις…………………………………………………..153 7.7 Αριθμητικές εκφράσεις …………………………………………153 7.8 Εντολή εκχώρησης………………………………………………154 7.9 Εντολές εισόδου-εξόδου ………………………………………..155 7.10 Δομή προγράμματος ……………………………………………157 8. Επιλογή και επανάληψη…………………………………………..163 8.1 Εντολές Επιλογής………………………………………………165 8.1.1 Εντολή ΑΝ ………………………………………………….166 8.1.2 Εντολή ΕΠΙΛΕΞΕ ……………………………………………..172 8.2 Εντολές επανάληψης…………………………………………….173 8.2.1 Εντολή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ……………………………………….173 8.2.2 Εντολή ΜΕΧΡΙΣ_ΟΤΟΥ…………………………………………..175 8.2.3 Εντολή ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ……………………………………..178 9. Πίνακες……………………………………………………….183 9.1. Μονοδιάστατοι πίνακες. ……………………………………….185 9.2. Πότε πρέπει να χρησιμοποιούνται πίνακες ………………………..191 9.3. Πολυδιάστατοι πίνακες…………………………………………191 9.4. Τυπικές επεξεργασίες πινάκων ………………………………….198 10. Υποπρογράμματα………………………………………………..203 10.1. Τμηματικός προγραμματισμός……………………………………205 10.2. Χαρακτηριστικά των υποπρογραμμάτων…………………………….207 10.3. Πλεονεκτήματα του τμηματικού προγραμματισμού …………………..208 10.4. Παράμετροι …………………………………………………209 10.5. Διαδικασίες και συναρτήσεις ………………………………….210 10.5.1 Ορισμός και κλήση συναρτήσεων………………………………..213 10.5.2 Ορισμός και κλήση διαδικασιών ……………………………….214 10.5.3 Πραγματικές και τυπικές παράμετροι …………………………..216 10.6. Εμβέλεια μεταβλητών-σταθερών. ………………………………..220 10.7. Αναδρομή …………………………………………………..222 11. Σύγχρονα προγραμματιστικά περιβάλλοντα…………………………..229 11.1. Αντικειμενοστραφής προγραμματισμός ……………………………231 11.1.1 Αντικείμενα ……………………………………………….233 11.1.2 Κλάσεις……………………………………………………234 11.1.3 Ιδιότητες …………………………………………………235 11.1.4 Μέθοδοι …………………………………………………..237 11.2. Οδηγούμενος από γεγονότα προγραμματισμός ………………………238 11.2.1 Διαδικασίες ……………………………………………….239 11.2.2 Ροή εκτέλεσης εφαρμογής …………………………………….240 11.3. Υλοποίηση εφαρμογών σε σύγχρονο προγραμματιστικό περιβάλλον………241 11.4. Στοιχεία γραφικού προγραμματιστικού περιβάλλοντος ………………248 11.4.1 Μενού επιλογών …………………………………………….249 11.4.2 Πλαίσια διαλόγου …………………………………………..251 11.5. Επικοινωνία με άλλες εφαρμογές………………………………..252 12. Σχεδίαση διεπαφής χρήστη……………………………………….259 12.1. Διεπαφή χρήστη………………………………………………261 12.2. Τύποι διεπαφής χρήστη ……………………………………….262 12.3. Γενική σχεδίαση διεπαφής χρήστη ………………………………266 12.4. Οπτική σχεδίαση της διεπαφής χρήστη……………………………270 12.4.1 Το χρώμα ………………………………………………….271 12.4.2 Μηνύματα λάθους ……………………………………………273 12.5. Ηχητική σχεδίαση της διεπαφής χρήστη…………………………..274 13. Εκσφαλμάτωση προγράμματος ……………………………………..279 13.1 Κατηγορίες λαθών …………………………………………….281 13.2 Εκσφαλμάτωση…………………………………………………284 13.3. Εργαλεία εκσφαλμάτωσης ………………………………………284 13.4 Χειρισμός λαθών κατά το χρόνο εκτέλεσης ………………………..288 14. Αξιολόγηση - Τεκμηρίωση ……………………………………….291 14.1 Κριτήρια αξιολόγησης προγράμματος ……………………………..293 14.1.1 Απλότητα - τυπικότητα……………………………………….293 14.1.2 Ευελιξία ………………………………………………….297 14.1.3 Αξιοπιστία…………………………………………………301 14.1.4 Ταχύτητα ………………………………………………….305 14.2 Τεκμηρίωση του Προγράμματος……………………………………308 14.2.1 Λόγοι τεκμηρίωσης ………………………………………….310 14.2.2 Κατηγορίες τεκμηρίωσης………………………………………310 14.2.3 Φάκελλος Προγράμματος ………………………………………315 14.3 Κύκλος Ζωής Λογισμικού ……………………………………….315 Παράρτημα: Πίνακας ASCII…………………………………………..323 Ευρετήριο Αλγορίθμων ……………………………………………..326 Γλωσσάριο………………………………………………………..327 Λεξικό όρων ……………………………………………………..333 Ευρετήριο ……………………………………………………….337