Δομή ακολουθίας και επιλογής
Κεφ. 2 §2.4.1–2.4.4 · Ακολουθία, επιλογή, πολλαπλές επιλογές, εμφωλεύσεις
Το ΑΤΜ σε ρωτά το PIN. Αν είναι σωστό, σε αφήνει να κάνεις ανάληψη· αν όχι, σου δίνει άλλη μια ευκαιρία. Κάθε εφαρμογή που χρησιμοποιείς παίρνει αποφάσεις τέτοιου τύπου εκατομμύρια φορές το δευτερόλεπτο.
Εδώ μαθαίνεις τις δύο πρώτες βασικές δομές κάθε αλγορίθμου: την ακολουθία (βήματα με σειρά) και την επιλογή (αποφάσεις).
Δομή ακολουθίας
Στη δομή ακολουθίας οι εντολές εκτελούνται η μία μετά την άλλη, με τη σειρά που γράφονται, ακριβώς μία φορά η καθεμία. Χρησιμοποιείται για προβλήματα με συγκεκριμένα, διαδοχικά βήματα, χωρίς αποφάσεις.
Οι βασικές εντολές που χρησιμοποιεί:
- εκχώρηση τιμής σε μεταβλητή με το σύμβολο ← (π.χ. Σ ← α + β)
- είσοδος δεδομένων με το ΔΙΑΒΑΣΕ
- έξοδος αποτελεσμάτων με το ΓΡΑΨΕ (στην ψευδογλώσσα του βιβλίου: «Εμφάνισε» ή «Εκτύπωσε»)
Στην εκχώρηση πρώτα υπολογίζεται η έκφραση δεξιά και μετά η τιμή αποθηκεύεται στη μεταβλητή αριστερά. Γι' αυτό η εντολή x ← x + 1 έχει νόημα: αυξάνει το x κατά 1.
Παράδειγμα 1: Αντιμετάθεση τιμών. Να ανταλλαχθούν οι τιμές των μεταβλητών α και β.
ΔΙΑΒΑΣΕ α, β temp ← α α ← β β ← temp ΓΡΑΨΕ α, β
Ίχνος για α = 5, β = 8:
- temp ← α: temp = 5
- α ← β: α = 8
- β ← temp: β = 5
- Εμφανίζεται: 8 5
Χωρίς τη βοηθητική μεταβλητή temp, οι εντολές α ← β και β ← α θα έδιναν α = β = 8: η αρχική τιμή του α θα χανόταν.
Δομή επιλογής
Στη δομή επιλογής ελέγχεται μια συνθήκη (λογική έκφραση που είναι ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ) και, ανάλογα με την τιμή της, εκτελείται ή όχι μια ομάδα εντολών.
Απλή επιλογή — εκτελείται μόνο αν η συνθήκη είναι αληθής:
ΑΝ συνθήκη ΤΟΤΕ εντολές ΤΕΛΟΣ_ΑΝ
Σύνθετη επιλογή — δύο εναλλακτικές διαδρομές:
ΑΝ συνθήκη ΤΟΤΕ εντολές_1 ΑΛΛΙΩΣ εντολές_2 ΤΕΛΟΣ_ΑΝ
Οι συγκρίσεις γίνονται με τους συγκριτικούς τελεστές: =, <>, <, >, <=, >=. Σύνθετες συνθήκες φτιάχνονται με τους λογικούς τελεστές ΟΧΙ, ΚΑΙ, Η.
Λογικοί τελεστές
- ΟΧΙ Α είναι αληθής όταν η Α είναι ψευδής.
- Α ΚΑΙ Β είναι αληθής μόνο όταν και οι δύο είναι αληθείς.
- Α Η Β είναι αληθής όταν τουλάχιστον μία είναι αληθής — ψευδής μόνο όταν και οι δύο είναι ψευδείς.
Προτεραιότητα: πρώτα οι αριθμητικές πράξεις, μετά οι συγκρίσεις, και τέλος οι λογικοί τελεστές με σειρά ΟΧΙ → ΚΑΙ → Η.
Για α = 4 και β = 7, ποια είναι η τιμή της έκφρασης ΟΧΙ (α > 3) Η β < 10 ΚΑΙ α = β;
Διαδικασίες πολλαπλών επιλογών
Όταν υπάρχουν περισσότερες από δύο περιπτώσεις, χρησιμοποιούμε την πολλαπλή επιλογή:
ΑΝ συνθήκη_1 ΤΟΤΕ εντολές_1 ΑΛΛΙΩΣ_ΑΝ συνθήκη_2 ΤΟΤΕ εντολές_2 ΑΛΛΙΩΣ εντολές_3 ΤΕΛΟΣ_ΑΝ
Οι συνθήκες ελέγχονται με τη σειρά και εκτελείται μόνο η πρώτη ομάδα εντολών της οποίας η συνθήκη είναι αληθής. Αν καμία δεν ισχύει, εκτελούνται οι εντολές του ΑΛΛΙΩΣ (αν υπάρχει).
Εμφωλευμένες διαδικασίες
Εμφώλευση είναι η τοποθέτηση μιας δομής επιλογής μέσα σε άλλη. Χρησιμοποιείται όταν μια απόφαση έχει νόημα μόνο αφού έχει ληφθεί μια προηγούμενη. Κάθε ΑΝ κλείνει με το δικό του ΤΕΛΟΣ_ΑΝ.
Μέθοδος: αλγόριθμος με πολλές περιπτώσεις
- Γράψε όλες τις περιπτώσεις του προβλήματος, μαζί με τα όρια (π.χ. «από 10 έως 15»).
- Έλεγξε ότι οι περιπτώσεις δεν επικαλύπτονται και ότι καλύπτουν όλες τις τιμές.
- Διάλεξε: περιπτώσεις του ίδιου μεγέθους → ΑΝ … ΑΛΛΙΩΣ_ΑΝ· αποφάσεις που εξαρτώνται η μία από την άλλη → εμφώλευση.
- Αξιοποίησε τη σειρά: σε ΑΛΛΙΩΣ_ΑΝ, αν φτάσεις στη 2η συνθήκη ξέρεις ήδη ότι η 1η ήταν ψευδής — μη την ξαναγράφεις.
- Δοκίμασε με οριακές τιμές (ακριβώς πάνω στα όρια).
Παράδειγμα 2: Κλιμακωτή χρέωση νερού: τα πρώτα 10 κυβικά χρεώνονται 0.5 € το καθένα, τα επόμενα έως τα 30 κυβικά 0.8 € και όσα είναι πάνω από 30 κυβικά 1.2 € το καθένα. Να υπολογιστεί η χρέωση για κατανάλωση Κ κυβικών.
ΔΙΑΒΑΣΕ Κ ΑΝ Κ <= 10 ΤΟΤΕ Χ ← Κ * 0.5 ΑΛΛΙΩΣ_ΑΝ Κ <= 30 ΤΟΤΕ Χ ← 10 * 0.5 + (Κ - 10) * 0.8 ΑΛΛΙΩΣ Χ ← 10 * 0.5 + 20 * 0.8 + (Κ - 30) * 1.2 ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Χ
Για Κ = 35: €. Στη δεύτερη συνθήκη γράφουμε μόνο Κ <= 30, γιατί αν φτάσαμε εκεί ισχύει ήδη Κ > 10.
Θέμα τύπου Πανελλαδικών: Να γραφεί αλγόριθμος που διαβάζει τους συντελεστές α, β και λύνει την εξίσωση .
ΑΛΓΟΡΙΘΜΟΣ Εξισωση_Α_Βαθμου ΔΙΑΒΑΣΕ α, β ΑΝ α <> 0 ΤΟΤΕ x ← -β / α ΓΡΑΨΕ 'Λύση: ', x ΑΛΛΙΩΣ ΑΝ β = 0 ΤΟΤΕ ΓΡΑΨΕ 'Αόριστη' ΑΛΛΙΩΣ ΓΡΑΨΕ 'Αδύνατη' ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ Εξισωση_Α_Βαθμου
Η εσωτερική επιλογή (για το β) έχει νόημα μόνο όταν α = 0 — γι' αυτό είναι εμφωλευμένη. Για α = 2, β = 6 εμφανίζεται «Λύση: -3»· για α = 0, β = 5 εμφανίζεται «Αδύνατη».
Τι εμφανίζει το τμήμα για x = 15;
ΑΝ x > 10 ΤΟΤΕ ΓΡΑΨΕ 'Α' ΑΛΛΙΩΣ_ΑΝ x > 5 ΤΟΤΕ ΓΡΑΨΕ 'Β' ΑΛΛΙΩΣ ΓΡΑΨΕ 'Γ' ΤΕΛΟΣ_ΑΝ
Ποια συνθήκη ελέγχει σωστά ότι ο x είναι εκτός του διαστήματος [10, 20];
Οι λογικοί τελεστές ΚΑΙ, Η, ΟΧΙ ανήκουν στην άλγεβρα Boole, που διατύπωσε ο Άγγλος μαθηματικός George Boole το 1854. Σχεδόν έναν αιώνα αργότερα, ο Claude Shannon έδειξε (1937) ότι η άλγεβρα αυτή περιγράφει τα ηλεκτρικά κυκλώματα με διακόπτες — τη βάση κάθε ψηφιακού υπολογιστή.
Να γραφεί αλγόριθμος που διαβάζει τρία διαφορετικά μεταξύ τους μήκη α, β, γ και εμφανίζει αν σχηματίζουν τρίγωνο και, αν ναι, αν είναι ορθογώνιο.
Δοκίμασε πρώτα μόνος σου — μετά δες τη λύση
Τρίγωνο σχηματίζεται όταν κάθε πλευρά είναι μικρότερη από το άθροισμα των άλλων δύο. Ορθογώνιο είναι όταν για κάποια πλευρά ισχύει το Πυθαγόρειο θεώρημα.
ΔΙΑΒΑΣΕ α, β, γ ΑΝ α < β + γ ΚΑΙ β < α + γ ΚΑΙ γ < α + β ΤΟΤΕ ΑΝ α^2 = β^2 + γ^2 Η β^2 = α^2 + γ^2 Η γ^2 = α^2 + β^2 ΤΟΤΕ ΓΡΑΨΕ 'Ορθογώνιο τρίγωνο' ΑΛΛΙΩΣ ΓΡΑΨΕ 'Τρίγωνο, όχι ορθογώνιο' ΤΕΛΟΣ_ΑΝ ΑΛΛΙΩΣ ΓΡΑΨΕ 'Δεν σχηματίζεται τρίγωνο' ΤΕΛΟΣ_ΑΝ
Για 3, 4, 5: → «Ορθογώνιο τρίγωνο». Για 1, 2, 5: το 5 δεν είναι μικρότερο από → «Δεν σχηματίζεται τρίγωνο».
- Μπερδεύεις το ΚΑΙ με το Η σε διαστήματα: «μέσα» → ΚΑΙ, «έξω» → Η.
- Ξεχνάς το ΤΕΛΟΣ_ΑΝ της εσωτερικής επιλογής σε εμφώλευση — κάθε ΑΝ έχει το δικό του.
- Γράφεις α ← β και β ← α για αντιμετάθεση: χρειάζεται βοηθητική μεταβλητή.
- Γράφεις σύνθετη συνθήκη «10 <= x <= 20»: στη ΓΛΩΣΣΑ γράφεται x >= 10 ΚΑΙ x <= 20.
- Ακολουθία: εντολές η μία μετά την άλλη, μία φορά η καθεμία.
- Εκχώρηση ←: πρώτα υπολογίζεται η δεξιά πλευρά, μετά αποθηκεύεται.
- Επιλογή: απλή (ΑΝ … ΤΕΛΟΣ_ΑΝ), σύνθετη (με ΑΛΛΙΩΣ), πολλαπλή (ΑΛΛΙΩΣ_ΑΝ — εκτελείται μόνο η πρώτη αληθής).
- Εμφώλευση: επιλογή μέσα σε επιλογή, όταν η μία απόφαση προϋποθέτει την άλλη.
- Προτεραιότητα: αριθμητικές → συγκριτικοί → ΟΧΙ → ΚΑΙ → Η.