Λύσεις — Κεφάλαιο 1 · Από το Πρόβλημα στην Ανάπτυξη Αλγόριθμου (σελ. 17, 20) – ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

Λύσεις — Κεφάλαιο 1 · Από το Πρόβλημα στην Ανάπτυξη Αλγόριθμου (σελ. 17, 20)

Απαντήσεις στις Ερωτήσεις (πρόβλημα, βήματα επίλυσης, αφαίρεση, αναπαράσταση αλγόριθμου) και στα δύο προβλήματα της Δραστηριότητας 1 (κάλπικα νομίσματα, χειραψία).


Ερ.1 — Τι είναι πρόβλημα

Ερώτηση: Τι είναι ένα πρόβλημα;

Απάντηση:

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

Σύνοψη: (ενδεικτική) Κατάσταση που απαιτεί λύση, η οποία δεν είναι γνωστή/προφανής (αν λύνεται με Η/Υ → υπολογιστικό).

Κριτήρια αξιολόγησης:

  • Κριτήριο: «απαιτεί λύση» + «η λύση δεν είναι γνωστή/προφανής».

Ερ.2 — Βήματα επίλυσης προβλήματος

Ερώτηση: Ποια είναι τα βασικά βήματα για την επίλυση ενός προβλήματος;

Απάντηση:

  • Κατανόηση & απλοποίηση (αφαίρεση).
  • Ανάλυση σε υποπροβλήματα.
  • Αναγνώριση του είδους & γνωστών προτύπων.
  • Οργάνωση δεδομένων και κατασκευή αλγόριθμου.
  • Αξιολόγηση αλγόριθμου/λύσης, επιστροφή αν χρειάζεται, και γενίκευση.

Σύνοψη: (ενδεικτική) Κατανόηση/αφαίρεση → ανάλυση σε υποπροβλήματα → αναγνώριση προτύπων → κατασκευή αλγόριθμου → αξιολόγηση → γενίκευση.

Κριτήρια αξιολόγησης:

  • Κριτήριο: ≥4 στάδια με λογική σειρά (κατανόηση→αλγόριθμος→αξιολόγηση).

Ερ.3 — Η αξία της αφαίρεσης

Ερώτηση: Μπορείτε να περιγράψετε με ένα δικό σας παράδειγμα την αξία της αφαίρεσης;

Απάντηση:

  • Αφαίρεση = εντοπισμός των βασικών χαρακτηριστικών, αγνοώντας τα περιττά.
  • Παράδειγμα: για να δρομολογήσω μια διαδρομή σε χάρτη, κρατώ τις αποστάσεις/δρόμους και αγνοώ το χρώμα των κτιρίων ή τον καιρό.
  • (Άλλο: ένα Formula 1 και ένα τζιπ είναι και τα δύο αυτοκίνητα — αφαιρώ τις διαφορές τους.)

Σύνοψη: (ενδεικτική) Αφαίρεση = κράτημα των βασικών χαρακτηριστικών. Π.χ. στη δρομολόγηση διαδρομής κρατώ αποστάσεις/δρόμους, αγνοώ άσχετες λεπτομέρειες.

Κριτήρια αξιολόγησης:

  • ΕΝΔΕΙΚΤΙΚΗ: κάθε λογικό προσωπικό παράδειγμα δεκτό. Κριτήριο: δείχνει «κρατώ βασικά, αγνοώ περιττά».

Ερ.4 — Τρόποι αναπαράστασης αλγόριθμου

Ερώτηση: Με ποιους τρόπους μπορούμε να αναπαραστήσουμε έναν αλγόριθμο;

Απάντηση:

  • Φυσική γλώσσα (με απλά λόγια και ελεύθερες εκφράσεις — αυξημένη πιθανότητα λάθους ή ασάφειας).
  • Διαγραμματικές τεχνικές — η πιο γνωστή είναι το διάγραμμα ροής (γραφικός τρόπος).
  • Κωδικοποίηση: πρόγραμμα γραμμένο σε ψευδογλώσσα ή σε γλώσσα προγραμματισμού, που όταν εκτελεσθεί δίνει τα ίδια αποτελέσματα με τον αλγόριθμο.
  • Ψευδογλώσσα/ψευδοκώδικας (υποθετική δομημένη γλώσσα με λίγες εντολές και απλοποιημένη σύνταξη).

Σύνοψη: (ενδεικτική) Φυσική γλώσσα, διαγραμματικές τεχνικές (διάγραμμα ροής), κωδικοποίηση (πρόγραμμα), ψευδογλώσσα/ψευδοκώδικας.

Κριτήρια αξιολόγησης:

  • Κριτήριο: ≥3 τρόποι (ιδανικά και οι 4).

Δραστηριότητα 1 (Πρόβλημα 1) — Εύρεση των κάλπικων νομισμάτων με μια ζύγιση

Ερώτηση: Υπάρχουν δέκα σακιά που περιέχουν 100 νομίσματα το καθένα. Το κάθε νόμισμα ζυγίζει 10 γραμμάρια. Το ένα από τα δέκα σακιά έχει μέσα μόνο κάλπικα νομίσματα τα οποία ζυγίζουν 9 γραμμάρια το καθένα. Πώς μπορούμε, με μία μόνο ζύγιση σε μια ηλεκτρονική ζυγαριά ακριβείας, να βρούμε ποιο σακί περιέχει τα κάλπικα νομίσματα;

Απάντηση:

  • Ιδέα: αριθμούμε τα σακιά 1..10 και παίρνουμε διαφορετικό πλήθος νομισμάτων από το καθένα: 1 από το σακί 1, 2 από το σακί 2, …, 10 από το σακί 10.
  • Συνολικά ζυγίζουμε \(1+2+\dots+10=55\) νομίσματα. Αν όλα ήταν γνήσια, το βάρος θα ήταν \(55\times10=550\) g.
  • Κάθε κάλπικο νόμισμα «λείπει» 1 g. Αν το κάλπικο είναι το σακί \(k\), πήραμε \(k\) κάλπικα → έλλειμμα \(k\) g.
  • Άρα: αριθμός κάλπικου σακιού \(= 550 - (\text{μέτρηση})\). Π.χ. μέτρηση 547 g → έλλειμμα 3 → σακί 3.

Σύνοψη: Παίρνουμε 1,2,…,10 νομίσματα από τα σακιά 1..10 (σύνολο 55). Κάλπικο σακί = 550 − ζυγισμένο βάρος (το έλλειμμα σε g δίνει τον αριθμό).

Κριτήρια αξιολόγησης:

  • Έλεγχος: για κάθε \(k=1,\dots,10\) η μέτρηση είναι \(550-k\) g, δηλαδή διαφορετική για κάθε σακί. Το «κλειδί» είναι η μοναδική ταυτότητα κάθε σακιού μέσω διαφορετικού πλήθους νομισμάτων.
  • Ανάδειξη εννοιών: αφαίρεση (κρατάμε το βάρος-ταυτότητα) και αναγνώριση προτύπου.

Δραστηριότητα 1 (Πρόβλημα 2) — Το πρόβλημα της Χειραψίας

Ερώτηση: Ας υποθέσουμε ότι είκοσι άνθρωποι βρίσκονται μαζί με έναν μαθητή σε ένα δωμάτιο και πρέπει ο μαθητής να ανταλλάξει χειραψία με κάθε έναν από αυτούς. Με πόσους ανθρώπους τελικά, θα ανταλλάξει χειραψία; Εάν υπάρχουν Ν (Ν>0) άνθρωποι μαζί με το μαθητή στο δωμάτιο, με πόσους τελικά θα έρθει αυτός σε επαφή;

Απάντηση:

  • Κατανόηση: γνωστό είναι το πλήθος των ανθρώπων που βρίσκονται μαζί με τον μαθητή (20, και στη γενική περίπτωση Ν). Ζητούμενο είναι με πόσους θα ανταλλάξει χειραψία ο μαθητής. Συνθήκη: χειραψία ανταλλάσσει μόνο ο μαθητής, με κάθε έναν από τους υπόλοιπους.
  • Πλάνο: ο μαθητής πηγαίνει διαδοχικά σε κάθε άνθρωπο του δωματίου· κάθε άνθρωπος προσθέτει ακριβώς μία χειραψία.
  • Υλοποίηση: με 20 ανθρώπους ο μαθητής ανταλλάσσει 20 χειραψίες (τον εαυτό του δεν τον μετράμε).
  • Γενίκευση: με Ν ανθρώπους μαζί του (Ν>0), ο μαθητής έρχεται σε επαφή με Ν ανθρώπους.

Σύνοψη: Με 20 ανθρώπους ανταλλάσσει 20 χειραψίες· γενικά, με Ν ανθρώπους έρχεται σε επαφή με Ν.

Κριτήρια αξιολόγησης:

  • ΠΑΓΙΔΑ: το πρόβλημα ζητά τις χειραψίες μόνο του μαθητή, όχι όλων με όλους· γι' αυτό η απάντηση είναι απλώς Ν και όχι κάποιος πιο σύνθετος τύπος.
  • Ο μαθητής δεν μετράει τον εαυτό του στους ανθρώπους του δωματίου.

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β' ΕΠΑΛ - ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΜΑΘΗΤΗ (PDF)