Ελληνικά

Θεωρία

Δομή Επιλογής

Η δομή επιλογής επιτρέπει στο πρόγραμμα να εκτελεί διαφορετικές εντολές ανάλογα με το αν μία συνθήκη είναι αληθής ή ψευδής.Ειδικότερα υπάρχουν τέσσερις μορφές επιλογής:
1) Απλή Επιλογή 2) Σύνθετη Επιλογή 3) Πολλαπλή Επιλογή 4) Εμφολευμένη Επιλογή

1) Απλή Επιλογή

Η απλή επιλογή περιλαμβάνει μία μόνο συνθήκη και εκτελεί μία εντολή αν η συνθήκη είναι αληθής.

Παράδειγμα χρήσης σε ψευδογλώσσα:

Αν Βαθμός > 18 Τότε
Εκτύπωσε "Άριστα"
Τέλος_Αν

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

grade = 20
if grade > 18:
print("Άριστα")

2)  Σύνθετη Επιλογή

Η σύνθετη επιλογή περιλαμβάνει μία συνθήκη και δύο διαφορετικές εντολές: μία αν η συνθήκη είναι αληθής και μία αν είναι ψευδής.

Παράδειγμα χρήσης σε ψευδογλώσσα:

Αν Βαθμός >= 10 Τότε
Εκτύπωσε "Επιτυχία"
Αλλιώς
Εκτύπωσε "Αποτυχία"
Τέλος_Αν

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

grade = 8
if grade >= 10:
print("Επιτυχία")
else:
print("Αποτυχία")

3) Πολλαπλή Επιλογή

Η πολλαπλή επιλογή μπορεί να υλοποιηθεί με δύο τρόπους:

  1. Χρήση της εντολής Αν... Αλλιώς Αν.
  2. Χρήση της εντολής ΕΠΙΛΕΞΕ.
Αν ... Αλλιώς Αν

Χρησιμοποιείται όταν έχουμε πολλές συνθήκες που ελέγχονται σειριακά.

Παράδειγμα χρήσης σε ψευδογλώσσα:

Αν Ημέρα = "Δευτέρα" Τότε
Εκτύπωσε "Αρχή εβδομάδας"
Αλλιώς_Αν Ημέρα = "Παρασκευή" Τότε
Εκτύπωσε "Τέλος εβδομάδας"
Αλλιώς
Εκτύπωσε "Μία συνηθισμένη μέρα"
Τέλος_Αν

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

day = "Παρασκευή"
if day == "Δευτέρα":
print("Αρχή εβδομάδας")
elif day == "Παρασκευή":
print("Τέλος εβδομάδας")
else:
print("Μία συνηθισμένη μέρα")

Επίλεξε

Χρησιμοποιείται όταν έχουμε πολλές τιμές μιας μεταβλητής που οδηγούν σε διαφορετικές εντολές.

Παράδειγμα χρήσης σε ψευδογλώσσα:

ΕΠΙΛΕΞΕ Ημέρα
ΠΕΡΙΠΤΩΣΗ "Δευτέρα": Εκτύπωσε "Αρχή εβδομάδας"
ΠΕΡΙΠΤΩΣΗ "Παρασκευή": Εκτύπωσε "Τέλος εβδομάδας"
ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ: Εκτύπωσε "Μία συνηθισμένη μέρα"
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ

Πλεονεκτήματα και Μειονεκτήματα:
Χαρακτηριστικό Αν... Αλλιώς Αν ΕΠΙΛΕΞΕ
Πλεονεκτήματα - Απλή και ευέλικτη για σύνθετες συνθήκες. - Κατάλληλη για πολλές σταθερές τιμές.
- Δεν απαιτεί συγκεκριμένη τιμή. - Διαβάζεται ευκολότερα για μεγάλες λίστες.
Μειονεκτήματα - Μπερδεύει αν υπάρχουν πολλές συνθήκες. - Περιορίζεται σε συγκεκριμένες τιμές.
- Μικρή απόδοση σε μεγάλες λίστες. - Δυσκολία σε σύνθετες συνθήκες.

4) Εμφωλευμένη Επιλογή

Η εμφωλευμένη επιλογή περιλαμβάνει μία δομή επιλογής μέσα σε μία άλλη. Χρησιμοποιείται όταν χρειάζεται να ελέγξουμε περισσότερες από μία συνθήκες.

Παράδειγμα χρήσης σε ψευδογλώσσα:

Αν Βαθμός >= 10 Τότε
    Αν Βαθμός > 18 Τότε
        Εκτύπωσε "Άριστα"
    Αλλιώς
        Εκτύπωσε "Επιτυχία"
    Τέλος_Αν
Αλλιώς
    Εκτύπωσε "Αποτυχία"
Τέλος_Αν

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

grade = 19
if grade >= 10:
    if grade > 18:
        print("Άριστα")
    else:
        print("Επιτυχία")
else:
    print("Αποτυχία")

Δομή Επανάληψης

Η δομή επανάληψης επιτρέπει την εκτέλεση εντολών πολλές φορές, μέχρι να ικανοποιηθεί μία συνθήκη. Υπάρχουν τρεις κύριες μορφές:
1) ΓΙΑ ... ΑΠΟ ... ΜΕΧΡΙ ... 2) ΟΣΟ ... ΕΠΑΝΑΛΑΒΕ 3) ΜΕΧΡΙΣ_ΟΤΟΥ

1) Δομή Επανάληψης "ΓΙΑ"

Χρησιμοποιείται όταν γνωρίζουμε από πριν τον αριθμό των επαναλήψεων.

Η γενική μορφή της Δομής είναι η εξής:

ΓΙΑ ( ΜΕΤΡΗΤΗΣ) ΑΠΟ (ΑΡΧΙΚΗ ΤΙΜΗ) ΜΕΧΡΙ (ΤΕΛΙΚΗ ΤΙΜΗ) ΜΕ_ΒΗΜΑ (ΒΗΜΑ)
{ Εντολές }

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παρατηρήσεις:

  1. Οι τιμές που ορίζονται ως αρχική, τελική και το βήμα μεταβολής μπορούν να είναι είτε θετικοί είτε αρνητικοί αριθμοί, χωρίς να απαιτείται να είναι ακέραιοι. Επιπλέον, τόσο η αρχική όσο και η τελική τιμή μπορούν να πάρουν την τιμή μηδέν.
  2. Όταν το βήμα μεταβολής είναι ίσο με 1, μπορεί να παραλειφθεί. Ωστόσο, το βήμα μεταβολής δεν μπορεί να έχει τιμή μηδέν, καθώς αυτό θα οδηγούσε σε ατέρμονη εκτέλεση του αλγορίθμου.
  3. Στην περίπτωση που η αρχική τιμή είναι μικρότερη από την τελική τιμή: Το βήμα μεταβολής πρέπει να είναι θετικό, διαφορετικά ο αλγόριθμος δεν θα τερματίσει. Οι εντολές που ακολουθούν την εντολή ελέγχου θα σταματήσουν να εκτελούνται όταν ο μετρητής γίνει μεγαλύτερος από την τελική τιμή.
  4. Στην περίπτωση που η αρχική τιμή είναι μεγαλύτερη από την τελική τιμή: Εάν το βήμα μεταβολής είναι θετικό, τότε οι εντολές που ακολουθούν την εντολή ελέγχου δεν θα εκτελεστούν ποτέ. Αντίθετα, εάν το βήμα μεταβολής είναι αρνητικό, η εκτέλεση των εντολών θα σταματήσει όταν ο μετρητής γίνει μικρότερος από την τελική τιμή.

 

Παράδειγμα χρήσης σε ψευδογλώσσα:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
Εκτύπωσε i
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

for i in range(1, 11):
print(i)

2) Δομή Επανάληψης "ΟΣΟ"

Χρησιμοποιείται όταν δεν γνωρίζουμε από πριν τον αριθμό των επαναλήψεων, αλλά η συνθήκη ελέγχεται στην αρχή.

Η γενική μορφή της Δομής είναι η εξής:

ΟΣΟ ( ΛΟΓΙΚΗ ΣΥΝΘΗΚΗ ) ΕΠΑΝΑΛΑΒΕ

{ Εντολές}

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παρατηρήσεις:

  1. Η επανάληψη σε αυτή τη δομή διατηρείται ενεργή όσο πληρούται η λογική συνθήκη. Όταν η συνθήκη παύει να ισχύει, η διαδικασία της επανάληψης διακόπτεται.
  2. Η δομή επανάληψης «όσο» μπορεί να λειτουργήσει τόσο με την ενσωμάτωση ενός μετρητή όσο και χωρίς τη χρήση του.
  3. Όταν ο αριθμός των επαναλήψεων είναι προκαθορισμένος, η χρήση ενός μετρητή καθίσταται αναγκαία, καθώς αυτός είναι υπεύθυνος για τον τερματισμό της διαδικασίας. Στην περίπτωση αυτή, ο μετρητής ενσωματώνεται στη λογική συνθήκη.
  4. Όταν θέλουμε να καταγράψουμε πόσες φορές εκτελείται μια επανάληψη, ο μετρητής δεν περιλαμβάνεται στη λογική συνθήκη, αλλά μεταβάλλεται κάθε φορά που η επανάληψη εκτελείται.
  5. Σε περιπτώσεις όπου δεν είναι γνωστό εκ των προτέρων πόσες φορές θα εκτελεστεί η επανάληψη, ούτε απαιτείται τέτοια πληροφορία, η χρήση μετρητή είναι περιττή.
  6. Είναι σημαντικό να δίνεται ιδιαίτερη προσοχή στη λογική συνθήκη της επανάληψης. Πρέπει να εξασφαλίζεται ότι η συνθήκη θα παύσει να ισχύει κάποια στιγμή, διότι διαφορετικά η επανάληψη θα εκτελείται επ’ άπειρον, δημιουργώντας έναν ατέρμονα βρόχο. Αυτό αποτελεί σοβαρό λογικό σφάλμα. Παρ' όλα αυτά, η λογική συνθήκη παρέχει τη δυνατότητα να ελέγχουμε πλήρως τη διάρκεια της επανάληψης σύμφωνα με τις ανάγκες μας. Αξίζει, επίσης, να σημειωθεί ότι αυτή η δομή επανάληψης μπορεί να μην εκτελεστεί καθόλου, εάν η λογική συνθήκη είναι ψευδής από την αρχή.
Παράδειγμα χρήσης σε ψευδογλώσσα:

i ← 1
ΟΣΟ i <= 10 ΕΠΑΝΑΛΑΒΕ
Εκτύπωσε i
i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Παράδειμα χρήσης σε γλώσσα προγραμματισμού Python:

i = 1
while i <= 10:
print(i)
i += 1

3) Δομή Επανάληψης "ΜΕΧΡΙΣ_ΟΤΟΥ"

Χρησιμοποιείται όταν η συνθήκη ελέγχεται στο τέλος της επανάληψης. Εκτελείται τουλάχιστον μία φορά.

Η γενική μορφή της Δομής είναι η εξής:

 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    { Εντολές }

ΜΕΧΡΙΣ_ΟΤΟΥ (ΛΟΓΙΚΗ ΣΥΝΘΗΚΗ

Παρατηρήσεις:

  1. Στη συγκεκριμένη δομή, η λογική συνθήκη τοποθετείται στο τέλος της επανάληψης, σε αντίθεση με τη δομή «όσο», όπου η συνθήκη ελέγχεται στην αρχή.
  2. Σε αυτή την περίπτωση, η συνθήκη λειτουργεί ως κριτήριο τερματισμού της επανάληψης και όχι ως κριτήριο συνέχισης. Παρατηρούμε ότι η επανάληψη συνεχίζεται όσο η συνθήκη παραμένει ψευδής. Μόλις η συνθήκη γίνει αληθής, η εκτέλεση της επανάληψης σταματά.
  3. Ιδιαίτερη προσοχή απαιτείται, καθώς στη συγκεκριμένη δομή επανάληψης οι εντολές εκτελούνται τουλάχιστον μία φορά. Αυτό συμβαίνει επειδή η λογική συνθήκη εξετάζεται στο τέλος, οπότε ο αλγόριθμος υποχρεωτικά εκτελεί τις εντολές πριν φτάσει στη συνθήκη. Αυτό είναι ένα κρίσιμο σημείο που πρέπει να λαμβάνεται υπόψη: αν δεν θέλουμε να εκτελεστεί καμία εντολή, η δομή «μέχρις_ότου» δεν ενδείκνυται, καθώς ενδέχεται να προκύψουν λογικά λάθη.
  4. Η δομή επανάληψης «μέχρις_ότου» μπορεί να εφαρμοστεί σε πολλά προβλήματα που απαιτούν επαναληπτική διαδικασία. Ωστόσο, πρέπει να είμαστε βέβαιοι ότι οι εντολές πρέπει να εκτελεστούν τουλάχιστον μία φορά. Εάν δεν είμαστε σίγουροι για αυτό, είναι προτιμότερο να χρησιμοποιήσουμε τη δομή «όσο».
Παράδειγμα χρήσης σε ψευδογλώσσα:

i ← 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Εκτύπωσε i
i ← i + 1
ΜΕΧΡΙΣ_ΟΤΟΥ i > 10

 

Εισαγωγή

Στον προγραμματισμό, οι δομές ελέγχου αποτελούν τον πυρήνα της λήψης αποφάσεων και της αυτοματοποίησης διαδικασιών. Στην ενότητα αυτή, θα εμβαθύνουμε στις δομές "Επιλογή" (if-else) και "Επανάληψη" (while, for), οι οποίες είναι αναπόσπαστο μέρος οποιασδήποτε γλώσσας προγραμματισμού. Αυτές οι δομές μας επιτρέπουν να κάνουμε προγράμματα που είναι ευέλικτα και μπορούν να ανταποκριθούν σε διαφορετικά δεδομένα ή καταστάσεις.

Παραδείγματα εφαρμογών:

  • Λήψη απόφασης σε παιχνίδια, π.χ., "Αν η ζωή του παίκτη είναι 0, τότε το παιχνίδι τελειώνει".
  • Επαναληπτικοί υπολογισμοί, π.χ., "Υπολογισμός του μέσου όρου βαθμολογιών μιας τάξης".