Οι διάφορες εκδοχές της ΔΟΜΗ ΕΠΙΛΟΓΗΣ Οι διάφορες εκδοχές της
Ανάπτυξη εφαρμογών / Δομές επιλογής Απλή επιλογή Αν (Συνθήκη =Αληθινή) Τότε Ομάδα εντολών Τέλος_αν Ισχύει η Συνθήκη; Ναι Ομάδα Εντολών Α Όχι Λειτουργία: Αν ισχύει η συνθήκη εκτελείται ΠΡΩΤΑ η ομάδα εντολών Α και μετά η χ χ χ. Αν η συνθήκη δεν ισχύει ΔΕΝ εκτελείται η ομάδα εντολών Α, αλλά απευθείας η χχχ. Χ Χ Χ 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Υπολογισμός μέγιστου δύο αριθμών με απλή επιλογή αρχή Αλγόριθμος Μαχ_1 !Δεν ελέγχει ισότητα ! Θεωρούμε άνισους τους αριθμούς α, β Διάβασε α, β Μέγιστος α Αν (β > μέγιστος) Τότε Μέγιστος β Τέλος_αν Εμφάνισε Μέγιστος Τέλος Μαχ_1 Διάβασε α, β Μέγιστος α β.> Μέγιστος Ναι Μέγιστος β Όχι Εμφάνισε Μέγιστος Τέλος 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Σύνθετη επιλογή Αν (Συνθήκη =Αληθινή) Τότε Ομάδα εντολών Α Αλλιώς Ομάδα εντολών Β Τέλος_αν Ισχύει η Συνθήκη; Ναι Όχι Ομάδα Εντολών Α Ομάδα Εντολών Β Χ Χ Χ Λειτουργία: Αν ισχύει η συνθήκη εκτελείται η ομάδα εντολών Α και μετά η χ χ χ. Αν η συνθήκη δεν ισχύει εκτελείται η ομάδα εντολών Β και μετά η χ χ χ. 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Υπολογισμός μέγιστου δύο αριθμών με σύνθετη επιλογή αρχή ΠΡΟΓΡΑΜΜΑ Μαχ_2 ! Δεν ελέγχει ισότητα ! Θεωρούμε άνισους τους αριθμούς α, β ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : α, β , Μέγιστος ΑΡΧΗ ΔΙΑΒΑΣΕ α, β ΑΝ (β > μέγιστος) ΤΟΤΕ Μέγιστος β ΑΛΛΙΩΣ Μέγιστος α ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Μέγιστος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Διάβασε α, β β > α Ναι Μέγιστος β Μέγιστος α Όχι Εμφάνισε Μέγιστος Τέλος 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Πολλαπλή επιλογή 1 Αν ΕΚΦΡΑΣΗ = τιμή1 τότε Εκτέλεσε Ε1 αλλιώς_αν ΕΚΦΡΑΣΗ = τιμή2 τότε Εκτέλεσε Ε2 αλλιώς_αν ΕΚΦΡΑΣΗ =τιμή3 τότε Εκτέλεσε Ε3 … …. αλλιώς Εκτέλεσε Εφ Τέλος_αν Χρησιμοποιείται σε προβλήματα όπου μπορεί να ληφθούν διαφορετικές αποφάσεις ανάλογα με την τιμή μιας έκφρασης. 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Παράδειγμα Διάβασε ένα αριθμό από 1 – 7 και τύπωσε την αντίστοιχη μέρα αν το 1 αντιστοιχεί στην Κυριακή Αλγόριθμος Πολλαπλή_1 Διάβασε χ Ανχ=1 τότε Εμφάνισε ‘Κυριακή’ αλλιώς_αν χ = 2 τότε Εμφάνισε ‘Δευτέρα’ αλλιώς_αν χ = 3 τότε Εμφάνισε ‘Τρίτη’ αλλιώς_αν χ = 4 τότε Εμφάνισε ‘Τετάρτη’ αλλιώς_αν χ = 5 τότε Εμφάνισε ‘Πέμπτη’ αλλιώς_αν χ = 6 τότε Εμφάνισε ‘Παρασκευή’ αλλιώς_αν χ = 7 τότε Εμφάνισε ‘Σάββατο’ Αλλιώς εμφάνισε ‘Λάθος αριθμός’ Τέλος_αν Τέλος Πολλαπλή_1 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Εμφωλευμένες διαδικασίες Αν έκφραση1 = τιμή1 τότε Αν Εκφραση2= τιμή2 τότε Αν Έκφραση3 =τιμή3 τότε εκτέλεσε Ε3α Αλλιώς εκτέλεσε Ε3λ Τέλος_αν Εκτέλεσε Ε2λ Αν Εκφραση4= τιμή41 τότε Εκτέλεσε Ε4α Εκτέλεσε Ε4λ οχι ναι εκφ1 οχι εκφ4 ναι οχι εκφ2 ναι οχι εκφ3 ναι Ε4λ Ε4α Ε2λ Ε3λ Ε3α Χρησιμοποιείται όταν μια εντολή αν ..τότε εκτελείται μετά τον έλεγχο μιας άλλης αν … τότε. 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Επιτρεπτές και μη επιτρεπτές εμφωλευμένες δομές επιλογής ΝΑΙ ΟΧΙ Αν Τέλος_αν Αν Τέλος_αν Αν Τέλος_αν Αν Τέλος_αν 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Παράδειγμα: Σύγκριση δύο αριθμών, εύρεση μεγαλύτερου Αρχή Αλγόριθμος Μέγιστος_3 Διάβασε α, β Αν α<> β τότε Αν α>β τότε Εμφάνισε α Αλλιώς Εμφάνισε β Τέλος_αν Εμφάνισε ‘ΙΣΟΙ’ Τέλος Μέγιστος_3 Διάβασε α, β οχι α <> β ναι Οχι α > β ναι Εμφάνισε α Εμφάνισε ‘ΙΣΟΙ’ Εμφάνισε β Τέλος 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Υπολογισμός μεγαλύτερου τριών αριθμών αρχή Διάβασε α, β, γ οχι ναι α>β οχι οχι ναι ναι β>γ α>γ Χγ Χβ Χα Χγ Εμφάνισε χ τέλος 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Στοιχεία λογικής ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗ < ΜΙΚΡΌΤΕΡΟ > ΜΕΓΑΛΥΤΕΡΟ <= ΜΙΚΡΌΤΕΡΟ Ή ΊΣΟ >= ΜΕΓΑΛΥΤΕΡΟ Ή ΊΣΟ <> ΔΙΑΦΟΡΟ Οι τελεστές εφαρμόζονται σε όλους τους τύπους δεδομένων, πλην των λογικών όπου εφαρμόζονται μόνο το = και το <> 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Λογικές πράξεις ΠΡΑΞΗ ΑΠΟΤΕΛΕΣΜΑ ΌΧΙ ΑΡΝΗΣΗ ΚΑΙ ΣΥΖΕΥΞΗ Ή ΔΙΑΖΕΥΞΗ Α Β ΌΧΙ Α Α ΚΑΙ Β Α Ή Β Ψ ΙΕΡΑΡΧΙΑ ΛΟΓΙΚΩΝ ΤΕΛΕΣΤΩΝ : ΌΧΙΚΑΙΉ 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Παράδειγμα προτεραιότητας τελεστών (Α<>3) ΚΑΙ ((Β-Α)>0 Ή (ΌΧΙ Γ)) Να υπολογιστεί η τιμή της παράστασης (αν Α=2, Β=3 και Γ = Αληθής Π(Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή (ΌΧΙ Γ)), 1η πράξη Β-Α>0 Π(Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), 2η πράξη ΌΧΙ Γ ΠΑΛΗΘΗΣ ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), 3η πράξη Α<>3 ΠΑΛΗΘΗΣ ΚΑΙ ΑΛΗΘΗΣ 4η πράξη Α ή Ψ Π ΑΛΗΘΗΣ 5η πράξη ΚΑΙ 1η : εσωτερική παρένθεση αριστερά 2η : εσωτερική παρένθεση δεξιά 3η : προηγείται η αριστερή παρένθεση 4η : δεξιά παρένθεση 5η : τελική πράξη ΚΑΙ 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Αντιστροφή λογικών συνθηκών Όταν έχουμε μια λογική συνθήκη Λ και θέλουμε την άρνησή της ΌΧΙ (Λ) Αλλάζουμε τα ΚΑΙ με Η τα Η με ΚΑΙ Αλλάζουμε : > με <= >= με < < με >= <= με > = με <> και αντίστροφα 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Παράδειγμα αντιστροφής Λ (Χ>5) και (Χ<10) Αν Κ είναι η ΌΧΙ Λ : Κ (χ<=5) ή ( χ>=10) Εφαρμογή1 : (α>0) και (β>0) και (α <> β) Εφαρμογή2 : (Βαθμός>=0) και (βαθμός <=20) 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Μετατροπή της δομής Αν …τότε… αλλιώς ..τέλος_αν σε απλές δομές αν ..τότε.. Τέλος_αν Αν Χ>10 τότε Εμφάνισε Χ Αλλιώς Εμφάνισε Χ+7 Τέλος_αν Αν χ>10 τότε Εμφάνισε χ Τέλος_αν Αν χ<=10 τότε Εμφάνισε χ+7 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
ΙΣΟΔΥΝΑΜΟΙ ΑΛΓΟΡΙΘΜΟΙ Ένας φοιτητής χαρακτηρίζεται Απορριπτέος αν βαθμός < 5 Καλός αν βαθμός είναι 5 ή 6 Πολύ καλός αν βαθμός είναι 7 ή 8 Άριστός αν βαθμός είναι 9 ή 10 Να σχεδιαστεί αλγόριθμος που χαρακτηρίζει τον φοιτητή αν στην είσοδο διαβάζει τον βαθμό Αλγόριθμος με αν .. τότε αλλιώς_αν Αλγόριθμος με εμφωλευμένα αν Αλγόριθμος με επίλεξε περίπτωση Αλγόριθμος με απλά αν και λογικούς τελεστές 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Αλγόριθμος Λύση1 Διάβασε β Αν β<0 τότε Εμφάνισε ‘Λάθος , δεν υπάρχουν αρνητικοί βαθμοί’ Αλλιώς_αν β<5 τότε Εμφάνισε ‘απορριπτέος’ Αλλιώς_αν β <=6 τότε Εμφάνισε ‘ καλός’ Αλλιώς_αν β<=8 τότε Εμφάνισε ‘ Πολύ καλός’ Αλλιώς_αν β<=10 τότε Εμφάνισε ‘άριστος’ Αλλιώς Εμφάνισε ‘ Λάθος. Δεν υπάρχουν βαθμοί > 10 ‘ Τέλος_αν ΛΥΣΗ 1η Αν .. Αλλιώς 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Αλγόριθμος Λύση2 Διάβασε β Αν β<0 τότε Εμφάνισε ‘Λάθος , δεν υπάρχουν αρνητικοί βαθμοί’ Αλλιώς αν β<5 τότε Εμφάνισε ‘απορριπτέος’ αν β <=6 τότε Εμφάνισε ‘ καλός’ αν β<=8 τότε εμφάνισε ‘ Πολύ καλός’ Αν β<=10 τότε Εμφάνισε ‘άριστος’ Εμφάνισε ‘ Λάθος. Δεν υπάρχουν βαθμοί > 10 ‘ Τέλος_αν Τέλος Λύση2 ΛΥΣΗ 2η Εμφωλευμένα αν 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Αλγόριθμος Λύση3 Διάβασε β Επίλεξε β Περίπτωση 0,1,2,3,4 Εμφάνισε ‘απορριπτέος’ Περίπτωση 5,6 Εμφάνισε ‘ καλός’ Περίπτωση 7,8 Εμφάνισε ‘ Πολύ καλός’ Περίπτωση 9,10 Εμφάνισε ‘άριστος’ Περίπτωση αλλιώς Εμφάνισε ‘ Λάθος. Δεν υπάρχουν βαθμοί > 10 ή <0 ‘ Τέλος_Επιλογών Τέλος_ Λύση3 ΛΥΣΗ 3η Επίλεξε 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής Αλγόριθμος Λύση4 Διάβασε β Αν β<0 ή β>10) τότε Εμφάνισε ‘Λάθος , δεν υπάρχουν τέτοιοι βαθμοί’ Τέλος_αν Αν β>=0 και β<5 τότε Εμφάνισε ‘απορριπτέος’ Αν β >5 και β<=6 τότε Εμφάνισε ‘ καλός’ Αν β>6 και β<=8 τότε Εμφάνισε ‘ Πολύ καλός’ Αν β>8 και β<=10 τότε Εμφάνισε ‘άριστος’ Τέλος Λύση4 ΛΥΣΗ 4η Απλό αν με λογικούς τελεστές 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής
Ανάπτυξη εφαρμογών / Δομές επιλογής ισοδύναμες δομές Αν συνθήκη τότε Ομάδα εντολών1 Αλλιώς Ομάδα εντολών2 Τέλος_αν Αν ΌΧΙ(συνθήκη) τότε Ομάδα εντολών2 Αλλιώς Ομάδα εντολών1 Τέλος_αν 11/4/2018 Ανάπτυξη εφαρμογών / Δομές επιλογής