Δομή Επιλογής
Η δομή επιλογής είναι η δεύτερη λογική δομή του δομημένου προγραμματισμού. Δίνει τη δυνατότητα για τη λύση πιο σύνθετων αλγορίθμων. Ουσιαστικά δίνει τη δυνατότητα ελέγχου για την εκτέλεση ή μη κάποιων εντολών. Ο έλεγχος αυτός υλοποιείται με τον έλεγχο κάποιας συνθήκης (απλής ή σύνθετης) και σχετίζεται με αν ισχύει (δηλ. είναι αληθής) ή δεν ισχύει (δηλ. είναι ψευδής) η συγκεκριμένη συνθήκη. Υπάρχουν τέσσερα είδη δομής επιλογής, τα οποία είναι :
1. Απλή Επιλογή
|
Παράδειγμα : Να δίνεται η απόσταση (σε χιλιόμετρα) των διαδρομών που έκανα χθες και σήμερα, αν η σημερινή είναι άνω των 40 χιλ/τρων να εμφανίζεται το άθροισμα της χθεσινής με το 2πλάσιο της σημερινής διαδρομής και το μήνυμα ΄ διένυσα μεγάλη απόσταση?.
|
Αν συνθήκη τότε Εντολές Τέλος_Αν
|
Αρχή Διάβασε Χ,Θ Aν Θ > 40 τότε Σ<- Χ+Θ*2 Γράψε Σ Γράψε 'διένυσα μεγάλη απόσταση' Τέλος_Αν Τέλος |
Παρατήρηση 1. |
Εξετάσουμε μόνο την περίπτωση που ισχύει η συνθήκη και μόνο τότε εκτελούνται οι εντολές. Δεν μας ενδιαφέρει και δεν ελέγχεται η περίπτωση που δεν ισχύει η συνθήκη. |
2. Διπλή ή Σύνθετη Επιλογή
|
Παράδειγμα : Να δίνεται το ποσό χρημάτων που έχω στο πορτοφόλι μου και η τιμή ενός ρούχου στη βιτρίνα. Να εμφανίζονται τα σχετικά μηνύματα με το αν μπορώ να το αγοράσω ή όχι, καθώς και το πιθανό ποσό σε ευρώ που περίσσεψε.
|
Αν συνθήκη τότε Εντολές_1 Αλλιώς Εντολές_2 Τέλος_Αν |
Αρχή Αν Π>=Χ τότε Γράψε ?μπορώ να το αγοράσω? ΠΕΡ<- Π-Χ Γράψε ?περίσσεψαν ?, ΠΕΡ, ?ευρώ ? Αλλιώς Γράψε ? δεν μπορώ να το αγοράσω? Τέλος_Αν Τέλος |
Παρατήρηση 2. |
Εξετάζουμε πρώτα την περίπτωση που ισχύει η συνθήκη δηλ. είναι αληθής και εκτελούνται οι εντολές_1 . Μετά με το Αλλιώς δηλ. όταν η συνθήκη είναι ψευδής εκτελούνται οι εντολές_2. Ουσιαστικά ελέγχεται αυτόματα η ακριβώς αντίθετη συνθήκη αν είναι αληθής. |
3. Εμφωλευμένη |
Παράδειγμα : Να δίνεται ένας ακέραιος θετικός αριθμός και να εμφανίζεται κατάλληλο μήνυμα για το πλήθος των ψηφίων του. Αν έχει από 4 και πάνω να εμφανίζει το μήνυμα ? έχει πολλά ψηφία?. |
Αν συνθήκη_Α τότε Εντολές_1 Αλλιώς Αν συνθήκη_Β τότε Εντολές_2 Αλλιώς Αν συνθήκη_Γ τότε Εντολές_3 Αλλιώς Εντολές_4 Τέλος_Αν Τέλος_Αν Τέλος_Αν |
Αρχή Διάβασε Χ Αν Χ<10 τότε Γράψε ΄Μονοψήψιος? Αλλιώς Αν Χ<100 τότε Γράψε ?Διψήφιος? Αλλιώς Αν Χ<1000 τότε Γράψε τριψήφιος? Αλλιώς Γράψε ?έχει πολλά ψηφία? Τέλος_Αν Τέλος_Αν Τέλος_Αν Τέλος |
Παρατήρηση 3. |
Ο τύπος αυτής δομής είναι χρήσιμος όταν η κάθε περίπτωση είναι συνέχεια της προηγούμενης. Στο παράδειγμά μας όταν εξετάζεται αν το Χ<100 εννοείται ότι είναι και Χ>=10 δηλ. ισχύει και το ακριβώς αντίθετο της προηγούμενης συνθήκης. Δηλαδή σαν να είχαμε γράψει Χ>=10 και Χ<100, αλλά λόγω της εμφώλευσης είναι περιττός και ο έλεγχος του Χ>=10. |
4. Πολλαπλή Υπάρχει και η Πολλαπλή επιλογή, αλλά είναι εκτός ύλης και δεν διδάσκεται. Άλλωστε αλγοριθμικά καλύπτεται από την εμφωλευμένη. Η διαφορά της με την εμφωλευμένη είναι ότι η κάθε περίπτωση ελέγχεται ξεχωριστά και δεν παρουσιάζει ιδιαίτερο ενδιαφέρον. |
Τέλος υπάρχει η δυνατότητα σύνθεσης και συνδυασμών όλων των άνω δομών επιλογής, ανάλογα της ανάγκες επίλυσης του κάθε αλγόριθμου. |
Ασκήσεις που λύνονται με όλα τα είδη της Δομής Επιλογής - πατήστε ΕΔΩ