26 2.39 Ποια είναι η μορφή της σύνθετης επιλογής και που χρησιμοποιείται; Η συνθέτη επιλογή είναι: Αν Συνθήκη τότε Ομάδα Εντολών 1 Ομάδα Εντολών 2 Η Συνθήκη είναι παράσταση ή μια λογική μεταβλητή. Και μόνο όταν είναι αληθής μπορούν να εκτελεστούν Ομάδα Εντολών 1 που βρίσκονται στο σώμα της. Διαφορετικά αν δηλ είναι ψευδής η συνθήκη Θα εκτελεστεί η Ομάδα Εντολών 2 Η σύνθετη επιλογή χρησιμοποιείται όταν έχουμε να εκτελέσουμε μια διαφορετική ομάδα εντολών που εξαρτώνται από δύο αντίθετες συνθήκες.
2.40 27 Τι θα εμφανίσει ο ακόλουθος αλγόριθμος αν δοθεί σαν είσοδος η τιμή 1)7, 2) 0 και 3)-7 Αλγόριθμος Παράδειγμα_V α Αν α > 0 τότε Παράδειγμα_V Μεγαλύτερο του 0 Μικρότερο ή ίσο του 0 Θα μπορούσα να το έγραφα έτσι: Δώσε τιμή για το α 1) Η εντολή α εκχωρεί στη μεταβλητή α την τιμή 7 Ηεπόμενη εντολή είναι Σύνθετη επιλογή. Ελέγχει αν η α έχει τιμή μεγαλύτερη από την τιμή 0. Η συνθήκη είναι αληθής οπότε οι εντολές που βρίσκονται μεταξύ του Αν τότε και θα εκτελεστούν Κατόπιν θα συνεχιστεί η εκτέλεση του αλγορίθμου μετά το _άν Που τυγχάνει να είναι και το τέλος του αλγορίθμου α 7 Μεγαλύτερο του 0 πακέτο
2.40 28 Τι θα εμφανίσει ο ακόλουθος αλγόριθμος αν δοθεί σαν είσοδος η τιμή 1)7, 2) 0 και 3)-7 Αλγόριθμος Παράδειγμα_V α Αν α > 0 τότε Παράδειγμα_V Μεγαλύτερο του 0 Μικρότερο ή ίσο του 0 1) Η εντολή α εκχωρεί στη μεταβλητή α την τιμή 0 Ηεπόμενη εντολή είναι Σύνθετη επιλογή. Ελέγχει αν η α έχει τιμή μεγαλύτερη από την τιμή 0. Η συνθήκη είναι ψευδής οπότε οι εντολές που βρίσκονται μεταξύ του Αν τότε και δεν θα εκτελεστούν 0 Μικρότερο ή ίσο του 0 Κατόπιν θα συνεχιστεί η εκτέλεση του αλγορίθμου μετά το μέχρι το Και θα εμφανιστεί το μήνυμα: Μικρότερο ή ίσο του 0 Και τελειώνει ο αλγόριθμος
2.40 29 Τι θα εμφανίσει ο ακόλουθος αλγόριθμος αν δοθεί σαν είσοδος η τιμή 1)7, 2) 0 και 3)-7 Αλγόριθμος Παράδειγμα_V α Αν α > 0 τότε Παράδειγμα_V Μεγαλύτερο του 0 Μικρότερο ή ίσο του 0 1) Η εντολή α εκχωρεί στη μεταβλητή α την τιμή - 7 Ηεπόμενη εντολή είναι Σύνθετη επιλογή. Ελέγχει αν η α έχει τιμή μεγαλύτερη από την τιμή 0. Η συνθήκη είναι ψευδής οπότε οι εντολές που βρίσκονται μεταξύ του Αν τότε και δεν θα εκτελεστούν -7 Μικρότερο ή ίσο του 0 Κατόπιν θα συνεχιστεί η εκτέλεση του αλγορίθμου μετά το μέχρι το Και θα εμφανιστεί το μήνυμα: Μικρότερο ή ίσο του 0 Και τελειώνει ο αλγόριθμος
2.41 30 Τι θα εμφανίσει ο ακόλουθος αλγόριθμος αν δοθεί σαν είσοδοι οι τιμές 1)15, -15. Αλγόριθμος Παράδειγμα_Ψ α,β Αν α > 0 και Παράδειγμα_Ψ Περίπτωση Α Περίπτωση Β β + 50 α 0 Θα μπορούσα να το έγραφα έτσι: Δώσε τιμή για το α,β 1) Η εντολή α,β εκχωρεί στη μεταβλητή α την τιμή 15 και στη β την τιμή -15. Ηεπόμενη εντολή είναι Σύνθετη επιλογή. Ελέγχει αν η α έχει τιμή μεγαλύτερη από την τιμή 0 και αν β+50-10 0 ισχύει. Η συνθήκη είναι αληθής οπότε οι εντολές που βρίσκονται μεταξύ του Αν τότε και θα εκτελεστούν. Κατόπιν θα συνεχιστεί η εκτέλεση του αλγορίθμου μετά το _άν Στο τέλος θα τερματίζεται ο αλγόριθμος. τότε Το α*β ισούται με, α*β α,β 15-15 Περίπτωση Α Το α*β ισούται με -225 πακέτο
2.42 31 Να γραφεί η ακόλουθη γενική μορφή της σύνθετης επιλογής, κάνοντας χρήση της δομής απλής επιλογής. Ηγενική μορφή της σύνθετης επιλογής είναι: Αν Συνθήκη τότε Ομάδα εντολών1 Στη σύνθετη δομή επιλογής για να εκτελεστούν οι εντολές στο, Θα πρέπει η Συνθήκη στο Αν τότε να είναι ψευδής. Δηλ. στο οδηγείται η εκτέλεση όταν ισχύει το όχι Συνθήκη, Η άρνηση δηλαδή της αρχικής συνθήκης. Ομάδα εντολών 2 Άρα η ισοδύναμη γενική μορφή της Σύνθετης επιλογής με χρήση της απλής επιλογής είναι: Αν Συνθήκη τότε Ομάδα εντολών1 Προσοχή έγραψα Αν όχι Συνθήκη Για να δηλώσω το (=2 επιλογές). Αν όχι Συνθήκη τότε Ομάδα εντολών 2
2.43 32 Να μετατραπεί ο ακόλουθος αλγόριθμος κάνοντας χρήση απλών επιλογών. Οισοδύναμος αλγόριθμος είναι: Αλγόριθμος Παράδειγμα_8 α 10 Αν α >2 0 ή α/2>2 α α/2-10 α α=,α -10*α α=,α Παράδειγμα_8 τότε Αλγόριθμος Παράδειγμα_8 α 10 Αν α >2 0 ή α/2>2 α α/2-10 α=,α α -10*α α=,α Παράδειγμα_8 τότε Αν όχι (α>20 ή α/2>2) τότε Μία σύνθετη επιλογή. Δύο απλές επιλογές.
2.44 33 Να γραφεί με διάγραμμα ροής ο ακόλουθος αλγόριθμος. Αλγόριθμος Παράδειγμα_Ω α,β Αν α >β τότε Αρχή α,β α α>β β Ναι Όχι Παράδειγμα_Ω α β Το Αν τότε αντικαθίσταται με έναν ρόμβο, Ενώ το δεν εμφανίζεται στο διάγραμμα ροής. Στην σύνθετη επιλογή χρησιμοποιούμε ρόμβο απ όπου ξεκινούν δύο βελάκια. Ναι Όχι α>β
34 2.45 Να μετατραπεί το ακόλουθο διάγραμμα ροής σε ψευδοκώδικα. Αρχή α,β α β Ναι β α-2 Στο διάγραμμα ροής υπάρχουν 2 ρόμβοι. Άρα ο αλγόριθμος έχει 2 επιλογές. Ηπρώτη επιλογή δεν περιέχει εντολές στο όχι. Άρα είναι απλή επιλογή. Ηδεύτερη επιλογή περιέχει εντολές στο όχι,άρα υπάρχει μια σύνθετη επιλογή (2 βελάκια): Οψευδοκώδικας είναι: Παράδειγμα_Δ Αλγόριθμος α,β Ναι α β Όχι Αν α β τότε β α-2 α β Αν α β τότε α β Παράδειγμα_Δ
2.46 35 Ποιος από τους δύο παρακάτω αλγόριθμους είναι πιο αποτελεσματικός,δηλ εκτελεί λιγότερες ενέργειες ; Αλγόριθμος Παράδειγμα_Α α,β Αν α >β και α,β β,α Παράδειγμα_Α α+β>20 τότε Στο1ο αλγόριθμο γίνεται έλεγχος μία φορά μόνο. Αν ισχύει η συνθήκη θα εκτελεστούν οι εντολές μεταξύ του Αν τότε και. Διαφορετικά θα εκτελεστούν οι εντολές μεταξύ του και Αλγόριθμος Παράδειγμα_Α α,β Αν α >β και α+β>20 τότε α,β Αν όχι α >β και α+β>20 τότε β,α Συνεπώς ο 1ος αλγόριθμος θα είναι πιο αποτελεσματικός Παράδειγμα_Α Στο 2ο αλγόριθμο αρχικά θα ελεγχθεί η πρώτη συνθήκη. Αν ισχύει θα εκτελεστούν αλλιώς όχι. Σε κάθε περίπτωση η εκτέλεση του αλγορίθμου θα συνεχίσει στη δεύτερη επιλογή και θα γίνει πάλι έλεγχος. Αρα θα έχουμε 2 ελέγχους.
36 2.47 Να γραφεί ένας αλγόριθμος που θα διαβάζει τρεις αριθμούς, θα τους συγκρίνει και θα εμφανίζει τον μέγιστο. Λύση Ηπερίπτωση να συγκρίνουμε περισσότερους από 2 αριθμούς είναι πιο δύσκολη. Πρέπει να χωρίσουμε τη διαδικασία σε βήματα,συγκρίνοντας τους αριθμούς ανά δύο. 1 ο Βήμα: Αρχικά θεωρούμε ότι ο μεγαλύτερος αριθμός είναι ο πρώτος. Τον εκχωρούμε σε μια μεταβλητή την οποία την ονομάζουμε max. 2 ο Βήμα: Συγκρίνουμε τον δεύτερο αριθμό με τον μέχρι τώρα μεγαλύτερο, δηλ την τιμή του max. Και βρίσκουμε τον μεγαλύτερο. Τον μεγαλύτερο των δύο αριθμών τον εκχωρούμε στη μεταβλητή max. Αλγόριθμος Μέγιστος Δώσε τρεις αριθμούς α,β,γ max α Αν β >max τότε max β πάνε πακέτο. 3 ο Βήμα: Συγκρίνουμε τον τρίτο αριθμό με τον μέχρι τώρα μεγαλύτερο, δηλ την τιμή του max. Και βρίσκουμε τον μεγαλύτερο. Τον μεγαλύτερο των δύο αριθμών τον εκχωρούμε στη μεταβλητή max. Αν γ> max τότε max γ Ο μεγαλύτερος αριθμός είναι :, max Άρα ο αλγόριθμος είναι : Μέγιστος
37 2.48 Λύση Πηγαίνεις σε ένα πολυκατάστημα και παρατηρείς τις παρακάτω τιμές για 4 διαφορετικά είδη γάλακτος. Είδος ΓΑΛΑ_Α ΓΑΛΑ_Β ΓΑΛΑ_Γ ΓΑΛΑ_Δ Τιμή 0,5 0,6 0,8 0,9 1 ο Βήμα: Αρχικά πρέπει να βρούμε για κάθε είδος γάλακτος την τιμή ανά ml. Αυτό βρίσκεται αν διαιρέσουμε την τιμή δια την ποσότητα. 2 ο Βήμα: Αφού γίνει η μετατροπή συγκρίνουμε κάθε τιμη/ml (όπως στην 2.47 ) Θα εκχωρούμε σε μια μεταβλητή min την ελάχιστη τιμή. Άρα ο αλγόριθμος είναι : Ποσότητα 300 ml 400 ml 500 ml 550 ml Να γράψεις αλγόριθμο που θα υπολογίζει και θα εμφανίζει το είδος γάλακτος με την πιο συμφέρουσα τιμή. Αλγόριθμος Φθηνότερο_Γάλα Τιμή_Α 0,5/300 Τιμή_Β 0,6/400 Τιμή_Γ 0,8/500 Τιμή_Δ 0,9/550 min Τιμή_Α Φθηνότερο_είδος Γάλα_Α Αν Τιμή_Β <min τότε min Τιμή_Β Φθηνότερο_είδος Γάλα_Β Αν Τιμή_Γ <min τότε min Τιμή_Γ Φθηνότερο_είδος Γάλα_Γ Αν Τιμή_Δ <min τότε min Τιμή_Δ Φθηνότερο_είδος Γάλα_Δ Το φθηνότερο είδος είναι :, Φθηνότερο_είδος Φθηνότερο_Γάλα
38 2.49 Να γραφεί αλγόριθμος ο οποίος θα υπολογίζει την συνάρτηση: f(x)= x4 +1 x Λογικά θα ισχύει x 0 Το αποτέλεσμα της συνάρτησης εξαρτάται από τη τιμή του x. Ο αλγόριθμος θα διαβάζει μια τυχαία τιμή για το x και θα υπολογίζει τη συνάρτηση. Αν όμως η τιμή εισόδου είναι ίση με μηδέν, η συνάρτηση δεν ορίζεται. Διότι δεν μπορεί να γίνει διαίρεση με το μηδέν. Λύση Αλγόριθμος χ Συνάρτηση_f Δώσε ένα αριθμό!το f(x) δεν είναι αποδεκτό! όνομα αποδεκτό είναι το fx Αν χ 0 τότε fx (x^4+1)/χ πάνε πακέτο. x 0 Άρα πρέπει να εξελέγξουμε την τιμή του x και κατόπιν να κάνουμε τους υπολογισμούς Άρα ο αλγόριθμος είναι : Αποτέλεσμα :,fx! Δύο περιπτώσεις Δεν είναι δυνατό να γίνει υπολογισμός Συνάρτηση_f
39 2.50 Να γραφεί αλγόριθμος ο οποίος θα δέχεται ως είσοδο ένα αριθμό και θα εμφανίζει το μήνυμα : Άρτιος, αν ο αριθμός είναι άρτιος ή το μήνυμα : Περιττός, αν ο αριθμός είναι περιττός. Λύση Ένας αριθμός είναι άρτιος όταν διαιρείται ακριβώς με το 2, όταν το mod του αριθμού με το δύο (2) είναι μηδέν (0) X mod 2 =0 Σε οποιαδήποτε άλλη περίπτωση είναι περιττός. Άρα έχω δύο περιπτώσεις. Αλγόριθμος χ Άρτιος_Περιττός Δώσε ένα αριθμό Αν χmod 2 = 0 τότε Άρτιος πάνε πακέτο. modx Άρα ο αλγόριθμος είναι :! Δύο περιπτώσεις Περιττός Άρτιος_Περιττός
40 2.51 Να γραφεί αλγόριθμος που θα δέχεται ως είσοδο τρεις τιμές. Οι δύο πρώτες θα είναι αριθμητικές, ενώ η τρίτη τιμή θα είναι αλφαριθμητική. Ο αλγόριθμος θα εμφανίζει το άθροισμα των δύο πρώτων τιμών όταν η τρίτη μεταβλητή ισούται με ΠΡΟΣΘΕΣΗ και τη διαφορά των δύο πρώτων σε οποιαδήποτε άλλη περίπτωση. Λύση Ο αλγόριθμος θα διαβάζει 3 τιμές, οι οποίες θα εισάγονται σε 3 μεταβλητές. Ο έλεγχος αφορά την τιμή της τρίτης μεταβλητής. Αλγόριθμος α, β, γ ΑΡΙΘ_ΠΡΑΞΗ Δώσε τρεις τιμές πάνε πακέτο. Η Τρίτη τιμή θα είναι αλφαριθμητική, εφόσον το περιεχόμενο της είναι μια λέξη. Τις αλφαριθμητικές μεταβλητές τις διαβάζουμε όπως και τις υπόλοιπες μεταβλητές, απλά στον έλεγχο ή στην εντολή εκχώρησης χρησιμοποιούμε διπλά εισαγωγικά. Αν γ = ΠΡΟΣΘΕΣΗ τότε α+β! Δύο περιπτώσεις α-β ΠΡΟΣΘΕΣΗ Άρα ο αλγόριθμος είναι : ΑΡΙΘ_ΠΡΑΞΗ
41 2.52 Να γραφεί αλγόριθμος που θα διαβάζει τις ετήσιες αποδοχές ενός υπαλλήλου. Στη συνέχεια θα υπολογίζει την κράτηση φόρου που παρακρατείται ως εξής: Αν οι αποδοχές του υπαλλήλου ξεπερνούν ένα συγκεκριμένο όριο χρημάτων τότε θα παρακρατείται ως φόρος 30% των αποδοχών του, διαφορετικά θα παρακρατείται το 20%. Να εμφανίζεται η παρακράτηση του φόρου και το καθαρό ποσό που τελικά θα αποδοθεί. Λύση Αρχικά θα πρέπει να διαβάσουμε τις ετήσιες αποδοχές του υπαλλήλου. Θα πρέπει να διαβάσουμε και το όριο των χρημάτων πάνω από το οποίο θα παρακρατείται το 30%. Μετά θα κάνουμε την σύγκριση. Άρα ο αλγόριθμος είναι : > Αλγόριθμος Υπολογισμός_κρατήσεων Δώσε αποδοχές υπαλλήλου αποδοχές Αν αποδοχές > όριο_χρημάτων τότε φόρος φόρος αποδοχές*30/100! Δύο περιπτώσεις αποδοχές*20/100 πάνε πακέτο. Δώσε όριο χρημάτων για αλλάγή κλίμακας φόρου: όριο_χρημάτων > Φόρος που παρακρατήθηκε:,φόρος Ποσό που αποδίδεται :, αποδοχές-φόρος Υπολογισμός_κρατήσεων
42 2.54 Σε ένα διαγωνισμό για την Πυροσβεστική Υπηρεσία οι άντρες υποψήφιοι θα πρέπει να συγκεντρώσουν τουλάχιστον 80 βαθμούς και να έχουν ύψος τουλάχιστον 175cm. Οι γυναίκες υποψήφιοι θα πρέπει να συγκεντρώσουν τουλάχιστον 70 βαθμούς και να έχουν ύψος τουλάχιστον 165cm. Να γραφεί αλγόριθμος που θα ελέγχει αν ένας υποψήφιος πέτυχε στο διαγωνισμό. Λύση Αρχικά θα πρέπει να διαβάσουμε τη βαθμολογία το ύψος και το φύλλο. Στη συνέχεια θα ελέγχουμε με τη μορφή της σύνθετης επιλογής και με τη βοήθεια λογικών τελεστών, αν πέτυχε ο / η υποψήφιος/ια ΚΑΙ, Ή,Όχι. Αλγόριθμος β,υ,φ Πυροσβεστική Δώσε βαθμό,ύψος και φύλλο. πάνε πακέτο. Αν (φ= Άνδρας και β 80 και υ 175) ή (φ= Γυναίκα και β 70 και υ 165) Πέτυχες Απέτυχες! Δύο περιπτώσεις τότε Άρα ο αλγόριθμος είναι : Πυροσβεστική