Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον (Γ Λυκείου) - Βιβλίο Μαθητή (Εμπλουτισμένο)
Ανάλυση προβλήματος Επιστροφή στην αρχική σελίδα του μαθήματος
Εξώφυλλο

 

 

 

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

 

 

 

 

 

ΣΤΟΙΧΕΙΑ ΑΡΧΙΚΗΣ ΕΚΔΟΣΗΣ

 

Ομάδα Συγγραφής ΑΘΗΝΑ ΒΑΚΑΛΗ, Λέκτωρ Πληροφορικής ΑΠΘ
  ΗΛΙΑΣ ΓΙΑΝΝΟΠΟΥΛΟΣ Μηχανικός Πληροφορικής
  ΝΕΣΤΩΡ ΙΩΑΝΝΙΔΗΣ, Επίκουρος Καθηγητής Τμήματος Πληροφορικής ΤΕΙ Αθήνας
  ΧΡΗΣΤΟΣ ΚΟΙΛΙΑΣ, Επίκουρος Καθηγητής Τμήματος Πληροφορικής ΤΕΙ Αθήνας
  ΚΩΝ/ΝΟΣ ΜΑΛΑΜΑΣ, M.Sc. Πληροφορικής, Σύμβουλος Επιχειρήσεων
  ΙΩΑΝΝΗΣ ΜΑΝΩΛΟΠΟΥΛΟΣ,Αναπληρωτής Καθηγητής Τμήματος Πληροφορικής ΑΠΘ
  ΠΑΝΑΓΙΩΤΗΣ ΠΟΛΙΤΗΣ,Δρ. Διδακτικής Πληροφορικής, Καθηγητής ΠΕ 19
Υπεύθυνος για το Παιδαγωγικό Ινστιτούτο ΓΕΩΡΓΙΟΣ ΠΑΠΑΔΟΠΟΥΛΟΣ, Σύμβουλος Π.Ι. (κατά τη συγγραφή)
Υπεύθυνος Μαθήματος ΑΔΑΜ Κ. ΑΓΓΕΛΗΣ,Εκπαιδευτικός (ΠΕ2) Β/θμιας Εκπ/σης
Επιτροπή Αξιολόγησης ΚΩΝ/ΝΟΣ ΓΙΑΛΟΥΡΗΣ,Καθηγητής ΠΕ 19
  ΕΥΑΓΓΕΛΙΑ ΓΟΥΛΗ,Καθηγήτρια ΠΕ 19
  ΔΗΜΗΤΡΙΟΣ ΔΕΣΠΟΤΗΣ,Αναπληρωτής Καθηγητής Πανεπιστημίου Πειραιώς
  ΚΩΝ/ΝΟΣ ΖΑΧΑΡΗΣ,ΠΛΗΝΕΤ Καρδίτσας
  ΑΛΕΞΑΝΔΡΟΣ ΣΙΔΕΡΙΔΗΣ,Καθηγητής Γεωπονικού Πανεπιστημίου Αθηνών
Εικονογράφηση ΑΓΓΕΛΟΣ ΑΓΙΟΣΤΡΑΤΙΤΗΣ
Ηλεκτρονική σελιδοποίηση ΑΝΝΑ ΑΡΓΥΡΟΠΟΥΛΟΥ - ΧΡΗΣΤΟΣ ΠΙΓΚΑΣ
Εξώφυλλο ΣΠΥΡΟΣ ΣΙΑΚΑΣ - ΝΙΚΟΣ ΓΕΩΡΓΙΟΥ
Επιμέλεια ΕΚΔΟΣΕΙΣ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ,
Στουρνάρη 49Α, 106 82, Αθήνα, Τηλ. 38.45.594
Φορέας ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΙΑ ΕΠΙΣΤΗΜΟΝΩΝ Η/Υ
ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ (ΕΠΥ),
Μαυρομιχάλη 16, Αθήνα, τηλ.: 3645274,
e.mail: epy@epy.gr
Συντονιστές έργου ΣΠ. ΜΠΑΚΟΓΙΆΝΝΗΣ,πρόεδρος Δ.Σ.
  ΒΑΣ. ΜΙΧΑΛΑΚΌΠΟΥΛΟΣ,μέλος Δ.Σ.

Ενέργεια 1.1.α: «Προγράμματα Βιβλία»

Επιστημονικός Υπεύθυνος Ενέργειας Θεόδωρος Γ. Εξαρχάκος, Καθηγητής του Πανεπιστημίου Αθηνών, Πρόεδρος του Παιδαγωγικού Ινστιτούτου

Έργο No 15: «Αναμόρφωση / εκ νέου σύνταξη και συγγραφή Προγραμμάτων Σπουδών και Σχολικών Βιβλίων για το Ενιαίο Λύκειο»

Επιστημονικός Υπεύθυνος Έργου Γιάννης Σαλβαράς, Επίκουρος Καθηγητής του Δημοκρίτειου Πανεπιστημίου Θράκης
Καλλιτεχνικός Υπεύθυνος Έργου Σπύρος I. Παπασπύρου Καθηγητής Εφαρμογών του ΤΕΙ Ηπείρου
ΣΤΟΙΧΕΙΑ ΕΠΑΝΕΚΔΟΣΗΣ

Λογότυπο ΕΣΠΑΗ επανέκδοση του παρόντος βιβλίου πραγματοποιήθηκε από το Ινστιτούτο Τεχνολογίας Υπολογιστών & Εκδόσεων «Διόφαντος» μέσω ψηφιακής μακέτας, η οποία δημιουργήθηκε με χρηματοδότηση από το ΕΣΠΑ / ΕΠ «Εκπαίδευση & Διά Βίου Μάθηση» / Πράξη «ΣΤΗΡΙΖΩ».

Οι διορθώσεις πραγματοποιήθηκαν κατόπιν έγκρισης του Δ.Σ. του Ινστιτούτου Εκπαιδευτικής Πολιτικής

 

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ,ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ
INΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ

 

Α. ΒΑΚΑΛΗ, Η. ΓΙΑΝΝΟΠΟΥΛΟΣ, Ν. ΙΩΑΝΝIΔΗΣ,
Χ. ΚΟΙΛΙΑΣ, Κ. ΜΑΛΑΜΑΣ, I. ΜΑΝΩΛΟΠΟΥΛΟΣ,
Π. ΠΟΛΙΤΗΣ

Η συγγραφή και η επιστηµονική επιµέλεια του βιβλίου πραγµατοποιήθηκε
υπό την αιγίδα του Παιδαγωγικού Ινστιτούτου

 

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

 

Βιβλίο Μαθητή

Γ' Γενικού Λυκείου
(Oμάδας Προσανατολισμού Θετικών Σπουδών
και Σπουδών Οικονομίας & Πληροφορικής)

 

 

 

 

ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ «ΔΙΟΦΑΝΤΟΣ»

Πρόλογος


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

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

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

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

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

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

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

 

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


Συμβουλή Χρήσιμη Πληροφορία
Εισαγωγή Διδακτικοί στόχοι
Σημείωση Προσοχή
Ορισμός Ιστορικό σημείωμα

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

Περιεχόμενα

1. Ανάλυση προβλήματος

1.1 Η έννοια πρόβλημα

1.2 Κατανόηση προβλήματος

1.3 Δομή προβλήματος

1.4 Καθορισμός απαιτήσεων

1.5 Κατηγορίες προβλημάτων

1.6 Πρόβλημα και υπολογιστής

2. Βασικές Έννοιες Αλγορίθμων

2.1 Τι είναι αλγόριθμος

2.2 Σπουδαιότητα αλγορίθμων

2.3 Περιγραφή και αναπαράσταση αλγορίθμων

2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου

2.4.1 Δομή ακολουθίας

2.4.2 Δομή Επιλογής

2.4.3 Διαδικασίες πολλαπλών επιλογών

2.4.4 Εμφωλευμένες Διαδικασίες

2.4.5 Δομή Επανάληψης

3. Δομές Δεδομένων και Αλγόριθμοι

3.1 Δεδομένα

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

3.3 Πίνακες

3.4 Στοίβα

3.5 Ουρά

3.6 Αναζήτηση

3.7 Ταξινόμηση

3.8 Αναδρομή

 

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

 

3.8.1 Υπολογισμός του παραγοντικού

3.8.2 Υπολογισμός του μέγιστου κοινού διαιρέτη

3.8.3 Υπολογισμός αριθμών ακολουθίας Fibonacci

3.9 Αλλες δομές δεδομένων

3.9.1 Λίστες

3.9.2 Δένδρα

3.9.3 Γράφοι

4. Τεχνικές Σχεδίασης Αλγορίθμων

4.1 Ανάλυση προβλημάτων

4.2 Μέθοδοι σχεδίασης αλγορίθμων

4.3 Μέθοδος διαίρει και βασίλευε

4.4 Δυναμικός προγραμματισμός

4.5 Απληστη μέθοδος

5. Ανάλυση Αλγορίθμων

5.1 Επίδοση αλγορίθμων

5.1.1 Χειρότερη περίπτωση ενός αλγορίθμου

5.1.2 Μέγεθος εισόδου ενός αλγορίθμου

5.1.3 Χρόνος εκτέλεσης προγράμματος ενός αλγορίθμου

5.1.4 Αποδοτικότητα αλγορίθμων

5.2 Ορθότητα αλγορίθμων

5.3 Πολυπλοκότητα αλγορίθμων

5.3.1 Ταξινόμηση ευθείας ανταλλαγής

5.3.2 Γραμμική αναζήτηση

5.4 Είδη αλγορίθμων

6. Εισαγωγή στον προγραμματισμό

6.1 Η έννοια του προγράμματος

Περιεχόμενα vii

6.2 Ιστορική αναδρομή

6.2.1 Γλώσσες μηχανής

6.2.2 Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου

6.2.3 Γλώσσες υψηλού επιπέδου

6.2.4 Γλώσσες 4 ns γενιάς

6.3 Φυσικές και τεχνητές γλώσσες

6.4 Τεχνικές σχεδίασης προγραμμάτων

6.4.1 Ιεραρχική σχεδίαση προγράμματος

6.4.2 Τμηματικός προγραμματισμός

6.4.3 Δομημένος προγραμματισμός

6.5 Αντικειμενοστραφής προγραμματισμός

6.6 Παράλληλος προγραμματισμός

6.7 Προγραμματιστικά περιβάλλοντα

7. Βασικά στοιχεία προγραμματισμού

7.1 Το αλφάβητο της ΓΛΩΣΣΑΣ

7.2 Τύποι δεδομένων

7.3 Σταθερές

7.4 Μεταβλητές

7.5 Αριθμητικοί τελεστές

7.6 Συναρτήσεις

7.7 Αριθμητικές εκφράσεις

7.8 Εντολή εκχώρησης

7.9 Εντολές εισόδου-εξόδου

7.10 Δομή προγράμματος

8. Επιλογή και επανάληψη

8.1 Εντολές Επιλογής

8.1.1 Εντολή ΑΝ

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

 

8.1.2 Εντολή ΕΠΙΛΕΞΕ

8.2 Εντολές επανάληψης

8.2.1 Εντολή ΟΣΟ...ΕΠΑΝΑΛΑΒΕ

8.2.2 Εντολή ΜΕΧΡΙΣ_ΟΤΟΥ

8.2.3 Εντολή ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ

9. Πίνακες

9.1. Μονοδιάστατοι πίνακες

9.2. Πότε πρέπει να χρησιμοποιούνται πίνακες

9.3. Πολυδιάστατοι πίνακες

9.4. Τυπικές επεξεργασίες πινάκων

10. Πίνακες

10.1. Τμηματικός προγραμματισμός

10.2. Χαρακτηριστικά των υποπρογραμμάτων

10.3. Πλεονεκτήματα του τμηματικού προγραμματισμού

10.4. Παράμετροι

10.5. Διαδικασίες και συναρτήσεις

10.5.1 Ορισμός και κλήση συναρτήσεων

10.5.2 Ορισμός και κλήση διαδικασιών

10.5.3 Πραγματικές και τυπικές παράμετροι

10.6. Εμβέλεια μεταβλητών-σταθερών

10.7. Αναδρομή

11. Σύγχρονα προγραμματιστικά περιβάλλοντα

11.1. Αντικειμενοστραφής προγραμματισμός

11.1.1 Αντικείμενα

11.1.2 Κλάσεις

11.1.3 Ιδιότητες

Περιεχόμενα ix

11.1.4 Μέθοδοι

11.2. Οδηγούμενος από γεγονότα προγραμματισμός

11.2.1 Διαδικασίες

11.2.2 Ροή εκτέλεσης εφαρμογής

11.3. Υλοποίηση εφαρμογών σε σύγχρονο προγραμματιστικό περιβάλλον

11.4. Στοιχεία γραφικού προγραμματιστικού περιβάλλοντος

11.4.1 Μενού επιλογών

11.4.2 Πλαίσια διαλόγου

11.5. Επικοινωνία με άλλες εφαρμογές

12. Σχεδίαση διεπαφής χρήστη

12.1. Διεπαφή χρήστη

12.2. Τύποι διεπαφής χρήστη

12.3. Γενική σχεδίαση διεπαφής χρήστη

12.4. Οπτική σχεδίαση της διεπαφής χρήστη

12.4.1 Το χρώμα

12.4.2 Μηνύματα λάθους

12.5. Ηχητική σχεδίαση της διεπαφής χρήστη

13. Εκσφαλμάτωση προγράμματος

13.1 Κατηγορίες λαθών

13.2 Εκσφαλμάτωση

13.3., Εργαλεία εκσφαλμάτωσης

13.4 Χειρισμός λαθών κατά το χρόνο εκτέλεσης

14. Αξιολόγηση - Τεκμηρίωση

14.1 Κριτήρια αξιολόγησης προγράμματος

14.1.1 Απλότητα - τυπικότητα

14.1.2 Ευελιξία

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

 

14.1.3 Αξιοπιστία

14.1.4 Ταχύτητα

14.2 Τεκμηρίωση του Προγράμματος

14.2.1 Λόγοι τεκμηρίωσης

14.2.2 Κατηγορίες τεκμηρίωσης

14.2.3 Φάκελλος Προγράμματος

14.3 Κύκλος Ζωής Λογισμικού

Παράρτημα: Πίνακας ASCII

Ευρετήριο Αλγορίθμων

Γλωσσάριο

Λεξικό όρων

Ευρετήριο