ΔΟΜΗ ΕΠΙΛΟΓΗΣ Οι διάφορες εκδοχές της
Απλή επιλογή Ναι Ομάδα Εντολών Α Ισχύει η Συνθήκη; Χ Χ Χ Όχι Αν (Συνθήκη =Αληθινή) Τότε Ομάδα εντολών Τέλος_αν Λειτουργία: 1. Αν ισχύει η συνθήκη εκτελείται ΠΡΩΤΑ η ομάδα εντολών Α και μετά η χ χ χ. 2. Αν η συνθήκη δεν ισχύει ΔΕΝ εκτελείται η ομάδα εντολών Α, αλλά απευθείας η χχχ. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 2
Υπολογισμός μέγιστου δύο αριθμών με απλή επιλογή Ναι Μέγιστος β αρχή Διάβασε α, β Μέγιστος α β.> Μέγιστος Όχι Εμφάνισε Μέγιστος Τέλος Αλγόριθμος Μαχ_1!Δεν ελέγχει ισότητα! Θεωρούμε άνισους τους αριθμούς α, β Διάβασε α, β Μέγιστος α Αν (β > μέγιστος) Τότε Μέγιστος β Τέλος_αν Εμφάνισε Μέγιστος Τέλος Μαχ_1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 3
Σύνθετη επιλογή Αν (Συνθήκη =Αληθινή) Τότε Ναι Ομάδα Εντολών Α Ισχύει η Συνθήκη; Όχι Ομάδα Εντολών Β Ομάδα εντολών Α Αλλιώς Ομάδα εντολών Β Τέλος_αν Χ Χ Χ Λειτουργία: 1. Αν ισχύει η συνθήκη εκτελείται η ομάδα εντολών Α και μετά η χ χ χ. 2. Αν η συνθήκη δεν ισχύει εκτελείται η ομάδα εντολών Β και μετά η χ χ χ. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 4
Υπολογισμός μέγιστου δύο αριθμών με σύνθετη επιλογή Ναι Μέγιστος β αρχή Διάβασε α, β β > α Εμφάνισε Μέγιστος Τέλος Μέγιστος Όχι α ΠΡΟΓΡΑΜΜΑ Μαχ_2! Δεν ελέγχει ισότητα! Θεωρούμε άνισους τους αριθμούς α, β ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : α, β, Μέγιστος ΑΡΧΗ ΔΙΑΒΑΣΕ α, β ΑΝ (β > α) ΤΟΤΕ Μέγιστος β ΑΛΛΙΩΣ Μέγιστος α ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Μέγιστος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 5
Πολλαπλή επιλογή 1 Αν ΕΚΦΡΑΣΗ = τιμή1 τότε Εκτέλεσε Ε1 αλλιώς_αν ΕΚΦΡΑΣΗ = τιμή2 τότε Εκτέλεσε Ε2 αλλιώς_αν ΕΚΦΡΑΣΗ =τιμή3 τότε Εκτέλεσε Ε3. αλλιώς Εκτέλεσε Εφ Χρησιμοποιείται σε προβλήματα όπου μπορεί να ληφθούν διαφορετικές αποφάσεις ανάλογα με την τιμή μιας έκφρασης. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 6
Παράδειγμα Διάβασε ένα αριθμό από 1 7 και τύπωσε την αντίστοιχη μέρα αν το 1 αντιστοιχεί στην Κυριακή Αλγόριθμος Πολλαπλή_1 Διάβασε χ Ανχ=1 τότε Εμφάνισε Κυριακή αλλιώς_αν χ = 2 τότε Εμφάνισε Δευτέρα αλλιώς_αν χ = 3 τότε Εμφάνισε Τρίτη αλλιώς_αν χ = 4 τότε Εμφάνισε Τετάρτη αλλιώς_αν χ = 5 τότε Εμφάνισε Πέμπτη αλλιώς_αν χ = 6 τότε Εμφάνισε Παρασκευή αλλιώς_αν χ = 7 τότε Εμφάνισε Σάββατο Αλλιώς εμφάνισε Λάθος αριθμός Τέλος Πολλαπλή_1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 7
Υπολογισμός έκφρασης Επίλεξε Πολλαπλή επιλογή 2 Περίπτωση τιμές1 Εκτέλεσε Ε1 Περίπτωση τιμές2 Εκτέλεσε Ε2 Περίπτωση τιμές3 Εκτέλεσε Ε3. Περίπτωση αλλιώς Εκτέλεσε Εα Τέλος_επιλογών Οι τιμές που συνοδεύουν κάθε περίπτωση μπορεί να είναι : 1. Μια ή περισσότερες διακριτές τιμές παράδειγμα1 2. Περιοχή τιμών από έως παράδειγμα2 3. Να υπακούουν σε μια συνθήκη παράδειγμα3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 8
Εμφωλευμένες διαδικασίες οχι Ε4λ οχι εκφ4 ναι εκφ1 Ε4α Ε2λ ναι οχι εκφ2 οχι Ε3λ ναι εκφ3 ναι Ε3α Αν έκφραση1 = τιμή1 τότε Αν Εκφραση2= τιμή2 τότε Αν Έκφραση3 =τιμή3 τότε εκτέλεσε Ε3α Αλλιώς εκτέλεσε Ε3λ Αλλιώς Εκτέλεσε Ε2λ Αλλιώς Αν Εκφραση4= τιμή41 τότε Εκτέλεσε Ε4α Αλλιώς Εκτέλεσε Ε4λ Χρησιμοποιείται όταν μια εντολή αν..τότε εκτελείται μετά τον έλεγχο μιας άλλης αν τότε. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 9
Επιτρεπτές και μη επιτρεπτές εμφωλευμένες δομές επιλογής Αν Αν ΝΑΙ Αν Αν ΟΧΙ Αν Αν Αν Αν Αν Αν 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 10
Παράδειγμα: Σύγκριση δύο αριθμών, εύρεση μεγαλύτερου Αρχή Διάβασε α, β Αλγόριθμος Μέγιστος_3 Διάβασε α, β Αν α<> β τότε οχι Εμφάνισε ΙΣΟΙ α <> β Οχι Εμφάνισε β ναι α > β ναι Εμφάνισε α Αν α>β τότε Εμφάνισε α Αλλιώς Εμφάνισε β Αλλιώς Εμφάνισε ΙΣΟΙ Τέλος Τέλος Μέγιστος_3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 11
Υπολογισμός μεγαλύτερου τριών αριθμών αρχή Διάβασε α, β, γ οχι α>β ναι οχι β>γ ναι οχι α>γ ναι Χ γ Χ β Χ γ Χ α Εμφάνισε χ τέλος 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 12
Στοιχεία λογικής ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗ < ΜΙΚΡΌΤΕΡΟ > ΜΕΓΑΛΥΤΕΡΟ <= ΜΙΚΡΌΤΕΡΟ Ή ΊΣΟ >= ΜΕΓΑΛΥΤΕΡΟ Ή ΊΣΟ <> ΔΙΑΦΟΡΟ Οι τελεστές εφαρμόζονται σε όλους τους τύπους δεδομένων, πλην των λογικών όπου εφαρμόζονται μόνο το = και το <> 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 13
Λογικές πράξεις ΠΡΑΞΗ ΌΧΙ ΚΑΙ Ή ΑΠΟΤΕΛΕΣΜΑ ΑΡΝΗΣΗ ΣΥΖΕΥΞΗ ΔΙΑΖΕΥΞΗ Α Β ΌΧΙ Α Α ΚΑΙ Β Α Ή Β Α Α Ψ Α Α Α Ψ Ψ Ψ Α Ψ Α Α Ψ Α Ψ Ψ Α Ψ Ψ ΙΕΡΑΡΧΙΑ ΛΟΓΙΚΩΝ ΤΕΛΕΣΤΩΝ : ΌΧΙ ΚΑΙ Ή 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 14
Παράδειγμα προτεραιότητας τελεστών (Α<>3) ΚΑΙ ((Β-Α)>0 Ή (ΌΧΙ Γ)) Να υπολογιστεί η τιμή της παράστασης (αν Α=2, Β=3 και Γ = Αληθής) Π (Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή (ΌΧΙ Γ)), Π (Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), Π ΑΛΗΘΗΣ ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), Π ΑΛΗΘΗΣ ΚΑΙ ΑΛΗΘΗΣ Π ΑΛΗΘΗΣ 1 η πράξη Β-Α>0 2 η πράξη ΌΧΙ Γ 3 η πράξη Α<>3 4 η πράξη Α ή Ψ 5 η πράξη ΚΑΙ 1 η : εσωτερική παρένθεση αριστερά 2 η : εσωτερική παρένθεση δεξιά 3 η : προηγείται η αριστερή παρένθεση 4 η : δεξιά παρένθεση 5 η : τελική πράξη ΚΑΙ 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 15
Αντιστροφή λογικών συνθηκών Όταν έχουμε μια λογική συνθήκη Λ και θέλουμε την άρνησή της ΌΧΙ (Λ) Αλλάζουμε τα ΚΑΙ με Η τα Η με ΚΑΙ Αλλάζουμε : > με <= >= με < < με >= <= με > = με <> και αντίστροφα 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 16
Παράδειγμα αντιστροφής Λ (Χ>5) και (Χ<10) Αν Κ είναι η ΌΧΙ Λ : Κ (χ<=5) ή ( χ>=10) Εφαρμογή1 : (α>0) και (β>0) και (α <> β) Εφαρμογή2 : (Βαθμός>=0) και (βαθμός <=20) 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 17
Μετατροπή της δομής Αν τότε αλλιώς..τέλος_αν σε απλές δομές αν..τότε.. Τέλος_αν Αν Χ>10 τότε Εμφάνισε Χ Αλλιώς Εμφάνισε Χ+7 Αν χ>10 τότε Εμφάνισε χ Αν χ<=10 τότε Εμφάνισε χ+7 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 18
ΙΣΟΔΥΝΑΜΟΙ ΑΛΓΟΡΙΘΜΟΙ Ένας φοιτητής χαρακτηρίζεται Απορριπτέος αν βαθμός < 5 Καλός αν βαθμός είναι 5 ή 6 Πολύ καλός αν βαθμός είναι 7 ή 8 Άριστός αν βαθμός είναι 9 ή 10 Να σχεδιαστεί αλγόριθμος που χαρακτηρίζει τον φοιτητή αν στην είσοδο διαβάζει τον βαθμό Αλγόριθμος με αν.. τότε αλλιώς_αν Αλγόριθμος με εμφωλευμένα αν Αλγόριθμος με επίλεξε περίπτωση Αλγόριθμος με απλά αν και λογικούς τελεστές 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 19
Αλγόριθμος Λύση1 Διάβασε β Αν β<0 τότε Εμφάνισε Λάθος, δεν υπάρχουν αρνητικοί βαθμοί Αλλιώς_αν β<5 τότε Εμφάνισε απορριπτέος Αλλιώς_αν β <=6 τότε Εμφάνισε καλός Αλλιώς_αν β<=8 τότε Εμφάνισε Πολύ καλός Αλλιώς_αν β<=10 τότε Εμφάνισε άριστος Αλλιώς Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10 ΛΥΣΗ 1 η Αν.. Αλλιώς 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 20
Αλγόριθμος Λύση2 Διάβασε β Αν β<0 τότε Εμφάνισε Λάθος, δεν υπάρχουν αρνητικοί βαθμοί Αλλιώς αν β<5 τότε Εμφάνισε απορριπτέος Αλλιώς αν β <=6 τότε Εμφάνισε καλός Αλλιώς αν β<=8 τότε» εμφάνισε Πολύ καλός Αλλιώς» Αν β<=10 τότε» Εμφάνισε άριστος» Αλλιώς» Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10» Τέλος_αν Τέλος Λύση2 ΛΥΣΗ 2 η Εμφωλευμένα αν 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 21
Αλγόριθμος Λύση3 Διάβασε β Επίλεξε β Περίπτωση 0,1,2,3,4 Εμφάνισε απορριπτέος Περίπτωση 5,6 Εμφάνισε καλός Περίπτωση 7,8 Εμφάνισε Πολύ καλός Περίπτωση 9,10 Εμφάνισε άριστος Περίπτωση αλλιώς Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10 ή <0 Τέλος_Επιλογών ΛΥΣΗ 3 η Επίλεξε Τέλος_ Λύση3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 22
Αλγόριθμος Λύση4 Διάβασε β Αν β<0 ή β>10) τότε Εμφάνισε Λάθος, δεν υπάρχουν τέτοιοι βαθμοί Αν β>=0 και β<5 τότε Εμφάνισε απορριπτέος Αν β >5 και β<=6 τότε Εμφάνισε καλός Αν β>6 και β<=8 τότε Εμφάνισε Πολύ καλός Αν β>8 και β<=10 τότε Εμφάνισε άριστος ΛΥΣΗ 4 η Απλό αν με λογικούς τελεστές Τέλος Λύση4 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 23
ισοδύναμες δομές Αν συνθήκη τότε Ομάδα εντολών1 Αλλιώς Ομάδα εντολών2 Αν ΌΧΙ(συνθήκη) τότε Ομάδα εντολών2 Αλλιώς Ομάδα εντολών1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 24
Παράδειγμα 1 Αλγόριθμος που διαβάζει ένα μονοψήφιο ακέραιο και τυπώνει το μήνυμα άρτιος, περιττός ή λάθος Αλγόριθμος Είδος_αριθμού Διάβασε χ Επίλεξε Περίπτωση 0 Εμφάνισε Μηδέν Περίπτωση 1, 3, 5, 7, 9 Εμφάνισε Περιττός Περίπτωση 0, 2, 4, 6, 8 Εμφάνισε Άρτιος Περίπτωση αλλιώς Εμφάνισε Λάθος Τέλος_επιλογών
Παράδειγμα 2 Αλγόριθμος που διαβάζει την ηλικία ενός παιδιού και να εμφανίζει την βαθμίδα της εκπαίδευσης Αλγόριθμος Εκπαίδευση Διάβασε Ηλικία Επίλεξε Ηλικία Τέλος_επιλογών Περίπτωση από 0 έως 1 Εμφάνισε Νεογνό Περίπτωση από 2 έως 5 Εμφάνισε Νήπια Περίπτωση 6 έως 11 Εμφάνισε Δημοτικό Περίπτωση 12 έως 17 Περίπτωση αλλιώς Εμφάνισε Μέση εκπαίδευση Εμφάνισε..
Παράδειγμα 3 Αλγόριθμος που διαβάζει τον βαθμό ενός μαθητή και να τον κατατάσσει στην ανάλογη κατηγορία Αλγόριθμος Κατηγορία_Μαθητή Διάβασε β! Αργότερα θα μάθουμε να ελέγχουμε την τιμή ώστε να είναι αποδεκτή Επίλεξε Τέλος_επιλογών Περίπτωση <0 Περίπτωση <9.5 Περίπτωση <12.5 Εμφάνισε λάθος εισαγωγή <0 Εμφάνισε απορρίπτεται Εμφάνισε Σ. Καλός Περίπτωση <15.5 Εμφάνισε Καλός Περίπτωση <18.5 Εμφάνισε Πολύ καλός Περίπτωση <=20 Εμφάνισε Άριστος Περίπτωση αλλιώς Τέλος Κατηγορία_Μαθητή Εμφάνισε λάθος εισαγωγή >20
ΔΟΜΗ ΕΠΙΛΟΓΗΣ Οι διάφορες εκδοχές της 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 1
Ναι Ομάδα Εντολών Α Ισχύει η Συνθήκη; Χ Χ Χ Όχι Απλή επιλογή Αν (Συνθήκη =Αληθινή) Τότε Ομάδα εντολών Τέλος_αν Λειτουργία: 1. Αν ισχύει η συνθήκη εκτελείται ΠΡΩΤΑ η ομάδα εντολών Α και μετά η χ χ χ. 2. Αν η συνθήκη δεν ισχύει ΔΕΝ εκτελείται η ομάδα εντολών Α, αλλά απευθείας η χχχ. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 2
Υπολογισμός μέγιστου δύο αριθμών με απλή επιλογή Ναι Μέγιστος β αρχή Διάβασε α, β Μέγιστος α β.> Μέγιστος Όχι Εμφάνισε Μέγιστος Τέλος Αλγόριθμος Μαχ_1!Δεν ελέγχει ισότητα! Θεωρούμε άνισους τους αριθμούς α, β Διάβασε α, β Μέγιστος α Αν (β > μέγιστος) Τότε Μέγιστος β Τέλος_αν Εμφάνισε Μέγιστος Τέλος Μαχ_1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 3
Σύνθετη επιλογή Ναι Ομάδα Εντολών Α Ισχύει η Συνθήκη; Όχι Ομάδα Εντολών Β Αν (Συνθήκη =Αληθινή) Τότε Ομάδα εντολών Α Αλλιώς Ομάδα εντολών Β Τέλος_αν Χ Χ Χ Λειτουργία: 1. Αν ισχύει η συνθήκη εκτελείται η ομάδα εντολών Α και μετά η χ χ χ. 2. Αν η συνθήκη δεν ισχύει εκτελείται η ομάδα εντολών Β και μετά η χ χ χ. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 4
Υπολογισμός μέγιστου δύο αριθμών με σύνθετη επιλογή Ναι Μέγιστος β αρχή Διάβασε α, β β > α Εμφάνισε Μέγιστος Τέλος Μέγιστος Όχι α ΠΡΟΓΡΑΜΜΑ Μαχ_2! Δεν ελέγχει ισότητα! Θεωρούμε άνισους τους αριθμούς α, β ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : α, β, Μέγιστος ΑΡΧΗ ΔΙΑΒΑΣΕ α, β ΑΝ (β > α) ΤΟΤΕ Μέγιστος β ΑΛΛΙΩΣ Μέγιστος α ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Μέγιστος ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 5
Πολλαπλή επιλογή 1 Αν ΕΚΦΡΑΣΗ = τιμή1 τότε Εκτέλεσε Ε1 αλλιώς_αν ΕΚΦΡΑΣΗ = τιμή2 τότε Εκτέλεσε Ε2 αλλιώς_αν ΕΚΦΡΑΣΗ =τιμή3 τότε Εκτέλεσε Ε3. αλλιώς Εκτέλεσε Εφ Χρησιμοποιείται σε προβλήματα όπου μπορεί να ληφθούν διαφορετικές αποφάσεις ανάλογα με την τιμή μιας έκφρασης. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 6
Παράδειγμα Διάβασε ένα αριθμό από 1 7 και τύπωσε την αντίστοιχη μέρα αν το 1 αντιστοιχεί στην Κυριακή Αλγόριθμος Πολλαπλή_1 Διάβασε χ Ανχ=1 τότε Εμφάνισε Κυριακή αλλιώς_αν χ = 2 τότε Εμφάνισε Δευτέρα αλλιώς_αν χ = 3 τότε Εμφάνισε Τρίτη αλλιώς_αν χ = 4 τότε Εμφάνισε Τετάρτη αλλιώς_αν χ = 5 τότε Εμφάνισε Πέμπτη αλλιώς_αν χ = 6 τότε Εμφάνισε Παρασκευή αλλιώς_αν χ = 7 τότε Εμφάνισε Σάββατο Αλλιώς εμφάνισε Λάθος αριθμός Τέλος Πολλαπλή_1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 7
Υπολογισμός έκφρασης Επίλεξε Περίπτωση τιμές1 Εκτέλεσε Ε1 Περίπτωση τιμές2 Εκτέλεσε Ε2 Περίπτωση τιμές3 Εκτέλεσε Ε3. Περίπτωση αλλιώς Εκτέλεσε Εα Τέλος_επιλογών Πολλαπλή επιλογή 2 Οι τιμές που συνοδεύουν κάθε περίπτωση μπορεί να είναι : 1. Μια ή περισσότερες διακριτές τιμές παράδειγμα1 2. Περιοχή τιμών από έως παράδειγμα2 3. Να υπακούουν σε μια συνθήκη παράδειγμα3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 8
Εμφωλευμένες διαδικασίες οχι Ε4λ οχι εκφ4 ναι εκφ1 ναι οχι Ε4α Ε2λ εκφ2 οχι Ε3λ ναι εκφ3 ναι Ε3α Αν έκφραση1 = τιμή1 τότε Αν Εκφραση2= τιμή2 τότε Αν Έκφραση3 =τιμή3 τότε εκτέλεσε Ε3α Αλλιώς εκτέλεσε Ε3λ Αλλιώς Εκτέλεσε Ε2λ Αλλιώς Αν Εκφραση4= τιμή41 τότε Εκτέλεσε Ε4α Αλλιώς Εκτέλεσε Ε4λ Χρησιμοποιείται όταν μια εντολή αν..τότε εκτελείται μετά τον έλεγχο μιας άλλης αν τότε. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 9
Επιτρεπτές και μη επιτρεπτές εμφωλευμένες δομές επιλογής Αν Αν ΝΑΙ Αν Αν ΟΧΙ Αν Αν Αν Αν Αν Αν 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 10
Παράδειγμα: Σύγκριση δύο αριθμών, εύρεση μεγαλύτερου Αρχή Διάβασε α, β Αλγόριθμος Μέγιστος_3 Διάβασε α, β οχι Εμφάνισε ΙΣΟΙ α <> β Οχι Εμφάνισε β ναι α > β ναι Εμφάνισε α Αν α<> β τότε Αν α>β τότε Εμφάνισε α Αλλιώς Εμφάνισε β Αλλιώς Εμφάνισε ΙΣΟΙ Τέλος Τέλος Μέγιστος_3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 11
Υπολογισμός μεγαλύτερου τριών αριθμών αρχή Διάβασε α, β, γ οχι α>β ναι οχι β>γ ναι οχι α>γ ναι Χ γ Χ β Χ γ Χ α Εμφάνισε χ τέλος 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 12
Στοιχεία λογικής ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗ < ΜΙΚΡΌΤΕΡΟ > ΜΕΓΑΛΥΤΕΡΟ <= ΜΙΚΡΌΤΕΡΟ Ή ΊΣΟ >= ΜΕΓΑΛΥΤΕΡΟ Ή ΊΣΟ <> ΔΙΑΦΟΡΟ Οι τελεστές εφαρμόζονται σε όλους τους τύπους δεδομένων, πλην των λογικών όπου εφαρμόζονται μόνο το = και το <> 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 13
Λογικές πράξεις ΠΡΑΞΗ ΌΧΙ ΚΑΙ Ή ΑΠΟΤΕΛΕΣΜΑ ΑΡΝΗΣΗ ΣΥΖΕΥΞΗ ΔΙΑΖΕΥΞΗ Α Β ΌΧΙ Α Α ΚΑΙ Β Α Ή Β Α Α Ψ Α Α Α Ψ Ψ Ψ Α Ψ Α Α Ψ Α Ψ Ψ Α Ψ Ψ ΙΕΡΑΡΧΙΑ ΛΟΓΙΚΩΝ ΤΕΛΕΣΤΩΝ : ΌΧΙ ΚΑΙ Ή 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 14
Παράδειγμα προτεραιότητας τελεστών (Α<>3) ΚΑΙ ((Β-Α)>0 Ή (ΌΧΙ Γ)) Να υπολογιστεί η τιμή της παράστασης (αν Α=2, Β=3 και Γ = Αληθής) Π (Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή (ΌΧΙ Γ)), Π (Α<>3) ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), Π ΑΛΗΘΗΣ ΚΑΙ (ΑΛΗΘΗΣ Ή ΨΕΥΔΗΣ), Π ΑΛΗΘΗΣ ΚΑΙ ΑΛΗΘΗΣ Π ΑΛΗΘΗΣ 1 η πράξη Β-Α>0 2 η πράξη ΌΧΙ Γ 3 η πράξη Α<>3 4 η πράξη Α ή Ψ 5 η πράξη ΚΑΙ 1 η : εσωτερική παρένθεση αριστερά 2 η : εσωτερική παρένθεση δεξιά 3 η : προηγείται η αριστερή παρένθεση 4 η : δεξιά παρένθεση 5 η : τελική πράξη ΚΑΙ 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 15
Αντιστροφή λογικών συνθηκών Όταν έχουμε μια λογική συνθήκη Λ και θέλουμε την άρνησή της ΌΧΙ (Λ) Αλλάζουμε τα ΚΑΙ με Η τα Η με ΚΑΙ Αλλάζουμε : > με <= >= με < < με >= <= με > = με <> και αντίστροφα 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 16
Παράδειγμα αντιστροφής Λ (Χ>5) και (Χ<10) Αν Κ είναι η ΌΧΙ Λ : Κ (χ<=5) ή ( χ>=10) Εφαρμογή1 : (α>0) και (β>0) και (α <> β) Εφαρμογή2 : (Βαθμός>=0) και (βαθμός <=20) 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 17
Μετατροπή της δομής Αν τότε αλλιώς..τέλος_αν σε απλές δομές αν..τότε.. Τέλος_αν Αν Χ>10 τότε Εμφάνισε Χ Αλλιώς Εμφάνισε Χ+7 Αν χ>10 τότε Εμφάνισε χ Αν χ<=10 τότε Εμφάνισε χ+7 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 18
ΙΣΟΔΥΝΑΜΟΙ ΑΛΓΟΡΙΘΜΟΙ Ένας φοιτητής χαρακτηρίζεται Απορριπτέος αν βαθμός < 5 Καλός αν βαθμός είναι 5 ή 6 Πολύ καλός αν βαθμός είναι 7 ή 8 Άριστός αν βαθμός είναι 9 ή 10 Να σχεδιαστεί αλγόριθμος που χαρακτηρίζει τον φοιτητή αν στην είσοδο διαβάζει τον βαθμό Αλγόριθμος με αν.. τότε αλλιώς_αν Αλγόριθμος με εμφωλευμένα αν Αλγόριθμος με επίλεξε περίπτωση Αλγόριθμος με απλά αν και λογικούς τελεστές 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 19
Αλγόριθμος Λύση1 Διάβασε β Αν β<0 τότε Εμφάνισε Λάθος, δεν υπάρχουν αρνητικοί βαθμοί Αλλιώς_αν β<5 τότε Εμφάνισε απορριπτέος Αλλιώς_αν β <=6 τότε Εμφάνισε καλός Αλλιώς_αν β<=8 τότε Εμφάνισε Πολύ καλός Αλλιώς_αν β<=10 τότε Εμφάνισε άριστος Αλλιώς Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10 ΛΥΣΗ 1 η Αν.. Αλλιώς 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 20
Αλγόριθμος Λύση2 Διάβασε β Αν β<0 τότε Εμφάνισε Λάθος, δεν υπάρχουν αρνητικοί βαθμοί Αλλιώς αν β<5 τότε Εμφάνισε απορριπτέος Αλλιώς αν β <=6 τότε Εμφάνισε καλός Αλλιώς αν β<=8 τότε» εμφάνισε Πολύ καλός Αλλιώς» Αν β<=10 τότε» Εμφάνισε άριστος» Αλλιώς» Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10» Τέλος_αν Τέλος Λύση2 ΛΥΣΗ 2 η Εμφωλευμένα αν 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 21
Αλγόριθμος Λύση3 Διάβασε β Επίλεξε β Περίπτωση 0,1,2,3,4 Εμφάνισε απορριπτέος Περίπτωση 5,6 Εμφάνισε καλός Περίπτωση 7,8 Εμφάνισε Πολύ καλός Περίπτωση 9,10 Εμφάνισε άριστος Περίπτωση αλλιώς Εμφάνισε Λάθος. Δεν υπάρχουν βαθμοί > 10 ή <0 Τέλος_Επιλογών ΛΥΣΗ 3 η Επίλεξε Τέλος_ Λύση3 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 22
Αλγόριθμος Λύση4 Διάβασε β Αν β<0 ή β>10) τότε Εμφάνισε Λάθος, δεν υπάρχουν τέτοιοι βαθμοί Αν β>=0 και β<5 τότε Εμφάνισε απορριπτέος Αν β >5 και β<=6 τότε Εμφάνισε καλός Αν β>6 και β<=8 τότε Εμφάνισε Πολύ καλός Αν β>8 και β<=10 τότε Εμφάνισε άριστος ΛΥΣΗ 4 η Απλό αν με λογικούς τελεστές Τέλος Λύση4 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 23
ισοδύναμες δομές Αν συνθήκη τότε Ομάδα εντολών1 Αλλιώς Ομάδα εντολών2 Αν ΌΧΙ(συνθήκη) τότε Ομάδα εντολών2 Αλλιώς Ομάδα εντολών1 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 24
Παράδειγμα 1 Αλγόριθμος που διαβάζει ένα μονοψήφιο ακέραιο και τυπώνει το μήνυμα άρτιος, περιττός ή λάθος Αλγόριθμος Είδος_αριθμού Διάβασε χ Επίλεξε Περίπτωση 0 Εμφάνισε Μηδέν Περίπτωση 1, 3, 5, 7, 9 Εμφάνισε Περιττός Περίπτωση 0, 2, 4, 6, 8 Εμφάνισε Άρτιος Περίπτωση αλλιώς Εμφάνισε Λάθος Τέλος_επιλογών 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 25
Παράδειγμα 2 Αλγόριθμος που διαβάζει την ηλικία ενός παιδιού και να εμφανίζει την βαθμίδα της εκπαίδευσης Αλγόριθμος Εκπαίδευση Διάβασε Ηλικία Επίλεξε Ηλικία Τέλος_επιλογών Περίπτωση από 0 έως 1 Εμφάνισε Νεογνό Περίπτωση από 2 έως 5 Εμφάνισε Νήπια Περίπτωση 6 έως 11 Εμφάνισε Δημοτικό Περίπτωση 12 έως 17 Εμφάνισε Μέση εκπαίδευση Περίπτωση αλλιώς Εμφάνισε.. 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 26
Παράδειγμα 3 Αλγόριθμος που διαβάζει τον βαθμό ενός μαθητή και να τον κατατάσσει στην ανάλογη κατηγορία Αλγόριθμος Κατηγορία_Μαθητή Διάβασε β! Αργότερα θα μάθουμε να ελέγχουμε την τιμή ώστε να είναι αποδεκτή Επίλεξε Περίπτωση <0 Εμφάνισε λάθος εισαγωγή <0 Περίπτωση <9.5 Εμφάνισε απορρίπτεται Περίπτωση <12.5 Εμφάνισε Σ. Καλός Περίπτωση <15.5 Εμφάνισε Καλός Περίπτωση <18.5 Εμφάνισε Πολύ καλός Περίπτωση <=20 Εμφάνισε Άριστος Περίπτωση αλλιώς Εμφάνισε λάθος εισαγωγή >20 Τέλος_επιλογών Τέλος Κατηγορία_Μαθητή 22/11/08 Ανάπτυξη εφαρμογών / Δομές επιλ 27