Δομές Επιλογής
Απλή Επιλογή
Πολλές φορές για να λυθεί ένα πρόβλημα πρέπει να ελεγχθεί αν ισχύει κάποια συνθήκη
Παράδειγμα 2: Να διαβαστεί ένας αριθμός και να επιστραφεί η απόλυτη τιμή του
Ο εισαγόμενος αριθμός ελέγχεται αν είναι θετικός ή αρνητικός. Στην πρώτη περίπτωση δεν χρειάζεται να γίνει καμιά ενέργεια, ενώ στη δεύτερη πρέπει να πολλαπλασιαστεί ο αριθμός με το –1 ώστε να γίνει θετικός
Αλγόριθμος Παράδειγμα_2
Διάβασε αριθμός
Αν αριθμός < 0 τότε
αριθμός ← αριθμός * (-1)
Τέλος_Αν
Εκτύπωσε αριθμός
Τέλος Παράδειγμα_2
|
|

Σχολιασμός διαγράμματος ροής: Ο ρόμβος (έλεγχος συνθήκης) ελέγχει συνθήκες και έχει δυο εξόδους (μια θετική και μια αρνητική στην ερώτηση)
Σχολιασμός ψευδοκώδικα:
- Η εντολή αριθμός ← αριθμός * (-1), δεν είναι μαθηματική έκφραση αλλά εντολή εκχώρησης. Επιτρέπεται λοιπόν, η παρουσία της ίδιας μεταβλητής αριστερά και δεξιά του ←. Έτσι, πολλαπλασιάζεται το περεχόμενο της μεταβλητής αριθμός με το –1 και το αποτέλεσμα καταχωρείται εκ νέου στη μεταβλητή αριθμός
- Η γενική σύνταξη της δομής επιλογής είναι:
|
Αν συνθήκη τότε
Εντολή1
…
ΕντολήN
Τέλος_αν
|
Παράδειγμα 3: Να διαβαστεί ένας αριθμός και να εκτυπωθεί ο αντίστροφός του αριθμός
Αλγόριθμος Παράδειγμα_3
Διάβασε αριθμός
Αν αριθμός <> 0 τότε
αριθμός ← 1 / αριθμός
Τέλος_Αν
Εκτύπωσε αριθμός
Τέλος Παράδειγμα_3
|

Δομή Σύνθετης Επιλογής
Η δομή σύνθετης επιλογής χρησιμοποιείται στην περίπτωση που επιθυμούμε να εκτελέσουμε εναλλακτικά δυο ομάδες εντολών. Κριτήριο για το ποιο σετ εντολών θα εκτελεστεί αποτελεί κάποια συνθήκη. Στην περίπτωση που η συνθήκη ισχύει θα εκτελεστεί η πρώτη ομάδα εντολών διαφορετικά θα εκτελεστεί η δεύτερη
Παράδειγμα 4: Να διαβαστούν δύο αριθμοί και να εκτυπωθεί ο μεγαλύτερος από τους δυο
Αλγόριθμος Παράδειγμα_4
Διάβασε αριθμός1, αριθμός2
Αν αριθμός1 < αριθμός2 τότε
αριθμός ← αριθμός2
Αλλιώς
αριθμός ← αριθμός1
Τέλος_Αν
Εκτύπωσε αριθμός
Τέλος Παράδειγμα_4
|

Παράδειγμα 5: Να διαβαστεί αριθμός και να εκτυπωθεί αντίστοιχο μήνυμα για το αν είναι άρτιος ή περιττός
Αλγόριθμος Παράδειγμα_5
Διάβασε αριθμός
Αν αριθμός mod 2 = 0 τότε
Εκτύπωσε “Άρτιος”
Αλλιώς
Εκτύπωσε “Περιττός”
Τέλος_Αν
Τέλος Παράδειγμα_5
|

Δομή Πολλαπλής Επιλογής
Κάποια προβλήματα απαιτούν την επιλογή μεταξύ περισσοτέρων από δυο περιπτώσεις
Παράδειγμα 6: Να διαβαστεί ο μέσος όρος ενός μαθητή και να εκτυπωθεί χαρακτηρισμός του
Αλγόριθμος Παράδειγμα_6
Διάβασε βαθμός
Αν βαθμός < 9,5 τότε
Εκτύπωσε “Απορρίπτεται”
Αλλιώς_Αν βαθμός < 16 τότε
Εκτύπωσε “Καλώς”
Αλλιώς_Αν βαθμός < 18 τότε
Εκτύπωσε “Λίαν καλώς”
Αλλιώς_Αν βαθμός < 20 τότε
Εκτύπωσε “Άριστα”
Αλλιώς
Εκτύπωσε “Λάθος δεδομένο”
Τέλος_Αν
Τέλος Παράδειγμα_6 |
|
Αλγόριθμος Παράδειγμα_6
Διάβασε βαθμός
Επίλεξε βαθμός
Περίπτωση < 9,5
Εκτύπωσε “Απορρίπτεται”
Περίπτωση < 16
Εκτύπωσε “Καλώς”
Περίπτωση < 18
Εκτύπωσε “Λίαν καλώς”
Περίπτωση < 20
Εκτύπωσε “Άριστα”
Περίπτωση Αλλιώς
Εκτύπωσε “Λάθος δεδομένο”
Τέλος_Επιλογών
Τέλος Παράδειγμα_6
|

Σχολιασμός:
- Μια απο τις περιπτώσεις της δομής επιλογής εκτελούνται σε κάθε περίπτωση
- Στη δομή Επίλεξε αν δεν ικακοποιείται καμία περίπτωση τότε εκτελείται το Περίπτωση Αλλιώς
- Τα σύμβολα ‘ και ” χρησιμοποιούνται ισοδύναμα
- Στις περιπτώσεις που θα ελεγχθούν περιλαμβάνουμε και αυτήν την λανθασμένη εισαγωγής δεδομένων
- Τα παραπάνω θα μπορούσαν να υλοποιηθούν και με πολλές δομές σύνθετης επιλογής