Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα οργανώσω τη βιβλιοθήκη μου; Σύνθετα προβλήματα Πως θα αντιμετωπιστεί η ρύπανση του περιβάλλοντος; Πως μπορούμε να κάνουμε εξοικονόμηση ενέργειας; Πως θα κατασκευαστεί μια γέφυρα μεγάλου μήκους; 2. Υπάρχουν προβλήματα για τα οποία δεν μπορούμε να βρούμε λύση μέχρι τώρα; Υπάρχουν προβλήματα για τα οποία με τις υπάρχουσες γνώσεις μας δεν μπορούμε να βρούμε λύση, όπως: Πως μπορούμε να προβλέψουμε ακριβώς πότε και πού θα γίνει ένας σεισμός; Ποιοι είναι οι μηχανισμοί που επιφέρουν τη γήρανση ενός οργανισμού; Υπάρχουν πολιτισμοί έξω από τη γη; Κάποια από τα προβλήματα είναι γνωστό και επιστημονικά αποδεδειγμένο ότι είναι άλυτα, όπως: Ο τετραγωνισμός του κύκλου με κανόνα και διαβήτη Το ταξίδι στο παρελθόν 3. Να δώσετε έναν ορισμό για την έννοια του προβλήματος. Πρόβλημα είναι κάθε ζήτημα που τίθεται προς επίλυση ή κάθε κατάσταση που μας απασχολεί και πρέπει να αντιμετωπιστεί. Η λύση, όταν εξετάζεται αρχικά το πρόβλημα, δεν είναι ούτε γνωστή ούτε προφανής. 4. Ποια είναι η πρώτη ενέργεια που πρέπει να κάνουμε προκειμένου να λύσουμε ένα πρόβλημα; Για να λύσουμε ένα πρόβλημα, η πρώτη ενέργεια που πρέπει να κάνουμε είναι να το μελετήσουμε προσεκτικά και να το κατανοήσουμε, προσδιορίζοντας τα δεδομένα και αυτά που ζητά. Επίσης, πρέπει να διακρίνουμε και το «περιβάλλον» του προβλήματος, δηλαδή το πλαίσιο μέσα στο οποίο βρίσκεται το πρόβλημα. Σελίδα 1
5. Εάν ένα πρόβλημα είναι σύνθετο, ποιος είναι ο καλύτερος τρόπος για να το λύσουμε; Εάν ένα πρόβλημα είναι σύνθετο, για να το επιλύσουμε πρέπει να το χωρίσουμε σε απλούστερα προβλήματα. Παράδειγμα: Με ποιον τρόπο μπορούμε να οργανώσουμε μια σχολική εκδρομή; Για να επιλύσουμε το πρόβλημα, το χωρίζουμε σε έξι επιμέρους προβλήματα: 1 ο : Εύρεση τόπου επίσκεψης 2 ο : Καθορισμός ημερομηνίας επίσκεψης 3 ο : Εξασφάλιση τρόπου μεταφοράς 4 ο : Υπολογισμός κόστους ανά μαθητή 5 ο : Συγκέντρωση βεβαιώσεων εκδρομής 6 ο : Συγκέντρωση όλων των χρημάτων Αλγόριθμος 6. Τι είναι ο Αλγόριθμος; Αλγόριθμος ονομάζεται η περιγραφή μιας σειράς από ξεχωριστές ενέργειες-βήματα, τα οποία πρέπει να γίνουν με σκοπό να επιλυθεί ένα πρόβλημα. Τα βήματα που περιέχει ένας αλγόριθμος ονομάζονται οδηγίες ή εντολές. Παρατηρήσεις Ο αριθμός των βημάτων μπορεί να είναι όσο μεγάλος θέλουμε, αλλά όχι άπειρος. Όταν σχεδιάζουμε έναν αλγόριθμο πρέπει να βάζουμε με λογική σειρά τις οδηγίες. Ο αλγόριθμος δεν αναφέρεται μόνο στην επίλυση υπολογιστικών προβλημάτων, αλλά σε οποιοδήποτε πρόβλημα, όπως π.χ. στην παρασκευή ενός γλυκού. 7. Να δώσετε δύο παραδείγματα αλγορίθμων. Παράδειγμα 1 ο : Αλγόριθμος μετάβασης ενός μαθητή από το σπίτι στο σχολείο 1. Ξύπνα και ετοιμάσου 2. Ντύσου 3. Πάρε πρωινό 4. Πάρε τα βιβλία σου 5. Βγες από το σπίτι και βάδισε στο δρόμο για το σχολείο 6. Φτάσε στο σχολείο και μπες στην αίθουσα Παράδειγμα 2 ο : Αλγόριθμος παρασκευής φρέσκου χυμού πορτοκαλιού 1. Πάρε 3 πορτοκάλια 2. Πάρε ένα στίφτη και ένα μαχαίρι 3. Κόψε με το μαχαίρι τα πορτοκάλια στη μέση 4. Στύψε στον στίφτη τα πορτοκάλια ένα ένα 5. Πέτα τις φλούδες στα σκουπίδια 6. Βάλε το χυμό από τον στίφτη σε ένα ποτήρι 7. Πλύνε τον στίφτη και το μαχαίρι Σελίδα 2
Ιδιότητες ενός Αλγορίθμου 8. Ποιες ιδιότητες πρέπει να έχει ένας αλγόριθμος; Ένας αλγόριθμος πρέπει να είναι: Αποτελεσματικός, δηλαδή όταν εκτελεστεί πρέπει να δίνει το επιδιωκόμενο αποτέλεσμα Περατός, δηλαδή να ολοκληρώνεται έπειτα από ορισμένα βήματα Ακριβής και σαφής, ώστε αυτός που θα τον εκτελέσει να ξέρει ακριβώς τι θα κάνει Κατανοητός, δηλαδή οι οδηγίες του να είναι εκφρασμένες με απλά λόγια. Υλοποίηση αλγορίθμου με υπολογιστή-προγραμματισμός 9. Τι είναι το πρόγραμμα; Το πρόγραμμα είναι μια σειρά από εντολές που δίνονται στον υπολογιστή με σκοπό να εκτελέσει κάποια συγκεκριμένη λειτουργία ή να υπολογίσει κάποιο αποτέλεσμα. Το πρόγραμμα δημιουργείται αφού ολοκληρωθεί ο αλγόριθμος για τη λύση του προβλήματος και αποτελεί την αναπαράσταση του αλγορίθμου σε μια γλώσσα που «καταλαβαίνει» ο υπολογιστής. 10. Τι ονομάζεται προγραμματισμός; Προγραμματισμός ονομάζεται η εργασία κατά την οποία δημιουργείται (συντάσσεται) ένα πρόγραμμα. 11. Τι είναι οι προγραμματιστές; Οι προγραμματιστές είναι επαγγελματίες της Πληροφορικής οι οποίοι ως αποκλειστική τους απασχόληση έχουν το να συντάσσουν προγράμματα για ηλεκτρονικούς υπολογιστές. Ο καθένας βέβαια μπορεί να δημιουργήσει ένα πρόγραμμα, αρκεί να γνωρίζει τα βασικά για μία από τις γλώσσες προγραμματισμού. Γλώσσα μηχανής 12. Ποια γλώσσα ονομάζεται γλώσσα μηχανής; Η γλώσσα μηχανής είναι η γλώσσα την οποία «καταλαβαίνει» απευθείας ο υπολογιστής και οι εντολές της αποτελούνται από δυαδικά ψηφία και έχουν μορφή 01010001010101. Όταν κατασκευάστηκαν οι πρώτοι ηλεκτρονικοί υπολογιστές, οι επιστήμονες έδιναν τις εντολές στον υπολογιστή σε γλώσσα μηχανής. Όπως μπορεί εύκολα να καταλάβει κάποιος, η γλώσσα μηχανής είναι δύσκολη. Δύσκολο επίσης είναι να γίνει η διόρθωση των λαθών που έχουν γίνει κατά τη δημιουργία ενός τέτοιου προγράμματος. Σελίδα 3
13. Όλοι οι υπολογιστές έχουν την ίδια γλώσσα μηχανής; Δεν έχουν όλοι οι υπολογιστές την ίδια γλώσσα μηχανής. Εξαρτάται από τον τύπο του επεξεργαστή που διαθέτει ο κάθε υπολογιστής. Γλώσσες προγραμματισμού 14. Με ποιον τρόπο μπορούμε να επικοινωνήσουμε απευθείας με τον υπολογιστή; Μπορούμε να επικοινωνήσουμε απευθείας με τον υπολογιστή και να του δώσουμε τις δικές μας εντολές αν χρησιμοποιήσουμε μια γλώσσα προγραμματισμού. Όπως οι φυσικές γλώσσες (ελληνικά, αγγλικά κτλ.) χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων, έτσι και οι γλώσσες προγραμματισμού χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπου και υπολογιστή. Αυτές τις «τεχνητές» γλώσσες καταλαβαίνει ένας υπολογιστής. 15. Ποια είναι η ανάγκη για τη δημιουργία των γλωσσών προγραμματισμού; Με την πάροδο των ετών οι γλώσσες προγραμματισμού εξελίχθηκαν ώστε να μοιάζουν όλο και περισσότερο με τη φυσικά μας γλώσσα. Με αυτόν τον τρόπο η εκμάθησή τους γίνεται πιο εύκολα. Για να μπορέσει ο υπολογιστής να κατανοήσει τις εντολές μιας γλώσσας προγραμματισμού, θα πρέπει αυτές να μετατραπούν σε γλώσσα μηχανής. 16. Όλες οι γλώσσες προγραμματισμού είναι ίδιες; Υπάρχουν διάφορες γλώσσες προγραμματισμού. Από αυτές, άλλες χρησιμοποιούνται για την ανάπτυξη γενικών εφαρμογών και άλλες είναι πιο εξειδικευμένες, για τη λύση επιστημονικών προβλημάτων (μαθηματικών, μηχανικής, προσομοίωσης πειραμάτων) ή για ειδικές εφαρμογές, όπως π.χ. ο προγραμματισμός ιστοσελίδων, η διαχείριση εμπορικών δεδομένων κτλ. 17. Μπορείτε να αναφέρετε μερικές γλώσσες προγραμματισμού; Μερικές συνήθεις γλώσσες προγραμματισμού είναι η Visual Basic, η C++ και η Java, ενώ παλαιότερα οι προγραμματιστές χρησιμοποιούσαν πολύ τη γλώσσα Pascal. Μια γλώσσα κατάλληλη για την εκμάθηση του προγραμματισμού από αρχάριους και ειδικότερα από παιδιά, είναι η γλώσσα Logo. Χαρακτηριστικά γλωσσών προγραμματισμού 18. Ποια είναι τα βασικά χαρακτηριστικά μιας γλώσσας προγραμματισμού; Τα βασικά χαρακτηριστικά μιας γλώσσας προγραμματισμού είναι: το αλφάβητο το λεξιλόγιο το συντακτικό Σελίδα 4
19. Τι ονομάζουμε αλφάβητο μιας γλώσσας προγραμματισμού; Αλφάβητο μιας γλώσσας προγραμματισμού είναι το σύνολο των χαρακτήρων που χρησιμοποιούνται από τη γλώσσα, π.χ. α-ω, Α-Ω και /&%^$#@»;*! 20. Τι περιλαμβάνει το λεξιλόγιο μιας γλώσσας προγραμματισμού; Το λεξιλόγιο μιας γλώσσας προγραμματισμού είναι το σύνολο των λέξεων που αναγνωρίζει η γλώσσα και έχουν συγκεκριμένη και μοναδική σημασία, π.χ. ΔΕΙΞΕ, write, ΤΥΠΩΣΕ 21. Τι είναι το συντακτικό μιας γλώσσας προγραμματισμού; Το συντακτικό μιας γλώσσας προγραμματισμού είναι το σύνολο των κανόνων που πρέπει να ακολουθούμε, για να συνδέουμε λέξεις σε προτάσεις, π.χ. ΤΥΠΩΣΕ Καλημέρα Το ολοκληρωμένο προγραμματιστικό περιβάλλον 22. Ποια είναι τα κύρια εργαλεία που πρέπει να διαθέτει ένα ολοκληρωμένο προγραμματιστικό περιβάλλον; Τα κύρια εργαλεία που πρέπει να έχει ένα ολοκληρωμένο προγραμματιστικό περιβάλλον είναι: ένας εξειδικευμένος κειμενογράφος, ο οποίος χρησιμεύει για τη σύνταξη και τη διόρθωση του προγράμματος ένα πρόγραμμα-μεταφραστής, που μετατρέπει τις εντολές του προγράμματος σε εντολές γλώσσας μηχανής (ομάδες από 0 και 1), ώστε να μπορέσει να τις εκτελέσει ο επεξεργαστής του υπολογιστή 23. Τι είναι τα συντακτικά λάθη ενός προγράμματος; Όταν γράφουμε τις εντολές του προγράμματος, πολλές φορές κάνουμε λάθη από απροσεξία στο αλφάβητο, το λεξιλόγιο ή το συντακτικό ή γιατί δε γνωρίζουμε καλά τη γλώσσα προγραμματισμού. Το αποτέλεσμα είναι να μην μπορέσει να μετατραπεί το πρόγραμμα σε γλώσσα μηχανής και γι αυτό εμφανίζεται ένα μήνυμα λάθους. Το μήνυμα έχει ως στόχο να καταλάβουμε που βρίσκεται το λάθος και να το διορθώσουμε. Τέτοιου είδους λάθη ονομάζονται συντακτικά λάθη. 24. Σε ποιες κατηγορίες χωρίζονται τα προγράμματα-μεταφραστές; Ποια είναι η διαφορά τους; Τα προγράμματα αυτά χωρίζονται σε δύο κατηγορίες: τους μεταγλωττιστές και τους διερμηνείς. Σελίδα 5
Ο μεταγλωττιστής εξετάζει ολόκληρο το πρόγραμμα και εφόσον είναι σωστά γραμμένο, το μετατρέπει σε γλώσσα μηχανής, ώστε να μπορεί να εκτελεστεί από τον υπολογιστή. Αν κατά την αρχική εξέταση ο μεταγλωττιστής συναντήσει κάποιο συντακτικό λάθος, ακυρώνει τη μετάφραση του προγράμματος. Ο διερμηνέας εξετάζει με τη σειρά καθεμία εντολή του προγράμματος και στη συνέχεια τη μετατρέπει σε γλώσσα μηχανής. Κατόπιν, η εντολή εκτελείται από τον υπολογιστή. Αν ανάμεσα στις εντολές υπάρχει κάποια που έχει συντακτικό λάθος, η εκτέλεση του προγράμματος σταματά εκεί. 25. Να αποδώσετε σχηματικά τα στάδια με τα οποία ένας αλγόριθμος εκτελείται από τον υπολογιστή Αλγόριθμος Πρόγραμμα Μετατροπή του προγράμματος σε σε γλώσσα μηχανής (ομάδες 0 και 1) Εκτέλεση του προγράμματος από την ΚΜΕ 26. Τι είναι τα λογικά λάθη; Τα λογικά λάθη είναι λάθη που οφείλονται σε ατέλειες ή μη ορθές ενέργειες τις οποίες έχουμε συμπεριλάβει στον αλγόριθμο για τη λύση του προβλήματος. Αν για παράδειγμα, φτιάξουμε έναν αλγόριθμο που υπολογίζει το μέσο όρο δύο αριθμών και αντί να διαιρούμε το άθροισμα με το 2, γράψουμε στον αλγόριθμο την εντολή να διαιρέσει με το 3, τότε το πρόγραμμα θα εκτελέσει την εντολή που του δώσαμε, αλλά δε θα προκύψει το σωστό αποτέλεσμα εξαιτίας του λάθους. 27. Ο υπολογιστής είναι σε θέση να εντοπίσει ένα λογικό λάθος; Φυσικά και όχι, επειδή είναι μια μηχανή που εκτελεί ακριβώς τις εντολές που του δίνει να εκτελέσει ο προγραμματιστής. Τα μόνα λάθη που μπορεί να διακρίνει είναι τα συντακτικά λάθη. Τα λογικά λάθη πρέπει να τα βρει και να τα διορθώσει ο ίδιος ο προγραμματιστής. Σελίδα 6