Η έννοια του προβλήματος Τι εννοούμε με τον όρο πρόβλημα; Δώστε παράδειγμα.
Η έννοια του προβλήματος Γενικά ως πρόβλημα θεωρούμε κάθε κατάσταση που πρέπει να αντιμετωπιστεί και η λύση της δεν είναι γνωστή ούτε προφανής. Παράδειγμα: Τα προβλήματα που καλούμαστε να επιλύσουμε στο σχολείο είναι συνήθως υπολογιστικά και απαιτούν μια σειρά λογικές σκέψεις και μαθηματικές πράξεις. Για παράδειγμα, ποιο είναι το εμβαδόν ενός τετραγώνου με πλευρά μήκους 10 εκατοστών ή σε πόσο χρόνο θα πέσει ένα αντικείμενο που εκτελεί ελεύθερη πτώση από ύψος 10 μέτρων;
Ποιες οι κατηγορίες προβλημάτων με κριτήριο τη δυνατότητα επίλυσης τους; Επιλύσιμα: είναι εκείνα τα προβλήματα για τα οποία η λύση έχει βρεθεί και έχει διατυπωθεί. Πχ. Η επίλυση της δευτεροβάθμιας εξίσωσης Μη επιλύσιμα: χαρακτηρίζονται εκείνα τα προβλήματα για τα οποία έχει αποδειχτεί, ότι δεν επιδέχονται λύση. Πχ. Το πρόβλημα του τετραγωνισμού του κύκλου με κανόνα και διαβήτη Ανοικτά: ονομάζονται τα προβλήματα για τα οποία η λύση τους δεν έχει ακόμα βρεθεί, ενώ ταυτόχρονα δεν έχει αποδειχτεί, ότι δεν επιδέχονται λύση. Πχ. Η απόδειξη της ύπαρξης εξωγήινων
Στάδια επίλυσης προβλήματος Κατανόηση προβλήματος (ως προς το περιεχόμενο και τα δεδομένα-ζητούμενα) Ανάλυση προβλήματος (δομή) Διαχωρισμός σε επιμέρους στοιχεία (υποπροβλήματα) Αφαίρεση στοιχείων που δεν είναι απαραίτητα (περιττές λεπτομέρειες) Επίλυση Προβλήματος
Δομή προβλήματος Είναι τα συστατικά μέρη του προβλήματος (τα επιμέρους τμήματα που το αποτελούν και ο τρόπος που αυτά συνδέονται μεταξύ τους).
Με ποιους τρόπους μπορούμε να περιγράψουμε ένα πρόβλημα; Φραστικά: περιγραφή του προβλήματος με λόγια. Διαγραμματικά (απεικόνηση της δομής του προβλήματος)
Παράδειγμα 1. Ανάλυση προβλήματος: Εξυπηρέτηση πολιτών από τις υπηρεσίες του δημοσίου Φραστική ανάλυση 1. Προσδιορισμός αναγκών 1.1. Ταχύτερη εξυπηρέτηση πολιτών 1.2. Περιορισμός μετακινήσεων 2. Δράση 2.1. Ανάπτυξη ηλεκτρονικών υπηρεσιών εξυπηρέτησης 2.1.1. Ποιες υπηρεσίες θα είναι διαθέσιμες; 2.1.2. Με ποια διαδικασία θα γίνονται διαθέσιμες; 2.2. Ενημέρωση πολιτών 2.3. Ενημέρωση υπαλλήλων για να συνδράμουν το έργο 3. Εφαρμογή του σχεδίου.
Διαγραμματική ανάλυση
Παράδειγμα 2. Ανάλυση προβλήματος: Η οργάνωση μιας σχολικής εκδρομής. Παράδειγμα 2. Ανάλυση προβλήματος: Η οργάνωση μιας σχολικής εκδρομής. Ποια επιμέρους προβλήματα πρέπει να αντιμετωπιστούν; Ποια ερωτήματα προκύπτουν;
Δομή προβλήματος (διαγραμματική απεικόνηση) Πρόβλημα: Οργάνωση Εκπαιδευτικής Εκδρομής Εύρεση Τόπου Επίσκεψης Υπολογισμός Αντιτίμου Συμμετοχής Συγκέντρωση Χρημάτων Τρόπος Μεταφοράς Καθορισμός Ημερομηνίας Επίσκεψης Συγκέντρωση Βεβαιώσεων Συμμετοχής Σχήμα 1.1: Ανάλυση του προβλήματος «Οργάνωση Εκπαιδευτικής Εκδρομής» σε απλούστερα προβλήματα.
Τι είναι Αλγόριθμος Αλγόριθμος είναι μια σειρά ενεργειών-βημάτων, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος Η έννοια του αλγορίθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής. Όταν σχεδιάζουμε έναν αλγόριθμο, πρέπει να είμαστε ιδιαίτερα προσεκτικοί, ώστε να βάζουμε με λογική σειρά τις οδηγίες (instructions) που θα μας οδηγήσουν στη λύση του προβλήματός μας.
Παράδειγμα αλγορίθμου Για παράδειγμα ας δούμε τα βήματα που πρέπει να ακολουθηθούν, ώστε να μαγειρέψει ένας άπειρος μάγειρας μια μακαρονάδα: Άνοιξε το μάτι της κουζίνας στο 2. Βάλε 3 λίτρα νερό σε μία κατσαρόλα χωρητικότητας 4 λίτρων. Τοποθέτησε την κατσαρόλα στο μάτι της κουζίνας, που έχεις ήδη ανάψει. Πρόσθεσε στην κατσαρόλα μία κουταλιά της σούπας αλάτι. Περίμενε μέχρι να βράσει το νερό. Βγάλε τα μακαρόνια από το πακέτο. Βάλε τα μακαρόνια στην κατσαρόλα. Ανακάτευε τα μακαρόνια για 10 λεπτά. Κλείσε το μάτι της κουζίνας που άνοιξες. Βγάλε την κατσαρόλα από το μάτι της κουζίνας. Άδειασε τα μακαρόνια από την κατσαρόλα σε ένα σουρωτήρι. Ρίξε κρύο νερό από τη βρύση στα μακαρόνια για 20 δευτερόλεπτα. Άφησε για 2 λεπτά τα μακαρόνια να στραγγίξουν. Σερβίρισε τα μακαρόνια στο πιάτο. Πρόσθεσε σε κάθε πιάτο 3 κουταλιές της σούπας τριμμένο τυρί. Πριν προχωρήσουμε παρακάτω προσπάθησε να απαντήσεις στις ακόλουθες ερωτήσεις: Τι θα συμβεί αν ξεχάσουμε την εντολή 9 στον παραπάνω αλγόριθμο; Μπορούμε να αντιμεταθέσουμε τις εντολές 7 και 8; Τι θα συμβεί, αν αντικαταστήσουμε την εντολή στο βήμα 4 με την εντολή «πρόσθεσε αλάτι»; Αν αντιμεταθέσουμε τις εντολές 1 και 2, θα υπάρξει κάποιο πρόβλημα στον αλγόριθμο;
Βασικά Χαρακτηριστικά ενός Αλγορίθμου Αποτελεσματικότητα: Κάθε εντολή ενός αλγορίθμου χρειάζεται να είναι διατυπωμένη απλά και κατανοητά, ώστε να μπορεί να εκτελεστεί επακριβώς και σε πεπερασμένο μήκος χρόνου. Περατότητα: Κάθε αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Καθοριστικότητα: Κάθε εντολή ενός αλγορίθμου χρειάζεται να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της. (πχ πρόσθεσε το α στο β)
Παράδειγμα 1: «Έχει κάποιος ένα πρόβατο, ένα λύκο και ένα καφάσι με χόρτα στη μία όχθη ενός ποταμού και θέλει να τα περάσει στην απέναντι όχθη χρησιμοποιώντας μία βάρκα. Η βάρκα όμως είναι μικρή και μπορεί να μεταφέρει, εκτός από τον ίδιο, άλλο ένα από τα ζώα ή το καφάσι. Ωστόσο δεν πρέπει να μείνουν μαζί ο λύκος με το πρόβατο και το πρόβατο με τα χόρτα. Μπορείτε να δώσετε οδηγίες στο βαρκάρη για το πώς πρέπει να κάνει τη μεταφορά τους;»
Δεδομένα: 1 πρόβατο, 1 λύκος, 1 καφάσι με χόρτα, μία θέση επιπλέον στη βάρκα, 2 όχθες ποταμού. Πλαίσιο του προβλήματος: Ο λύκος δεν πρέπει να μείνει μαζί με το πρόβατο. Το πρόβατο δεν πρέπει να μείνει μαζί με τα χόρτα. Ζητούμενο: Να περάσει ο λύκος, το πρόβατο και το καφάσι με τα χόρτα στην απέναντι όχθη.
Αρχή του αλγορίθμου: Βάλε το πρόβατο στη βάρκα. Πήγαινε στην απέναντι όχθη. Άφησε το πρόβατο στην όχθη. Γύρνα πίσω στην αρχική όχθη. Φόρτωσε το καφάσι με τα χόρτα. Άφησε το καφάσι στην όχθη. Πήγαινε στην αρχική όχθη. Βάλε το λύκο στη βάρκα. Άφησε το λύκο στην όχθη. Βάλε το πρόβατο στη βάρκα Τέλος του αλγορίθμου
Παράδειγμα 2: Θέλουμε να περιγράψουμε σε κάποιον πώς θα δημιουργήσει με τις πατούσες του ένα τετράγωνο στην άμμο. Αν αυτός δε γνωρίζει τι σχήμα θέλουμε να αποτυπωθεί στην άμμο, ποιες είναι οι κατάλληλες οδηγίες που θα του δώσουμε;
Περπάτησε 5 βήματα μπροστά. Στρίψε δεξιά κατά ενενήντα μοίρες. Κατ’ αρχάς πρέπει να αναλύσουμε την έννοια «τετράγωνο»: Ένα τετράγωνο είναι ένα κλειστό γεωμετρικό σχήμα με 4 ίσες πλευρές. Άρα, για να σχηματίσουμε τις πλευρές, πρέπει κάθε φορά να κάνουμε τον ίδιο αριθμό βημάτων Ένα τετράγωνο έχει 4 ορθές γωνίες δηλ. 4 γωνίες των 90ο. Άρα, μόλις σχηματίζουμε μία πλευρά πρέπει να γυρνάμε κατά 90ο γύρω από τον εαυτό μας και πάντοτε με την ίδια φορά. Περπάτησε 5 βήματα μπροστά. Στρίψε δεξιά κατά ενενήντα μοίρες.
Παράδειγμα 3: Έχουμε 6 όμοια κέρματα από τα οποία το ένα είναι κάλπικο (ελαφρύτερο) και μια ζυγαριά ισορροπίας που μπορεί να συγκρίνει 2 βάρη μεταξύ τους. Θέλουμε με 2 μόνο συγκρίσεις να εντοπίσουμε το κάλπικο. Τι πρέπει να κάνουμε;
Τρόποι αναπαράστασης αλγορίθμων Φυσική γλώσσα : η αναπαράσταση γίνεται με την ομιλούμενη γλώσσα, μέσω της οποίας περιγράφονται τα βήματα επίλυσης του προβλήματος. Αυτό όμως δημιουργεί ασάφειες στις οδηγίες (παραβίαση αποτελεσματικότητας) Ψευδογλώσσα (ψευδοκώδικας): είναι μια υποθετική γλώσσα για την αναπαράσταση αλγορίθμων με στοιχεία από κάποιες γλώσσες προγραμματισμού. Γλώσσα προγραμματισμού η οποία είναι μια τεχνητή γλώσσα, που έχει αναπτυχθεί για να δημιουργεί ή να εκφράζει προγράμματα για τον υπολογιστή. Διαγραμματικές τεχνικές (diagramming techniques): γραφικός τρόπος παρουσίασης του αλγορίθμου (διάγραμμα ροής)
Σύμβολα διαγράμματος ροής
Αλγόριθμοι Παράδειγμα αναπαράστασης αλγορίθμου με διάγραμμα ροής ΑΡΧΗ Διάβασε a ΝΑΙ a >0 ΟΧΙ Γράψε a ΤΕΛΟΣ 22
Παράδειγμα αναπαράστασης αλγορίθμου με ψευδογλώσσα Αλγόριθμος Παράδειγμα Διάβασε a, b Αν a < b τότε c a+ b αλλιώς c a * b Τέλος_αν Εκτύπωσε c Τέλος Παράδειγμα
Παράδειγμα : Έστω δυο μεταβλητές α και β Παράδειγμα : Έστω δυο μεταβλητές α και β. Να αναπτυχθεί αλγόριθμος με φυσική γλώσσα, με διάγραμμα ροής και με ψευδογλώσσα, ο οποίος θα διαβάζει τις τιμές των δύο μεταβλητών και θα αντιμεταθέτει το περιεχόμενό τους. Στη συνέχεια θα εμφανίζει ως αποτέλεσμα το περιεχόμενο των μεταβλητών μετά την αντιμετάθεση. Να εκτελεστεί ο αλγόριθμος για τις τιμές α=8 και β=12.
Απάντηση Φυσική γλώσσα: Αφού εισαχθούν οι τιμές των δύο μεταβλητών α και β, να δώσετε το περιεχόμενο της μεταβλητής α και σε μία νέα μεταβλητή temp (προσωρινή). Στη συνέχεια, να δώσετε το περιεχόμενο της μεταβλητής β στη μεταβλητή α και τέλος να δώσετε το περιεχόμενο της μεταβλητής temp και στη μεταβλητή β.
Ψευδογλώσσα 1. Αλγόριθμος Αντιμετάθεση 2. Διάβασε α, β 3. temp ← α 4. α ← β 5. β ← temp 6. Εμφάνισε α, β 7. Τέλος Αντιμετάθεση
Διάγραμμα ροής Δοκιμαστικά Δεδομένα α β temp 2 8 12 3 4 5 Αρ.εντολης Αρχή Διάβασε α,β temp ← α α ← β β ← temp Εμφάνισε α, β Τέλος Αρ.εντολης α β temp 2 8 12 3 4 5