(Πηγή: Βιβλίο Μαθητή, Πληροφορική Α΄ Γυμνασίου, Κεφάλαιο 8 «Αλγοριθμική», σελ. 93-96. Το §8.5 "Ερωτήσεις - Ασκήσεις" του κεφαλαίου έχει ήδη το δικό του πλήρες lyseis ζεύγος (kefalaio-8.5_lyseis.json/.md) και ΔΕΝ επαναλαμβάνεται εδώ. Οι 6 «Δραστηριότητα 1-6» παρακάτω είναι τοπικά αριθμημένα κουτιά ενσωματωμένα μέσα στη θεωρία των §8.2 και §8.3 (καμία δεν βρέθηκε στα §8.1 και §8.4). Οι εκφωνήσεις είναι αυτούσιες από το σχολικό βιβλίο.)
Μετρήστε ακριβώς 6 λίτρα αν έχετε στη διάθεσή σας ένα δοχείο των 5 λίτρων, ένα των 7 λίτρων και μια πηγή με άφθονο νερό. Μπορείτε μόνο να γεμίζετε μέχρι πάνω και να αδειάζετε εντελώς τα δοχεία όσες φορές θέλετε.
Σκέψη / Μεθοδολογία: Ίδιος τύπος προβλήματος με το λυμένο Παράδειγμα 2 της §8.2 (εκεί: δοχεία 5 & 3 λίτρων, στόχος 1 λίτρο), με το ίδιο σύνολο εντολών {Γέμισε(Ν), Άδειασε(Ν), Μετακίνησε(Μ,Ν)}. Μοντελοποιήσαμε το πρόβλημα ως χώρο καταστάσεων (a, b) = (λίτρα στο δοχείο 5, λίτρα στο δοχείο 7) και βρήκαμε τη συντομότερη λύση με αλγόριθμο BFS σε πραγματικό κώδικα Python.
Λύση:
Κατάσταση (a, b) = (λίτρα στο δοχείο 5L, λίτρα στο δοχείο 7L). Αρχική κατάσταση: (0, 0).
| Βήμα | Ενέργεια | Νέα κατάσταση (5L, 7L) |
|---|---|---|
| 1 | Γέμισε(7) | (0, 7) |
| 2 | Μετακίνησε(7,5) | (5, 2) |
| 3 | Άδειασε(5) | (0, 2) |
| 4 | Μετακίνησε(7,5) | (2, 0) |
| 5 | Γέμισε(7) | (2, 7) |
| 6 | Μετακίνησε(7,5) | (5, 4) |
| 7 | Άδειασε(5) | (0, 4) |
| 8 | Μετακίνησε(7,5) | (4, 0) |
| 9 | Γέμισε(7) | (4, 7) |
| 10 | Μετακίνησε(7,5) | (5, 6) |
Η λύση επαληθεύτηκε υπολογιστικά με αλγόριθμο BFS πάνω σε όλο τον χώρο καταστάσεων {0..5}×{0..7}: 10 είναι ο ελάχιστος δυνατός αριθμός βημάτων.
Απάντηση: Μετά από 10 βήματα, το δοχείο των 7 λίτρων καταλήγει με ακριβώς 6 λίτρα νερού.
Πρόσεξε:
Έχετε τρεις κανάτες, μία των 10 λίτρων, μία των 7 λίτρων και μία των 3 λίτρων. Αυτή που χωράει 10 λίτρα είναι γεμάτη και οι άλλες δύο άδειες. Πώς μπορείτε να βάλετε σε μία από τις κανάτες ακριβώς 5 λίτρα νερό, χωρίς ζυγαριά, κάνοντας μόνο μεταφορές νερού από τη μία στην άλλη;
Σκέψη / Μεθοδολογία: Σε αντίθεση με τη Δραστηριότητα 1, εδώ η συνολική ποσότητα νερού είναι σταθερή (10 λίτρα, μοιρασμένα στις τρεις κανάτες) — επιτρέπονται μόνο μεταφορές μεταξύ κανατών. Μοντελοποιήσαμε την κατάσταση ως (x, y, z) = (10L, 7L, 3L κανάτα) με x+y+z=10, και βρήκαμε τη συντομότερη λύση με BFS.
Λύση:
Κατάσταση (x, y, z) = (λίτρα στην κανάτα 10L, 7L, 3L). Αρχική κατάσταση: (10, 0, 0).
| Βήμα | Μεταφορά | Νέα κατάσταση (10L, 7L, 3L) |
|---|---|---|
| 1 | 10L → 7L | (3, 7, 0) |
| 2 | 7L → 3L | (3, 4, 3) |
| 3 | 3L → 10L | (6, 4, 0) |
| 4 | 7L → 3L | (6, 1, 3) |
| 5 | 3L → 10L | (9, 1, 0) |
| 6 | 7L → 3L | (9, 0, 1) |
| 7 | 10L → 7L | (2, 7, 1) |
| 8 | 7L → 3L | (2, 5, 3) |
Η λύση επαληθεύτηκε υπολογιστικά με BFS πάνω σε όλο τον χώρο καταστάσεων (x+y+z=10, 0≤x≤10, 0≤y≤7, 0≤z≤3): 8 είναι ο ελάχιστος αριθμός μεταφορών.
Απάντηση: Μετά από 8 μεταφορές, η κανάτα των 7 λίτρων καταλήγει με ακριβώς 5 λίτρα νερό.
Πρόσεξε:
Να καταγράψετε τα βήματα του αλγορίθμου της πρόσθεσης αναλυτικά.
Σκέψη / Μεθοδολογία: Το βιβλίο δίνει ακριβώς πριν τη Δραστηριότητα το λυμένο παράδειγμα κάθετης πρόσθεσης 1999 + 39 = 2038 «με κρατούμενα». Μετατρέπουμε τη γνωστή διαδικασία σε ρητά, εκτελέσιμα βήματα αλγορίθμου και επαληθεύουμε πάνω στο ίδιο παράδειγμα του βιβλίου.
Λύση:
Επαλήθευση πάνω στο 1999 + 39: μονάδες 9+9=18 → γράψε 8, κρατ.1 · δεκάδες 9+3+1=13 → γράψε 3, κρατ.1 · εκατοντάδες 9+0+1=10 → γράψε 0, κρατ.1 · χιλιάδες 1+0+1=2 → γράψε 2. Αποτέλεσμα: 2038 — ταυτίζεται με το παράδειγμα του βιβλίου.
Απάντηση: Ο αλγόριθμος περιγράφεται στα 7 βήματα παραπάνω· εφαρμοσμένος στο 1999+39 δίνει σωστά 2038.
Πρόσεξε:
Να βάλετε στη σειρά τα βήματα εκτέλεσης μιας απλής συνταγής για μακαρόνια με σάλτσα.
Σκέψη / Μεθοδολογία: Δίνονται 10 βήματα σε τυχαία σειρά. Παρατηρήσαμε ότι δύο από αυτά («Αφού στραγγίσετε τα μακαρόνια, τα βάζετε πίσω στην κατσαρόλα με λάδι και βούτυρο και ανακατεύετε» και «Στραγγίστε τα μακαρόνια και στη συνέχεια σερβίρετε στα πιάτα») περιγράφουν εναλλακτικά, αλληλοαποκλειόμενα τελειώματα της ίδιας συνταγής (επιβεβαιώθηκε λέξη προς λέξη στο ίδιο το PDF — δεν είναι λάθος μεταγραφής). Επιλέξαμε την πληρέστερη εκδοχή ως κύρια αλυσίδα.
Λύση (σωστή σειρά):
Η δέκατη πρόταση («Στραγγίστε τα μακαρόνια και στη συνέχεια σερβίρετε στα πιάτα») περιγράφει συνοπτικά ακριβώς τα ίδια βήματα 8-9 και δεν προστίθεται ξεχωριστά, αφού θα σήμαινε διπλό στράγγισμα/σερβίρισμα του ίδιου φαγητού.
Απάντηση: Τοποθέτησε την κατσαρόλα → γέμισέ την με νερό → άναψε το μάτι → περίμενε το βράσιμο → βάλε τα μακαρόνια → βράσε 8 λεπτά → σβήσε το μάτι → στράγγισε, βάλε πίσω με λάδι/βούτυρο, ανακάτεψε → σερβίρισε με σάλτσα και πιπέρι.
Πρόσεξε:
Χωριστείτε σε ομάδες των 3-4 ατόμων στην τάξη. Επιλέξτε το μυστικό κλειδί της κρυπτογράφησης και κρυπτογραφήστε με αυτό μια φράση. Στη συνέχεια, να γράψετε στον πίνακα το κρυπτογραφημένο μήνυμα. Ο στόχος είναι να βρείτε τα κλειδιά των άλλων ομάδων και να αποκρυπτογραφήσετε τα μηνύματά τους. Να καταγράψετε αναλυτικά τη στρατηγική που θα ακολουθήσετε κατά την κρυπτογράφηση του δικού σας μηνύματος, αλλά και κατά τη διαδικασία της κρυπτανάλυσης των μηνυμάτων των άλλων ομάδων. Πόσο χρόνο πιστεύετε ότι χρειάζεται ένας απλός υπολογιστής για να «σπάσει» τον κώδικα του Καίσαρα; Υπάρχει τρόπος να τον δυσκολέψετε;
Σκέψη / Μεθοδολογία: Ομαδική/βιωματική δραστηριότητα χωρίς μοναδική «σωστή» φράση/κλειδί. Δίνουμε δειγματική στρατηγική, μαζί με την τεκμηριωμένη (μη ενδεικτική στην ουσία) απάντηση για τον χρόνο εξαντλητικής αναζήτησης: το ελληνικό αλφάβητο έχει 24 γράμματα, άρα μόνο 23 μη-τετριμμένα πιθανά κλειδιά ολίσθησης.
Λύση:
Απάντηση (ενδεικτική): Η απλή κρυπτογράφηση Καίσαρα έχει μόνο 23 πιθανά κλειδιά — «σπάει» σχεδόν ακαριαία από υπολογιστή. Δυσκολεύει σημαντικά με γενική αντικατάσταση αλφαβήτου (24! κλειδιά).
Πρόσεξε:
Να περιγράψετε έναν αλγόριθμο για την έξοδο από τον παρακάτω λαβύρινθο, αν υποθέσουμε ότι το κόκκινο βέλος δείχνει την είσοδο και το πράσινο βέλος δείχνει την έξοδο. Μια παλιά στρατηγική που οδηγεί, σχεδόν πάντα, στην έξοδο του λαβυρίνθου είναι ο κανόνας του δεξιού χεριού. Τοποθετούμε το δεξί μας χέρι στον τοίχο, προχωράμε και δεν το αφήνουμε ποτέ. Με αυτόν τον τρόπο, σε κάθε στροφή θα πηγαίνουμε δεξιά. Έτσι, δε θα περάσουμε ποτέ δύο φορές από το ίδιο σημείο και αν υπάρχει έξοδος θα τη βρούμε σίγουρα. Η μόνη προϋπόθεση για να λειτουργήσει αυτός ο κανόνας είναι να μην υπάρχουν κενά στον τοίχο.
Σκέψη / Μεθοδολογία: Το βιβλίο περιγράφει ήδη σε πεζό λόγο τη λύση (κανόνας δεξιού χεριού / wall follower). Η δραστηριότητα ζητά τη μετατροπή της σε ρητά, εκτελέσιμα βήματα αλγορίθμου — γενικά, ανεξάρτητα από τη συγκεκριμένη εικόνα λαβυρίνθου, αφού ο ίδιος αλγόριθμος λειτουργεί σε κάθε λαβύρινθο χωρίς νησίδες τοίχων.
Λύση:
Γιατί λειτουργεί: αν ο λαβύρινθος δεν έχει νησίδες τοίχων, ο εξωτερικός τοίχος συνδέεται τοπολογικά με είσοδο και έξοδο· ακολουθώντας συνεχώς τον ίδιο τοίχο με το δεξί χέρι, τον διατρέχουμε χωρίς επανάληψη σημείου, άρα σε πεπερασμένα βήματα φτάνουμε στην έξοδο.
Απάντηση: Αλγόριθμος wall follower όπως περιγράφεται στα 5 βήματα παραπάνω· τερματίζει πάντα επιτυχώς σε λαβύρινθο χωρίς κενά/νησίδες στους τοίχους.
Πρόσεξε: