2. 3ο Γυμνάσιο Καστοριάς
Πληροφορικό
Γ’ Γυμναςύου
Κεφάλαιο 1
Ειςαγωγή ςτην Έννοια του Αλγορίθμου
και τον Προγραμματιςμό.
2 Ντινολϊζοσ Φρόςτοσ - Ηλεκτρολόγοσ Μηχανικόσ & Μηχανικόσ Η/Τ
3. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Η έννοια του προβλήματοσ
Ση λϋξη πρόβλημα την ϋχουμε ςυναντόςει πολλϋσ φορϋσ από τισ πρώτεσ
τϊξεισ του ςχολεύου. Έχουμε λύςει για παρϊδειγμα προβλόματα ςτα
Μαθηματικϊ και τη Υυςικό
Όμωσ:
• τι εύναι πρόβλημα;
• ποιεσ κατηγορύεσ προβλημϊτων υπϊρχουν;
• πώσ μπορούμε να περιγρϊψουμε με ςαφόνεια τη λύςη ενόσ προβλόματοσ;
3
4. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Σι ονομάζουμε Πρόβλημα;
Πρόβλημα θεωρούμε κϊθε ζότημα που τύθεται προσ
επύλυςη, κϊθε κατϊςταςη που μασ απαςχολεύ και
πρϋπει να αντιμετωπιςτεύ.
Η λύςη ενόσ προβλόματοσ δεν μασ εύναι γνωςτό, ούτε προφανόσ.
4
5. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Κατηγορίεσ προβλημάτων
Προβλήματα που αντιμετωπίζουμε καθημερινά όπωσ:
• ποιοσ εύναι ο πιο ςύντομοσ δρόμοσ, για να πϊμε ςτο ςχολεύο μασ
• πώσ να οργανώςουμε μια εκδρομό
• πώσ να τακτοποιόςουμε τα βιβλύα ςτη βιβλιοθόκη
Σα παραπάνω προβλήματα είναι ςχετικά απλά και ςύντομα βρίςκουμε τη λύςη τουσ
5
6. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Κατηγορίεσ προβλημάτων
Προβλήματα που είναι αρκετά πολύπλοκα και η λύςη τουσ μασ
δυςκολεύει ιδιαίτερα:
• η ρύπανςη τησ ατμόςφαιρασ
• η εξοικονόμηςη ενϋργειασ
• η θεραπεύα οριςμϋνων αςθενειών
• η εξερεύνηςη του διαςτόματοσ
• η καταςκευό μιασ γϋφυρασ μεγϊλου μόκουσ
6
7. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Κατηγορίεσ προβλημάτων
Τπάρχουν επίςησ άλλεσ κατηγορίεσ προβλημάτων που:
• εύτε δεν μπορούμε να τα επιλύςουμε με τισ μϋχρι τώρα γνώςεισ μασ, όπωσ
η ακριβόσ πρόβλεψη των ςειςμών, η γόρανςη του ανθρώπου, η ανακϊλυψη
εξωγόινων πολιτιςμών και η επικοινωνύα μαζύ τουσ
• εύτε ϋχει αποδειχθεύ ότι δεν μπορούμε να τα επιλύςουμε, όπωσ: ο
τετραγωνιςμόσ του κύκλου με κανόνα και διαβότη ό το ταξύδι ςτο
παρελθόν.
7
8. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Κατηγορίεσ προβλημάτων
Σα προβλόματα που καλούμαςτε να επιλύςουμε ςτο ςχολεύο εύναι ςυνόθωσ
υπολογιςτικϊ και απαιτούν μια ςειρϊ λογικϋσ ςκϋψεισ και μαθηματικϋσ
πρϊξεισ.
• Για παρϊδειγμα, ποιο εύναι το εμβαδόν ενόσ τετραγώνου με πλευρϊ
μόκουσ 10 εκατοςτών
• ςε πόςο χρόνο θα πϋςει ϋνα αντικεύμενο που εκτελεύ ελεύθερη πτώςη από
ύψοσ 10 μϋτρων;
8
9. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Κατηγορίεσ προβλημάτων
Τπολογιςτικά προβλήματα που καλούμαςτε να επιλύςουμε ςτην
καθημερινή μασ ζωή:
• ποιοσ εύναι ο μϋςοσ όροσ τησ βαθμολογύασ μου
• τι διαςτϊςεισ πρϋπει να ϋχει το γραφεύο που θα αγορϊςω για να χωρϊει
ςτο δωμϊτιο μου;
• πόςα χρόματα χρειϊζονται για να αγορϊςω ϋνα CD μουςικόσ αν αρχικϊ
κοςτύζει 15 € αλλϊ ϋχει και ϋκπτωςη 20%
9
10. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Ποια είναι τα βαςικά ςτοιχεία ενόσ
προβλήματοσ;
• τα δεδομένα (εύναι τα ςτοιχεύα που μασ εύναι γνωςτϊ και μπορούν να βοηθόςουν ςτην επύλυςη
ενόσ προβλόματοσ)
• το ζητούμενο ( αυτό που ψϊχνουμε )
• η επίλυςη ( Η διαδικαςύα μϋςω τησ οπούασ βρύςκουμε το ζητούμενο και επιτυγχϊνουμε τον επιθυμητό ςτόχο)
10
11. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Επίλυςη ενόσ προβλήματοσ
Τπϊρχουν προβλόματα των οπούων τη λύςη μπορούμε να
περιγρϊψουμε με ακρύβεια (π.χ ο υπολογιςμόσ τησ υποτεύνουςασ
ενόσ ορθογωνύου τριγώνου)
και προβλόματα που δεν ϋχουν ακριβό λύςη (π.χ η αξιοπούηςη του
ελεύθερου χρόνου μασ)
Πολλϋσ φορϋσ πρϋπει να ελϋγχουμε αν τα δεδομϋνα που ϋχουμε εύναι
επαρκό για επιλύςουμε το πρόβλημα.
11
12. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Επίλυςη ενόσ προβλήματοσ
Πολλϋσ φορϋσ η επύλυςη ενόσ προβλόματοσ χρειϊζεται
περιςςότερη διερεύνηςη.
Παρϊδειγμα:
Ένασ εργϊτησ χτύζει 1 μϋτρο τούχο ςε 2 ώρεσ. Σε πόςο χρόνο θα
ϋχει ολοκληρώςει το χτύςιμο 11 μϋτρων, αν δουλϋψει μόνοσ του;
Η απάντηςη: ςε 22 ώρεσ φαύνεται λογικό, αλλϊ ξεχνϊμε ότι
ϋνασ εργϊτησ δεν μπορεύ να δουλϋψει 22 ώρεσ ςυνεχόμενεσ!
12
13. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Επίλυςη ενόσ προβλήματοσ
Έτςι για να επιλύςουμε ϋνα πρόβλημα αρχικϊ πρϋπει να το
κατανοόςουμε. Πρϋπει δηλαδό να καταλϊβουμε καλϊ το περιεχόμενο
του, να διακρύνουμε τα δεδομϋνα που ϋχουμε ςτη διϊθεςη μασ, και τα
ζητούμενα του.
Ακόμη πρϋπει να προςδιορύςουμε και το «περιβϊλλον» ό πλαύςιο
μϋςα ςτο οπούο εντϊςςεται το πρόβλημα (χώροσ του προβλόματοσ)
13
14. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Σο «περιβάλλον» - Χώροσ του προβλήματοσ
Για παρϊδειγμα ςτο ςύνολο των φυςικών αριθμών η αφαύρεςη 3-9
εύναι αδύνατη. το ςύνολο των ακεραύων αριθμών η ύδια αφαύρεςη
ϋχει αποτϋλεςμα 3-9 = -6
το παρϊδειγμα τησ οργϊνωςησ μιασ ςχολικόσ εκδρομόσ το
περιβϊλλον του προβλόματοσ εύναι το ςχολικό περιβϊλλον. Η
οργϊνωςη μιασ εκπαιδευτικόσ εκδρομόσ ϋχει αρκετϊ διαφορετικϊ
χαρακτηριςτικϊ από μια εκδρομό με φύλουσ.
14
15. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Σα ςτάδια αντιμετώπιςησ ενόσ προβλήματοσ είναι:
Κατανόηςη
Ανάλυςη
Επίλυςη
15
16. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Ανάλυςη ενόσ προβλήματοσ
Σα περιςςότερα προβλόματα εύναι ςύνθετα και δεν
μασ ϋρχεται ςτο νου η λύςη τουσ με την πρώτη ματιϊ.
Για να μπορϋςουμε να λύςουμε ϋνα ςύνθετο πρόβλημα
εύναι αναγκαύο να το αναλύςουμε ςε απλούςτερα
προβλόματα.
16
18. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Περιγραφή τησ λύςησ ενόσ προβλήματοσ
Η περιγραφό τησ λύςησ ενόσ προβλόματοσ περιϋχει
ςυχνϊ δυςκολύεσ.
Όταν θϋλουμε να δώςουμε οδηγύεσ ςε κϊποιον για να
κϊνει μια ςύνθετη εργαςύα διαπιςτώνουμε πόςο
δύςκολη εύναι η ςωςτή διατύπωςη οδηγιών.
18
19. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Περιγραφή τησ λύςησ ενόσ προβλήματοσ
Οι ςαφεύσ και απλϋσ οδηγύεσ εύναι περιςςότερο
απαραύτητεσ όταν ςτην προςπϊθεια επύλυςησ ενόσ
προβλόματοσ ςυμμετϋχουν περιςςότεροι ϊνθρωποι
που πρϋπει να ςυνεργαςτούν μεταξύ τουσ.
19
20. Κεφάλαιο 1. Παράγραφοσ 1.1.
Η έννοια του προβλήματοσ
Περιγραφή τησ λύςησ ενόσ προβλήματοσ
Οι οδηγύεσ θα πρϋπει να ϋχουν διατυπωθεύ ςε
ξεχωριςτϊ βόματα – ενϋργειεσ, με λογικό ςειρϊ και με
απλϊ λόγια, ώςτε ο καθϋνασ να μπορεύ να τισ
καταλϊβει και να τισ εκτελϋςει.
Παράδειγμα: Οι οδηγύεσ που μπορούμε να δούμε ςε ϋνα πλούο
για το πώσ μπορούμε να βϊλουμε ϋνα ςωςύβιο θαλϊςςησ ςε
περύπτωςη ανϊγκησ.
20
21. Κεφάλαιο 1. Παράγραφοσ 1.2.
Σι είναι αλγόριθμοσ
Σι ονομάζουμε Αλγόριθμο;
Αλγόριθμο ονομϊζουμε τη ςαφό και ακριβό
περιγραφό μιασ ςειρϊσ ξεχωριςτών οδηγιών -
βημϊτων για την επύλυςη ενόσ προβλόματοσ.
21
22. Κεφάλαιο 1. Παράγραφοσ 1.2.
Σι είναι αλγόριθμοσ
Μ’ άλλα λόγια…
Οι οδηγύεσ που δύνουμε με λογικό ςειρϊ ώςτε να εκτελϋςουμε
μια εργαςύα ό να επιλύςουμε ϋνα πρόβλημα ςυνθϋτουν ϋνα
Αλγόριθμο. Για παρϊδειγμα οι οδηγύεσ για την καταςκευό ενόσ
χαρταετού αποτελούν ϋνα αλγόριθμο.
Ακόμη αλγόριθμοσ μπορεύ να εύναι και μια ςυνταγό μαγειρικόσ ό
ακόμη και οι οδηγύεσ βόμα - βόμα για την επύλυςη ενόσ
μαθηματικού προβλόματοσ.
22
23. Κεφάλαιο 1. Παράγραφοσ 1.2.
Σι είναι αλγόριθμοσ
Για παρϊδειγμα ασ δούμε τα βόματα που πρϋπει να ακολουθηθούν, ώςτε να
μαγειρϋψει ϋνασ ϊπειροσ μϊγειρασ μια μακαρονϊδα:
1. Άνοιξε το μϊτι τησ κουζύνασ ςτο 2.
2. Βϊλε 3 λύτρα νερό ςε μύα κατςαρόλα χωρητικότητασ 4 λύτρων. Eρφηήζεις:
3. Βϊλε την κατςαρόλα ςτο μϊτι τησ κουζύνασ, που ϋχεισ όδη ανϊψει. 1 Τι θα σςμβεί αν ξεσάσοςμε
4. Πρόςθεςε ςτην κατςαρόλα μύα κουταλιϊ τησ ςούπασ αλϊτι. την εντολή 9 στον παπαπάνω
5. Περύμενε μϋχρι να βρϊςει το νερό. αλγόπιθμο;
6. Βγϊλε τα μακαρόνια από το πακϋτο. 2 Μποπούμε να
7. Βϊλε τα μακαρόνια ςτην κατςαρόλα. αντιμεταθέσοςμε τιρ εντολέρ 7
και 8;
8. Ανακϊτευε τα μακαρόνια για 10 λεπτϊ.
9. Κλεύςε το μϊτι τησ κουζύνασ που ϊνοιξεσ. 3 Τι θα σςμβεί, αν
10. Βγϊλε την κατςαρόλα από το μϊτι τησ κουζύνασ. αντικαταστήσοςμε την εντολή
στο βήμα 4 με την εντολή
11. Άδειαςε τα μακαρόνια από την κατςαρόλα ςε ϋνα ςουρωτόρι. «ππόσθεσε αλάτι»;
12. Ρύξε κρύο νερό από τη βρύςη ςτα μακαρόνια για 20 δευτερόλεπτα.
4 Αν αντιμεταθέσοςμε τιρ
13. Άφηςε για 2 λεπτϊ τα μακαρόνια να ςτραγγύξουν. εντολέρ 1 και 2, θα ςπάπξει
14. ερβύριςε τα μακαρόνια ςτο πιϊτο. κάποιο ππόβλημα στον
15. Πρόςθεςε ςε κϊθε πιϊτο 3 κουταλιϋσ τησ ςούπασ τριμμϋνο τυρύ. αλγόπιθμο;
23
24. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Ποιεσ είναι οι ιδιότητεσ ενόσ Αλγορίθμου;
1. Κϊποτε πρϋπει να τελειώνει.
2. Οι εντολϋσ θα πρϋπει να ϋχουν ακρύβεια και ςαφόνεια.
3. Οι εντολϋσ θα πρϋπει να εύναι εκφραςμϋνεσ με απλϊ λόγια.
24
25. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Κάποτε πρέπει να τελειώνει.
Αλγόριθμος δημιοσργίας ενός λοσλοσδιού με Το αποηέλεζμα σλοποίηζης ηοσ
10 πέηαλα Αλγορίθμοσ
επανάλαβε 10 θορές[ζτεδίαζε_πέηαλο]
Επανάλαβε ςυνεχώσ [ςχεδίαςε πέταλο]
Η παραπϊνω οδηγύα δεν μπορεύ να θεωρηθεύ αλγόριθμοσ γιατύ ο υπολογιςτόσ θα
ςχεδιϊζει πϋταλα ςυνεχώσ χωρύσ να ςταματόςει ποτϋ!
25
26. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Οι εντολέσ θα πρέπει να έχουν ακρίβεια και
ςαφήνεια
ώςτε να μην μπερδευτεύ αυτόσ που θα υλοποιόςει τον
αλγόριθμο και τισ εκτελϋςει με λανθαςμϋνο τρόπο
Για παρϊδειγμα ςε μια ςυνταγό μαγειρικόσ θα πρϋπει να
περιγρϊψουμε ακριβώσ την ποςότητα αλατιού που θα ρύξει ο
μϊγειρασ (π.χ μια κουταλιϊ ό 20 gr)
26
27. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Οι εντολέσ θα πρέπει να είναι εκφραςμένεσ
με απλά λόγια
ώςτε να εύναι απόλυτα κατανοητϋσ
27
28. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
χεδίαςη Αλγορίθμου
Δεν πρϋπει να ξεχνϊμε ότι ο αλγόριθμοσ εύναι η περιγραφό τησ
λύςησ ενόσ προβλόματοσ με μια ςυγκεκριμϋνη διαδοχικό ςειρϊ
βημϊτων.
Για να μπορϋςουμε να περιγρϊψουμε ςε κϊποιον τα βόματα
που οδηγούν ςτη λύςη ενόσ προβλόματοσ, πρϋπει πρώτα να
ϋχουμε κατανοόςει το πρόβλημα, να βρούμε λύςη και ςτη
ςυνϋχεια να περιγρϊψουμε τη λύςη με μορφό αλγορύθμου.
28
29. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
1ο Παράδειγμα
Παράδειγμα 1: «Έχει κϊποιοσ ϋνα πρόβατο, ϋνα λύκο και ϋνα καφϊςι με χόρτα ςτη
μύα όχθη ενόσ ποταμού και θϋλει να τα περϊςει ςτην απϋναντι όχθη
χρηςιμοποιώντασ μύα βϊρκα. Η βϊρκα όμωσ εύναι μικρό και μπορεύ να
μεταφϋρει, εκτόσ από τον ύδιο, ϊλλο ϋνα από τα ζώα ό το καφϊςι.
Ωςτόςο δεν πρϋπει να μεύνουν μαζύ ο λύκοσ με το πρόβατο και το
πρόβατο με τα χόρτα. Μπορεύτε να δώςετε οδηγύεσ ςτο βαρκϊρη για
το πώσ πρϋπει να κϊνει τη μεταφορϊ τουσ;»
Δεδομένα: 1 πρόβατο, 1 λύκοσ, 1 καφϊςι με χόρτα, μύα θϋςη επιπλϋον ςτη βϊρκα, 2 όχθεσ ποταμού.
Πλαίςιο του Ο λύκοσ δεν πρϋπει να μεύνει μαζύ με το πρόβατο.
προβλήματοσ: Σο πρόβατο δεν πρϋπει να μεύνει μαζύ με τα χόρτα.
Ζητούμενο: Να περϊςει ο λύκοσ, το πρόβατο και το καφϊςι με τα χόρτα ςτην απϋναντι όχθη.
29
30. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
1ο Παράδειγμα
Για να κατανοόςουμε καλύτερα το περιβϊλλον του προβλόματοσ μπορούμε να
κϊνουμε μια ςχηματικό αναπαρϊςταςη του ςτο χαρτύ όπωσ φαύνεται ςτην εικόνα 1.1.
Σώρα εύμαςτε ϋτοιμοι να ςκεφτούμε τισ πιθανϋσ λύςεισ του προβλόματοσ. Σελικϊ
μετϊ από διϊφορεσ ςκϋψεισ και πειραματιςμούσ καταλόγουμε ςτην τελικό περιγραφό
τησ λύςησ του προβλόματοσ.
30 Εικόνα 1.1 Στημαηική αναπαράζηαζη ηοσ προβλήμαηος.
31. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Αλγόριθμοσ για το 1ο Παράδειγμα
Αρχή του αλγορίθμου:
9. Πόγαινε ςτην αρχικό όχθη.
1. Βϊλε το πρόβατο ςτη βϊρκα. 10. Άφηςε το πρόβατο ςτην όχθη.
2. Πόγαινε ςτην απϋναντι όχθη. 11. Βϊλε το λύκο ςτη βϊρκα.
3. Άφηςε το πρόβατο ςτην όχθη. 12. Πόγαινε ςτην απϋναντι όχθη.
4. Γύρνα πύςω ςτην αρχικό όχθη. 13. Άφηςε το λύκο ςτην όχθη.
5. Υόρτωςε το καφϊςι με τα χόρτα. 14. Γύρνα πύςω ςτην αρχικό όχθη.
6. Πόγαινε ςτην απϋναντι όχθη. 15. Βϊλε το πρόβατο ςτη βϊρκα
7. Άφηςε το καφϊςι ςτην όχθη. 16. Πόγαινε ςτην απϋναντι όχθη.
8. Βϊλε το πρόβατο ςτη βϊρκα. 17. Άφηςε το πρόβατο ςτην όχθη.
Σέλοσ του αλγορίθμου
31
32. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
2ο Παράδειγμα
Παρϊδειγμα 2: Θϋλουμε να περιγρϊψουμε ςε ϋνα μικρό παιδύ πώσ θα δημιουργόςει με
τισ πατούςεσ του ϋνα τετρϊγωνο ςτην ϊμμο. Αν το παιδύ δε γνωρύζει τι
ςχόμα θϋλουμε να αποτυπωθεύ ςτην ϊμμο, ποιεσ εύναι οι κατϊλληλεσ
οδηγύεσ που θα του δώςουμε;
Κατ’ αρχϊσ πρϋπει να αναλύςουμε την ϋννοια «τετρϊγωνο»:
• Ένα τετρϊγωνο εύναι ϋνα κλειςτό γεωμετρικό ςχόμα με 4 ίςεσ πλευρέσ.
Άρα, για να ςχηματύςουμε τισ πλευρϋσ, πρϋπει κϊθε φορϊ να κϊνουμε τον
ύδιο αριθμό βημϊτων
• Ένα τετρϊγωνο ϋχει 4 ορθϋσ γωνύεσ δηλ. 4 γωνίεσ των 90ο. Άρα, μόλισ
ςχηματύζουμε μύα πλευρϊ πρϋπει να γυρνϊμε κατϊ 90ο γύρω από τον εαυτό
μασ και πϊντοτε με την ύδια φορϊ.
32
34. Κεφάλαιο 1. Παράγραφοσ 1.3.
Ιδιότητεσ Αλγορίθμου
Ανατροφοδοτούμενοσ ςχεδιαςμόσ
Μερικϋσ φορϋσ ϋνασ αλγόριθμοσ μπορεύ να μη μασ δώςει τα
προςδοκώμενα αποτελϋςματα.
Σότε εύμαςτε υποχρεωμϋνοι να γυρύςουμε πύςω ςτισ εντολϋσ που
δώςαμε και να ελϋγξουμε που κϊνουμε λϊθοσ. τη ςυνϋχεια
αντικαθιςτούμε τισ λανθαςμϋνεσ εντολϋσ με τισ ςωςτϋσ και
υλοποιούμε ξανϊ τον αλγόριθμο.
Αυτό η ανατροφοδοτούμενη μορφή ςχεδιαςμού μασ βοηθϊει να
καταλϊβουμε καλύτερα το πρόβλημα και την επύλυςη του.
34
35. Κεφάλαιο 1. Παράγραφοσ 1.4.
Τλοποίηςη Αλγορίθμου με
υπολογιςτή - Προγραμματιςμόσ
Σι είναι Πρόγραμμα;
Πρόγραμμα εύναι η αναπαρϊςταςη ενόσ αλγορύθμου
ςε γλώςςα κατανοητό για ϋνα υπολογιςτό.
35
36. Κεφάλαιο 1. Παράγραφοσ 1.4.
Τλοποίηςη Αλγορίθμου με
υπολογιςτή - Προγραμματιςμόσ
Από τι αποτελείται ένα Πρόγραμμα;
Αποτελεύται από μια ςειρϊ εντολών που δύνονται ςτον
υπολογιςτό με ςκοπό να εκτελϋςει μια ςυγκεκριμϋνη
λειτουργύα ό να υπολογύςει ϋνα επιθυμητό
αποτϋλεςμα.
36
37. Κεφάλαιο 1. Παράγραφοσ 1.4.
Τλοποίηςη Αλγορίθμου με
υπολογιςτή - Προγραμματιςμόσ
Σι είναι Προγραμματιςμόσ και τι
Προγραμματιςτέσ;
Η διαδικαςύα ςύνταξησ (καταςκευόσ) ενόσ
προγρϊμματοσ λϋγεται Προγραμματιςμόσ ενώ τα
ϊτομα που γρϊφουν και ςυντϊςςουν ϋνα πρόγραμμα
ονομϊζονται Προγραμματιςτέσ.
37
38. Κεφάλαιο 1. Παράγραφοσ 1.4.
Τλοποίηςη Αλγορίθμου με
υπολογιςτή - Προγραμματιςμόσ
Παράδειγμα προγράμματοσ;
void DisplayBlock(SBlock Block)
{
if (Block.nY < 1) return;
RECT rcBlock = g_rcBlock;
rcBlock.left = Block.nColor * BLOCK_DIAMETER;
rcBlock.right = Block.nColor * BLOCK_DIAMETER +
BLOCK_DIAMETER;
g_pDisplay->Blt( (DWORD)Block.nX * BLOCK_DIAMETER - 2 ,
(DWORD)Block.nY * BLOCK_DIAMETER ,
g_pSecondarySurface, &rcBlock );
}
Εικόνα 1.2: Σο γνωςτό παιχνίδι ΣΕΣΡΙ είναι ένα πρόγραμμα το οποίο περιλαμβάνει μια ςειρά εντολών (ένα μικρό
38
υποςύνολο των εντολών του μπορείτε να δείτε ςτα δεξιά τησ εικόνασ).
39. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Σι είναι οι γλώςςεσ προγραμματιςμού;
Οι γλώςςεσ που «καταλαβαύνουν» οι υπολογιςτϋσ εύναι τεχνητϋσ γλώςςεσ
που ονομϊζονται γλώςςεσ προγραμματιςμού. Οι γλώςςεσ
προγραμματιςμού χρηςιμοποιούνται για την επικοινωνύα του ανθρώπου με
τη μηχανό, όπωσ οι φυςικϋσ γλώςςεσ χρηςιμοποιούνται για την επικοινωνύα
μεταξύ των ανθρώπων.
Οι γλώςςεσ προγραμματιςμού ϋχουν και αυτϋσ το δικό τουσ λεξιλόγιο και
ςυντακτικό. Αν θϋλουμε να προγραμματύζουμε τον υπολογιςτό για να εκτελεύ
πιςτϊ τισ λειτουργύεσ που του ζητϊμε πρϋπει να μϊθουμε μια γλώςςα
προγραμματιςμού.
39
40. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Γλώςςα μηχανήσ
Όπωσ εύναι γνωςτό η λειτουργύα του υπολογιςτό βαςύζεται ςτην
αναπαρϊςταςη μόνο δύο ψηφύων των «0» και «1» . τα πρώτα χρόνια των
υπολογιςτών οι ϊνθρωποι ϋπρεπε να χρηςιμοποιούν μια γλώςςα που εύχε ωσ
αλφϊβητο το «0» και «1». Η γλώςςα αυτό ονομϊςτηκε Γλώςςα Μηχανήσ.
Η γλώςςα μηχανόσ εύναι αρκετϊ δύςκολη και δεν εύναι ενιαύα ςε όλουσ τουσ
υπολογιςτϋσ μια και κϊθε τύποσ υπολογιςτό (με διαφορετικό επεξεργαςτό)
ϋχει την δικό του γλώςςα μηχανόσ.
40
41. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Γλώςςα μηχανήσ
00000000
00000001 ε ϋνα πρόγραμμα γραμμϋνο ςε γλώςςα
00000010 μηχανόσ όλεσ οι εντολϋσ αποτελούνται
00000110
00000000 από μια ςειρϊ «0» και «1»
00100000
Σμήμα Προγράμματοσ
ςε γλώςςα μηχανήσ
41
42. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Χαρακτηριςτικά γλωςςών Προγραμματιςμού;
• το αλφάβητο (εύναι το ςύνολο των χαρακτόρων που χρηςιμοποιούνται από τη γλώςςα)
• το λεξιλόγιο (το ςύνολο των λϋξεων που αναγνωρύζει η γλώςςα και ϋχουν ςυγκεκριμϋνη και
μοναδικό ςημαςύα – περιοριςμϋνο δηλ μερικϋσ δεκϊδεσ λϋξεισ)
• το ςυντακτικό (το ςύνολο των κανόνων που πρϋπει να ακολουθούμε, για να ςυνδϋουμε λϋξεισ
ςε προτϊςεισ)
42
44. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Ολοκληρωμένο προγραμματιςτικό περιβάλλον
Ένα περιβϊλλον προγραμματιςμού αποτελεύται από διϊφορα εργαλεύα που
βοηθϊνε τον προγραμματιςτό να γρϊψει και να διορθώςει το πρόγραμμϊ
του.
Σα κύρια εργαλεύα εύναι:
• ϋνασ εξειδικευμϋνοσ κειμενογρϊφοσ, που χρηςιμεύει για τη ςύνταξη και
τη διόρθωςη του προγρϊμματοσ και
• ϋνα πρόγραμμα-μεταφραςτόσ που μετατρϋπει τισ οδηγύεσ μασ ςτη μορφό
που τισ καταλαβαύνει ο επεξεργαςτόσ, δηλαδό ςε μια ςειρϊ από 0 και 1.
44
46. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Μεταγλωττιςτέσ - Διερμηνείσ
Σα προγρϊμματα που μετατρϋπουν τισ οδηγύεσ μασ ςε
0 και 1 μπορούν να χωριςτούν ςε δύο κατηγορύεσ:
• ςτουσ μεταγλωττιςτέσ (compilers)
• ςτουσ διερμηνείσ (interpreters)
46
47. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Μεταγλωττιςτέσ - Διερμηνείσ
• Οι μεταγλωττιςτέσ (compilers) θα ελϋγξουν όλο το
πρόγραμμα για ςυντακτικϊ λϊθη και μετϊ θα το μετατρϋψουν όλο
ςε κατϊλληλη ςειρϊ από 0 και 1, ώςτε να μπορεύ να εκτελεςτεύ από
την Κεντρικό Μονϊδα Επεξεργαςύασ του υπολογιςτό.
• Οι διερμηνείσ (interpreters) ελϋγχουν μία οδηγία κϊθε φορϊ,
την εκτελούν και μετϊ ελϋγχουν την επόμενη οδηγύα. Η γλώςςα
προγραμματιςμού Logo, που θα δούμε ςτο επόμενο κεφϊλαιο,
χρηςιμοποιεύ διερμηνϋα.
47
48. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
υντακτικά και Λογικά Λάθη
Σα λϊθη που μπορούμε να κϊνουμε όταν γρϊφουμε
ϋνα πρόγραμμα μπορούν να χωριςτούν ςε δύο
κατηγορύεσ:
• ςτα ςυντακτικά
• ςτα λογικά
48
49. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
υντακτικά λάθη
Αν ςε κϊποια οδηγύα ϋχουμε κϊνει λϊθοσ ςτο
αλφϊβητο, ςτο λεξιλόγιο ό ςτο ςυντακτικό τότε
το πρόγραμμα που μετατρϋπει τισ οδηγύεσ μασ
ςε 0 και 1 θα μασ δώςει ϋνα κατϊλληλο μόνυμα
λϊθουσ ώςτε να μασ βοηθόςει να διορθώςουμε
το λϊθοσ μασ. Σα λϊθη αυτϊ ονομϊζονται
ςυντακτικά λϊθη.
49
50. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Λογικά Λάθη
Αν το αποτϋλεςμα που προκύπτει από την εκτϋλεςη ενόσ
προγρϊμματοσ δεν εύναι το αναμενόμενο, τότε το
πρόβλημα δε βρύςκεται ςτον τρόπο εκτϋλεςησ, αλλϊ ςτον
αλγόριθμο που καταςκευϊςαμε.
την περύπτωςη αυτό λϋμε ότι ϋχουμε κϊνει ϋνα λογικό
λϊθοσ και θα πρϋπει να ελϋγξουμε μια προσ μια τισ
εντολϋσ του αλγορύθμου για να διαπιςτώςουμε αν
δύνουμε τισ κατϊλληλεσ εντολϋσ με τη ςωςτό ςειρϊ.
50
51. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Η εκτέλεςη ενόσ αλγορίθμου από τον υπολογιςτή
Μετατποπή τος ππογπάμματορ Εκτέλεση τος ππογπάμματορ
Αλγόπιθμορ Ππόγπαμμα σε 0 και 1 (γλώσσα μησανήρ) στον επεξεπγαστή
51 χήμα 1.3 Σα ςτάδια για την εκτέλεςη ενόσ αλγορίθμου από την Κ.Μ.Ε του υπολογιςτή
52. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Βαςικά ςημεία όταν προγραμματίζουμε
Για τον υπολογιςτό τύποτε δεν εύναι αυτονόητο. Ενώ εμεύσ οι ϊνθρωποι
ϋχουμε την ικανότητα να ςυμπληρώνουμε τισ οδηγύεσ κϊποιου με τη
λογικό και την εμπειρύα μασ, ο υπολογιςτόσ χρειϊζεται να περιγρϊψουμε
με μεγϊλη ακρύβεια τισ εντολϋσ μασ, για να τισ εκτελϋςει.
Για παρϊδειγμα αν του δώςουμε μια εντολό να υπολογύςει ϋνα ϊθροιςμα
δεν εύναι αυτονόητο ότι θα εμφανύςει και το αποτϋλεςμα. Θα πρϋπει να
του δώςουμε μια ξεχωριςτό εντολό ώςτε να το εμφανύςει.
52
53. Κεφάλαιο 1. Παράγραφοσ 1.5.
Γλώςςεσ Προγραμματιςμού
Βαςικά ςημεία όταν προγραμματίζουμε
Για να φτιϊξουμε ϋνα καλό πρόγραμμα θα πρϋπει
πρώτα να ϋχουμε ςχεδιϊςει ϋνα καλό αλγόριθμο.
Άρα ο ρόλοσ του ανθρώπου ςτην επύλυςη
προβλημϊτων με την χρόςη υπολογιςτό εύναι
θεμελιώδησ.
53
55. Κεφάλαιο 1. Ανακεφαλαίωςη
Ερωτήςεισ ωςτού - Λάθουσ
Ερωτήςεισ – ωςτό ή Λάθοσ ;
Ένα Πρόβλημα μπορεύ να λυθεύ πϊντα με
μαθηματικούσ υπολογιςμούσ
55
ΛΑΘΟ
56. Κεφάλαιο 1. Ανακεφαλαίωςη
Ερωτήςεισ ωςτού - Λάθουσ
Ερωτήςεισ – ωςτό ή Λάθοσ ;
Η επύλυςη ενόσ προβλόματοσ προηγεύται τησ
κατανόηςησ του
56
ΛΑΘΟ
57. Κεφάλαιο 1. Ανακεφαλαίωςη
Ερωτήςεισ ωςτού - Λάθουσ
Ερωτήςεισ – ωςτό ή Λάθοσ ;
Πρϋπει να καθορύςουμε τα ζητούμενα ενόσ
Προβλόματοσ για να μπορϋςουμε να το
επιλύςουμε
57
ΩΣΟ
58. Κεφάλαιο 1. Ανακεφαλαίωςη
Ερωτήςεισ ωςτού - Λάθουσ
Ερωτήςεισ – ωςτό ή Λάθοσ ;
Όλα τα προβλόματα ϋχουν λύςη
58
ΛΑΘΟ
59. Κεφάλαιο 1. Ανακεφαλαίωςη
Ερωτήςεισ ωςτού - Λάθουσ
Ερωτήςεισ – ωςτό ή Λάθοσ ;
Ένασ Αλγόριθμοσ πρϋπει πϊντοτε να «εξαςφαλύζει»
το ότι θα τερματύςει
59
ΩΣΟ