Κεφάλαιο 2.2
Κεφ 2.2.7.3 Δομή επιλογής Β' μέρος
Περικλής Μουρίκης / ΠΕ86 / 2023
Δομή Επιλογής
Στην πράξη πολύ λίγα προβλήματα μπορούν να επιλυθούν με τον προηγούμενο τρόπο της σειριακής/ακολουθιακής δομής ενεργειών. Συνήθως τα προβλήματα έχουν κάποιες ιδιαιτερότητες και δεν μπορούν να εκτελεστούν τα ίδια βήματα για κάθε περίπτωση
Με τη δομή επιλογής μπορεί να τροποποιηθεί η σειρά εκτέλεσης των εντολών ενός αλγορίθμου.
Εμφωλευμένες Εντολές Επιλογής
Αν συνθήκη_1 τότε
εντολές_1
Αν συνθήκη_Α τότε
εντολές_Α
αλλιώς_αν συνθήκη_Β τότε
εντολές_Β
Τέλος_αν
αλλιώς_αν συνθήκη_2 τότε
εντολές_2
Τέλος_αν
Σε όλες τις προηγούμενες περιπτώσεις όπου αναφέρεται εντολή ή εντολές, τίποτα δεν απαγορεύει αυτές οι εντολές να είναι επίσης εντολές επιλογής.
Αναφερόμαστε τότε σε εμφωλευμένες εντολές επιλογής.
Παράδειγμα 2.13. Αριθμομηχανή
Να αναπτυχθεί αλγόριθμος, ο οποίος:
1. Θα διαβάζει πρώτα έναν αριθμό α, στη συνέχεια έναν από τους χαρακτήρες +, -, *, /, ανάλογα με την πράξη που θα εκτελέσει και τέλος έναν αριθμό β.
2. Θα εκτελεί την αντίστοιχη πράξη και θα τυπώνει το αποτέλεσμα. Σε περίπτωση που έχει επιλεγεί η πράξη της διαίρεσης, ο αλγόριθμος πρέπει να ελέγχει αν το β είναι μηδέν και τότε να τυπώνει το μήνυμα «Προσοχή, διαίρεση με το μηδέν» και να οδηγείται στο τέλος του.
3. Θα εκτυπώνει το μήνυμα «Λάθος πράξη», αν για το χαρακτήρα της πράξης δοθεί άλλο σύμβολο.
Παράδειγμα 2.13. Αριθμομηχανή (Λύση)
Αλγόριθμος Αριθμομηχανή
Διάβασε α, πράξη, β
Αν πράξη = ''+'' τότε
Εμφάνισε α + β
αλλιώς_αν πράξη = ''-'' τότε
Εμφάνισε α - β
αλλιώς_αν πράξη = ''*'' τότε
Εμφάνισε α * β
αλλιώς_αν πράξη = ''/'' τότε
Αν β ≠ 0 τότε
Εμφάνισε α / β
αλλιώς
Εμφάνισε ''Προσοχή, διαίρεση με το μηδέν''
Τέλος_αν
αλλιώς
Εμφάνισε ''Λάθος πράξη''
Τέλος_αν
Τέλος Αριθμομηχανή
Το ΑΛΛΙΩΣ_ΑΝ είναι διαφορετικό από το ΑΛΛΙΩΣ ΑΝ.
Το ΑΛΛΙΩΣ_ΑΝ είναι διαφορετικό από το ΑΛΛΙΩΣ ΑΝ.
Αν Χ>Y και Y≠1 τότε
Ζ <- Χ/(Y-1)
Εμφάνισε Ζ
αλλιώς_αν Χ>Y και Y=1 τότε
Ζ <- Y/X
Εμφάνισε Ζ
Τέλος_αν
Δίνεται το παρακάτω τμήμα Αλγορίθμου: (Π15)
Αν ........... τότε
Αν ......... τότε
........................
αλλιώς
........................
Τέλος_αν
..............................
Τέλος_αν
Να γράψετε το τμήμα αλγορίθμου ΙΙ με συμπληρωμένα τα κενά, ώστε να παράγει το ίδιο αποτέλεσμα με το τμήμα αλγορίθμου Ι.
Διάβασε Χ
Αν Χ>15 τότε
Γράψε 1
αλλιώς_αν Χ>23 τότε
Γράψε 2
αλλιώς
Γράψε 3
Τέλος_αν
Μια εντολή εξόδου στο παραπάνω τμήμα δεν πρόκειται να εκτελεστεί, όποια και αν είναι η τιμή του Χ.
1. Ποια είναι η εντολή αυτή;
2. Να γράψετε τις εντολές εξόδου που είναι δυνατόν να εκτελεστούν και, δίπλα σε καθεμία από αυτές, το διάστημα τιμών του Χ για το οποίο θα εκτελεστεί η εντολή.
Κλιμακωτή Χρέωση…
Να γραφεί αλγόριθμος, ο οποίος να διαβάζει το πλήθος των υπολογιστών που αγοράζονται από κάποιο κατάστημα. Η τιμή αγοράς των υπολογιστών εξαρτάται από το πλήθος των υπολογιστών που αγοράζονται, σύμφωνα με τον παρακάτω πίνακα:
Πλήθος | Τιμή ανά τεμάχιο |
1 μέχρι 10 | 500 € |
11 μέχρι 20 | 450 € |
21 μέχρι 50 | 360 € |
51 και πάνω | 210 € |
Τέλος να υπολογίζει και να εμφανίζει τη συνολική αξία των υπολογιστών που αγοράστηκαν
Γράψε 'Δώσε πλήθος υπολογιστών'
Διάβασε Πλήθος
Αν Πλήθος < 0 τότε
Γράψε 'Λάθος πλήθος'
αλλιώς_αν Πλήθος ≤ 10 τότε
Αξία ← Πλήθος* 500
αλλιώς_αν Πλήθος ≤ 20 τότε
Αξία ← Πλήθος* 450
αλλιώς_αν Πλήθος ≤ 50 τότε
Αξία ← Πλήθος* 360
αλλιώς
Αξία ← Πλήθος* 210
Τέλος_αν
Αν Πλήθος ≥ 0 τότε
Γράψε 'Συνολική Αξία=', Αξία
Τέλος_αν
Ώρα για εξάσκηση… (Για όλους)
Οι υποψήφιοι για δίπλωμα οδήγησης εξετάζονται σε θεωρητική και πρακτική δοκιμασία, στις οποίες βαθμολογούνται χωριστά (θ και π) σε κλίμακα 1-20. Κάθε μία από τις δύο εξετάσεις θεωρείται επιτυχής εφόσον ο υποψήφιος πάρει βαθμό τουλάχιστον 10.
Αν ο υποψήφιος αποτύχει στη θεωρητική δοκιμασία, επανεξετάζεται σε αυτή μετά από δύο εβδομάδες. Αν αποτύχει στην πρακτική δοκιμασία, επανεξετάζεται σε αυτή μετά από ένα μήνα, ενώ αν αποτύχει και στις δύο παραπέμπεται σε επαναληπτικά μαθήματα και σε επανεξέταση μετά από τρεις μήνες. Σε διαφορετική περίπτωση αποκτά δίπλωμα οδήγησης.
Να δημιουργήσετε αλγόριθμο ο οποίος θα διαβάζει τα βαθμολογικά δεδομένα ενός υποψήφιου και θα εμφανίζει το μήνυμα που αντιστοιχει στην περίπτωσή του.
Υπόδειξη: Δείτε τη βοήθεια από εδώ
Ώρα για εξάσκηση… (Μόνο για Οικ/Πληρ)
Κλιμακωτή Χρέωση (Ι)
Μια εταιρία κινητής τηλεφωνίας ακολουθεί ανά μήνα την πολιτική τιμών, που φαίνεται στον παρακάτω πίνακα:
Να αναπτύξετε αλγόριθμο ο οποίος:�Να διαβάζει τον αριθμό των μηνυμάτων ενός συνδρομητή στο τέλος ενός μήνα�Να υπολογίζει τη μηνιαία χρέωση του συνδρομητή. Η χρέωση των μηνυμάτων είναι κλιμακωτή με βάση τον παραπάνω πίνακα�Να εμφανίζει (τυπώνει) τη λέξη «ΧΡΕΩΣΗ» και τη μηνιαία χρέωση του συνδρομητή
Ώρα για εξάσκηση… (Μόνο για Οικ/Πληρ)
Ωστόσο, αν ξεπεράσει το δωρεάν πλήθος σε κάποια από τις παραπάνω παροχές, τότε χρεώνεται ως εξής για κάθε παροχή που ξεπερνάει το όριο --->
Να αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει τα λεπτά ομιλίας, το πλήθος των SMS, το πλήθος των MB και ανάλογα θα εμφανίζει τη μηνιαία χρέωση του καταναλωτή.
Παροχές | Πλήθος |
Λεπτά ομιλίας/μήνα | 1000 |
SMS/μήνα | 100 |
MB/μήνα | 10000 |
Επιπλέον | Πλήθος |
Κλήσεις ομιλίας | 0,0055 €/sec |
SMS | 0,08 €/SMS |
MB | 0,005 €/MB |
Υπόδειξη: συμβουλευτείτε τη λογική που εμφανίζεται στη σχετική διαφάνειες της παρουσίασης (9)
Ώρα για εξάσκηση… (Μόνο για Οικ/Πληρ) Δ.Μ.Σ.
Ο Δείκτης Μάζας του ανθρώπινου Σώματος (ΔΜΣ) υπολογίζεται από το βάρος (Β) σε χλγ. και το ύψος (Υ) σε μέτρα με τον τύπο ΔΜΣ=Β/Υ^2. Ο ανωτέρω τύπος ισχύει για άτομα άνω των 18 ετών. Το άτομο ανάλογα με την τιμή του ΔΜΣ χαρακτηρίζεται όπως παρακάτω:
Να γράψετε πρόγραμμα το οποίο:
α. να διαβάζει την ηλικία, το βάρος και το ύψος του ατόμου
β. εάν η ηλικία είναι μεγαλύτερη των 18 ετών, τότε
1. να υπολογίζει το ΔΜΣ
2. να ελέγχει την τιμή του ΔΜΣ από τον ανωτέρω πίνακα και να εμφανίζει τον αντίστοιχο χαρακτηρισμό
γ. εάν η ηλικία είναι μικρότερη ή ίση των 18 ετών, τότε να εμφανίζει το μήνυμα "δεν ισχύει ο δείκτης ΔΜΣ".
Παρατήρηση: Θεωρήστε ότι το βάρος, το ύψος και η ηλικία είναι θετικοί αριθμοί.
Υπόδειξη: πατήστε το σύνδεσμο για βοήθεια
Πηγές