Παράλληλη Αναζήτηση

Αναζήτηση

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

Η εφημερίδα "Μακεδονία" δημοσιεύει επιστολές με τον όρο ότι είναι ενυπόγραφες.

ΣΤΗΛΗ ΑΛΑΤΟΣ Πρόλογος

Οι επιστολογράφοι θα πρέπει να σημειώνουν και τον αριθμό τηλεφώνου τους.

Χαμάληδες

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

Η σύνταξη διατηρεί το δικαίωμα να συντομεύει τα κείμενα.

ΔΗΜΗΤΡΗΣ ΔΑΝΙΚΑΣ

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

Η διεύθυνσή μας: Εφημερίδα "Μακεδονία", Μοναστηρίου 85, 54627 Θεσσαλονίκη.

ΡΩΤΗΣΤΕ ΟΠΟΙΟΝΔΗΠΟΤΕ βουλευτή των δύο κομμάτων.

Όλη η θεωρητική πλευρά του μαθήματος καλύπτεται από αυτό το βιβλίο.

Τηλ. 031/521.621, Fax: 534.854.

Όχι τους λοχαγούς, τους στρατηγούς και τους παραθυρόβιους των καναλιών, αλλά τους προλετάριους.

Περιλαμβάνει 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