Ε.1 ομή Επιλογής Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό που αντιστοιχεί σε ένα έτος μ.χ. και θα αποφαίνεται αν το έτος αυτό είναι δίσεκτο ή όχι. Ένα έτος είναι δίσεκτο αν διαιρείται με το 4, εκτός εάν διαιρείται με το 100 οπότε και δεν είναι δίσεκτο.ωστόσο αν διαιρείται με το 400 το έτος είναι δίσεκτο. Στηνουσίαπρόκειταιγιαπρόβλημααπόφασης. Ζητείται δηλαδή μια απόφαση ΝΑΙ ή ΟΧΙ. Ο αλγόριθμος είναι οακόλουθος: Αλγόριθμος Δίσεκτο_έτος Διάβασε έτος δίσεκτο ψευδής Αν έτος mod4 = 0 τότε δίσεκτο αληθής Αν έτος mod100 = 0 τότε δίσεκτο ψευδής Αν έτος mod400 = 0 τότε δίσεκτο αληθής Αν δίσεκτο = Αληθής τότε Εμφάνισε Το έτος είναι δίσεκτο Εμφάνισε Το έτος δεν είναι δίσεκτο Τέλος Δίσεκτο_έτος
Ε.1 ομή Επιλογής Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό που αντιστοιχεί σε ένα έτος μ.χ. και θα αποφαίνεται αν το έτος αυτό είναι δίσεκτο ή όχι. Ένα έτος είναι δίσεκτο αν διαιρείται με το 4, εκτός εάν διαιρείται με το 100 οπότε και δεν είναι δίσεκτο.ωστόσο αν διαιρείται με το 400 το έτος είναι δίσεκτο. Στηνουσίαπρόκειταιγιαπρόβλημααπόφασης. Ζητείται δηλαδή μια απόφαση ΝΑΙ ή ΟΧΙ. Αλγόριθμος Διάβασε Δίσεκτο_έτος έτος ΑΛΛΙΩΣ Αν (έτος mod4 = 0) και (έτος mod100 <> 0) ή (έτος mod400 = 0) τότε Εμφάνισε Το έτος είναι δίσεκτο Εμφάνισε Το έτος δεν είναι δίσεκτο Τέλος Δίσεκτο_έτος
Ε.2 Με το Διατραπεζικό Σύστημα Συναλλαγών ΔΙΑΣ,κάποιος καταθέτης μπορεί να πραγματοποιήσει ανάληψη από κάποια άλλη τράπεζα πέραν αυτής που συνεργάζεται, από ένα μηχάνημα ΑΤΜ. Για την υπηρεσία αυτή υπάρχει χρέωση ίση με το ένα εκατοστό του ποσού της ανάληψης. Η χρέωση αυτή ωστόσο δεν μπορεί να είναι μικρότερη από 1, αλλά ούτε και να υπερβαίνει τα 3. Να αναπτυχθεί αλγόριθμος που με δεδομένο το διαθέσιμο υπόλοιπο του πελάτη, θα διαβάζει το ποσό της ανάληψης από ένα ΑΤΜ του ΔΙΑΣ και αν μπορεί να πραγματοποιηθεί η συναλλαγή, θα εκτυπώνει το νέο διαθέσιμο υπόλοιπο του λογαριασμού και τη χρέωση που θα έχει ο πελάτης. Για να μπορεί να πραγματοποιηθεί η συναλλαγή, πρέπει το διαθέσιμο υπόλοιπο να είναι μεγαλύτερο ή ίσο με το ποσό ανάληψης, συν το ποσό της χρέωσης από το ΔΙΑΣ. Αλγόριθμος ΔΙΑΣ Δεδομένα //κωδικός_πελάτη,διαθέσιμα// Διάβασε ανάληψη Ο αλγόριθμος είναι οακόλουθος: ομή Επιλογής χρέωση 0.01*ανάληψη Αν χρέωση <1 τότε χρέωση 1 _αν χρέωση >3 τότε χρέωση 3 αφαιρούμενο_ποσό ανάληψη+χρέωση Αν διαθέσιμα >=αφαιρούμενο_ποσό τότε διαθέσιμα διαθέσιμα - αφαιρούμενο_ποσό Εκτύπωσε Το νέο διαθέσιμο υπόλοιπο σου είναι,διαθέσιμα Εκτύπωσε Η χρέωση από το σύστημα ΔΙΑΣ είναι,χρέωση Εκτύπωσε Το διαθέσιμο υπόλοιπο δεν επαρκεί Αποτελέσματα //κωδικός_πελάτη,διαθέσιμα// Τέλος ΔΙΑΣ
Ε.3 ομή Επιλογής Να αναπτυχθεί αλγόριθμος ο οποίος θα διαβάζει τρεις αριθμούς α,β,γ που αντιστοιχούν στα μήκη τριών ευθυγράμμων τμημάτων και θα ελέγχει θα εκτυπώνει αν ορίζεται τρίγωνο με πλευρές α,β,γ, καθώς και το είδος του τριγώνου που προκύπτει ( ορθογώνιο, οξυγώνιο ή αμβλυγώνιο.) Θεωρούμε ότι οι τρεις εισαγόμενες τιμές α,β,γ είναι θετικοί αριθμοί. Ο αλγόριθμος θα ελέγχει αν ορίζεται τρίγωνο, ελέγχοντας αν κάθε πλευρά ενός τριγώνου είναι μικρότερη απότοάθροισματωνάλλωνδύο. Στη συνέχεια ο αλγόριθμος εντοπίζει τη μεγαλύτερη πλευρά του τριγώνου, την οποία συμβολίζει «πλευρά1». Ο έλεγχος για το είδος του τριγώνου γίνεται από τις συνθήκες: (πλευρά1) 2 > (πλευρά2) 2 + (πλευρά3) 2, τότε το τρίγωνο είναι αμβλυγώνιο. (πλευρά1) 2 = (πλευρά2) 2 + (πλευρά3) 2, τότε το τρίγωνο είναι ορθογώνιο. (πλευρά1) 2 < (πλευρά2) 2 + (πλευρά3) 2, τότε το τρίγωνο είναι οξυγώνιο.
Ε.3 Ο αλγόριθμος είναι οακόλουθος: Αλγόριθμος ομή Τρίγωνο Επιλογής Τέλος Τρίγωνο Διάβασε α,β,γ! Θεωρούμε ότι α,β,γ >0 αλλιώς με επανάληψη Αρχή. Αν (α<β+γ) και (β<α+γ) και (γ<α+β) τότε! Ορίζεται τρίγωνο πλευρά1 α πλευρά2 β πλευρά3 γ Αν β >πλευρά1 πλευρά1 β πλευρά2 α πλευρά3 γ Αν γ >πλευρά1 πλευρά1 γ πλευρά2 α πλευρά3 β τότε τότε Αν πλευρά1^2>πλευρά2^2+πλευρά3^2 τότε Εκτύπωσε Αμβλυγώνιο τρίγωνο _αν πλευρά1^2<πλευρά2^2+πλευρά3^2 τότε Εκτύπωσε Οξυγώνιο τρίγωνο Εκτύπωσε Ορθογώνιο τρίγωνο Εκτύπωσε Με αυτά τα δεδομένα δεν ορίζεται τρίγωνο
Ε.4 ομή Επιλογής Να αναπτυχθεί αλγόριθμος που θα διαβάζει τον αύξοντα αριθμό(1-12) ενός μήνα και θα εκτυπώνει το όνομα του μήνα και το πλήθος των ημερών του. Πρέπει να διερευνήσουμε 12 περιπτώσεις οπότε καλύτερα να χρησιμοποιήσουμε τη δομή επιλογής. Αλγόριθμος Μήνας Διάβασε έτος Διάβασε αύξων_αριθμός Αν αύξων_αριθμός=1 τότε Εκτύπωσε Ιανουάριος: 31 ημέρες _αν αύξων_αριθμός=2 τότε Ο αλγόριθμος είναι οακόλουθος: Αν (έτος mod4 = 0) και (έτος mod100 <> 0) ή (έτος mod400 = 0) τότε Εκτύπωσε Φεβρουάριος:29 ημέρες Εκτύπωσε Φεβρουάριος:28 ημέρες _αν αύξων_αριθμός=3 τότε Εκτύπωσε Μάρτιος: 30 ημέρες... _αν αύξων_αριθμός=12τότε Εκτύπωσε Δεκέμβριος : 31 ημέρες Εκτύπωσε Τέλος Μήνας Λάθος καταχώρηση
Ε.4 Να αναπτυχθεί αλγόριθμος που θα διαβάζει τον αύξοντα αριθμό(1-12) ενός μήνα και θα εκτυπώνει το όνομα του μήνα και το πλήθος των ημερών του. Πρέπει να διερευνήσουμε 12 περιπτώσεις οπότε καλύτερα να χρησιμοποιήσουμε τη δομή επιλογής με τη διατύπωση συνθηκών Επίλεξε. Με αυτόν τον τρόπο δεν επαναλαμβάνεται η μεταβλητή που χωρίζει τις περιπτώσεις διότι η μεταβλητή αυτή τοποθετείται μόνο μετά τη δεσμευμένη λέξη Επίλεξε. Ο αλγόριθμος είναι οακόλουθος: ομή Επιλογής Αλγόριθμος Μήνας Διάβασε έτος Διάβασε αύξων_αριθμός Επίλεξε αύξων_αριθμός Περίπτωση =1 Εκτύπωσε Ιανουάριος: 31 ημέρες Περίπτωση =2 Αν (έτος mod4 = 0) και (έτος mod100 <> 0) ή (έτος mod400 = 0) τότε Εκτύπωσε Φεβρουάριος:29 ημέρες Εκτύπωσε Φεβρουάριος:28 ημέρες Περίπτωση =3 Εκτύπωσε Μάρτιος: 30 ημέρες... Περίπτωση =12 Εκτύπωσε Δεκέμβριος : 31 ημέρες Περίπτωση Τέλος Εκτύπωσε Λάθος καταχώρηση Τέλος_επιλογών Μήνας
Ε.5 Ηβιοτεχνία ΡοδοΣΑΚ Α.Ε. παρασκευάζει πλαστικές σακούλες σε 2 μεγέθη. Το κόστος είναι 0.01 για τις μεγάλες και 0.007 για τις μικρές σακούλες. Για παραγγελίες μεγαλύτερες από 150 ή 3500 τεμάχια, παρέχεται έκπτωση 10%. Μάλιστα, αν μια παραγγελία ξεπεράσει τα 500, η έκπτωση φτάνει το 25%. Να αναπτυχθεί αλγόριθμος που θα διαβάζει το πλήθος για μεγάλες και για μικρές σακούλες μιας παραγγελίας και θα εκτυπώνει το οφειλόμενο ποσό. Ο αλγόριθμος είναι ο ακόλουθος: ομή Επιλογής Αλγόριθμος Τέλος Διάβασε Σακούλες Σακούλες μεγάλες,μικρές οφειλή μεγάλες*0.01 +μικρές*0.007 Αν (οφειλή >150) ή (μεγάλες+μικρές> 3500) τότε _αν Εκτύπωσε οφειλή οφειλή - οφειλή *0.10 οφειλή >500 τότε οφειλή οφειλή - οφειλή *0.25 Το οφειλόμενο ποσό είναι :,οφειλή 150 500 640 ΛΑΘΟΣ Διότι αν κάποιος έχει οφειλή 640,τότε θα λάβει έκπτωση 10% κάτι το οποίο είναι λάθος. Ηοφειλή 640 εφαρμόζεται και για τις 2 περιπτώσεις της δομής επιλογής. Ισχύει και στις δύο περιπτώσεις. Επειδή όμως εφαρμόζεται πρώτα στη θέση Αν. Δεν εφαρμόζεται στην θέση _αν. Γι αυτό διαχωρίζουμε τις περιπτώσεις.
Ε.5 ομή Επιλογής Ηβιοτεχνία ΡοδοΣΑΚ Α.Ε. παρασκευάζει πλαστικές σακούλες σε 2 μεγέθη. Το κόστος είναι 0.01 για τις μεγάλες και 0.007 για τις μικρές σακούλες. Για παραγγελίες μεγαλύτερες από 150 ή 3500 τεμάχια, παρέχεται έκπτωση 10%. Μάλιστα, αν μια παραγγελία ξεπεράσει τα 500, η έκπτωση φτάνει το 25%. Να αναπτυχθεί αλγόριθμος που θα διαβάζει το πλήθος για μεγάλες και για μικρές σακούλες μιας παραγγελίας και θα εκτυπώνει το οφειλόμενο ποσό. Ο αλγόριθμος είναι ο ακόλουθος: Αλγόριθμος Σακούλες Διάβασε μεγάλες,μικρές οφειλή μεγάλες*0.01 +μικρές*0.007 Αν οφειλή >500 τότε οφειλή 0.75* οφειλή _αν (οφειλή >150) ή (μεγάλες+μικρές)>3500 οφειλή οφειλή *0.90 τότε Δηλαδή πάμε από το μεγαλύτερο προς το μικρότερο. Εκτύπωσε Το οφειλόμενο ποσό είναι :,οφειλή Τέλος Σακουλές
Ε.6 Το γυμναστήριο «Εν δράση» ανακοίνωσε προσφορές για την προσέλκυση νέων πελατών. Έτσι παρέχεται δωρεάν συνδρομή ενός μήνα και για κάθε επιπλέον μήνα υπάρχει χρέωση 35 με πλήρη πρόσβαση σε όλα τα όργανα. Ωστόσο, αν η συνδρομή ξεπεράσει τους 18 μήνες, υπάρχει έκπτωση 12%, ενώ για συνδρομή πάνω από 24 μήνες η έκπτωση γίνεται 15%. Να αναπτυχθεί αλγόριθμος που θα διαβάζει τους μήνες της επιθυμητής συνδρομής και θα εμφανίζει το οφειλόμενο στο γυμναστήριο ποσό. Ο αλγόριθμος είναι ο ακόλουθος: Αλγόριθμος Διάβασε Εν_δράσει μήνες χρέωση (μήνες-1)*35 ομή Επιλογής Αν (μήνες >24) τότε! Απότομεγαλύτεροστομικρότερο χρέωση χρέωση* (1-15/100) _αν μήνες >18 τότε χρέωση χρέωση *(1-12/100) Εκτύπωσε Το οφειλόμενο ποσό είναι :,χρέωση Τέλος Εν_δράσει
Ε.7 Ένας επιπλοποιός για να προσελκύσει νέους πελάτες πραγματοποιεί εκπτώσεις 10% στις πωλήσεις με τζίρο από 100 μέχρι 250. Αν ο τζίρος είναι μεγαλύτερος από 250 τότε το ποσοστό της έκπτωσης είναι 17%.Να αναπτυχθεί αλγόριθμος που θα διαβάζει την τιμή του επίπλου και την ποσότητα που παραγγέλθηκε και θα εκτυπώνει το τελικό ποσό της πληρωμής καθώς και το ποσό έκπτωσης. Ο αλγόριθμος είναι ο ακόλουθος: Τζίρος x Έκπτωση 0 x 100 0 100 x 250 10 250<x 17 ομή Επιλογής Αλγόριθμος Τέλος Διάβασε Εκτύπωσε έπιπλο έπιπλο τιμή, ποσότητα τζίρος τιμή*ποσότητα Αν τζίρος < 100 ΚΑΙ τζίρος>0 τότε έκπτωση 0 _αν τζίρος < 250 τότε! Δεν έβαλα 100 <x 250 έκπτωση 0.10 *τζίρος _αν τζίρος > 250 τότε έκπτωση 0.17 *τζίρος Εκτύπωσε Λάθος τιμές εισήχθηκαν τελικό_ποσό τζίρος-έκπτωση Η έκπτωση είναι :,έκπτωση, και το τελικό ποσό πληρωμής είναι, τελικό_ποσό
Ε.8 Οι αριθμοί μητρώου των φοιτητών του τμήματος Πληροφορικής ενός Πανεπιστημίου ακολουθούν την εξής λογική: Ο αριθμός μητρώου είναι ένας εξαψήφιος αριθμός. Το πρώτο ψηφίο είναι ο αριθμός 1, τα επόμενα δύο ψηφία αποτελούν το ακαδημαϊκό έτος που εισήχθη στο πανεπιστήμιο και τα υπόλοιπα τρία είναι ο αύξων αριθμός εγγραφής στο πανεπιστημιακό αυτό τμήμα (για παράδειγμα ο φοιτητής με αριθμό μητρώου 102134 εισήχθη το σχολικό έτος 2002-2003 και έχει γραφτεί στη γραμματεία του τμήματος με τη σειρά 134). Για την προφορική εξέταση του μαθήματος «Αλγόριθμοι» ο διδάσκων καθηγητής έχει ανακοινώσει τον επόμενο πίνακα: Αλγόριθμος εξέταση Ακαδημαϊκό έτος Αύξων αριθμός εγγραφής Ημερομηνία Εξέτασης Διάβασε αριθμός_μητρώου! π.χ. 1 0 2 1 3 4! Διαχωρισμός του αριθμού σε δύο τμήματα 2004-2005 Όλοι 5 Ιουνίου 2005-2006 Όλοι 6 Ιουνίου 2006-2007 ομή Επιλογής έως 60 61-100 101 και άνω 7 Ιουνίου 8 Ιουνίου 10 Ιουνίου Άλλο Όλοι 15 Ιουνίου Να αναπτυχθεί αλγόριθμος που θα διαβάζει τον αριθμό μητρώου ενός φοιτητή και θα εκτυπώνει την ημερομηνία εξέτασής του. Ο αλγόριθμος είναι ο ακόλουθος: έτος_εγγραφής αριθμός_μητρώου div 1000! 102 έτος_εγγραφής έτος_εγγραφής -100! 02, δηλαδή έτος 2002-2003 αύξων_αριθμός αριθμός_μητρώου mod 1000! 134 Αν έτος_εγγραφής=4 τότε! έτος 2004-2005 Εκτύπωσε Θα εξεταστείτε στις 5 Ιουνίου _αν έτος_εγγραφής=5 τότε! έτος 2005-2006 Εκτύπωσε Θα εξεταστείτε στις 6 Ιουνίου _αν έτος_εγγραφής=6 τότε! έτος 2006-2007 Τέλος εξέταση Αν αύξων_αριθμός<=60 τότε Εκτύπωσε Θα εξεταστείτε στις 7 Ιουνίου _αν αύξων_αριθμός<=100 τότε Εκτύπωσε Θα εξεταστείτε στις 8 Ιουνίου! >100 Εκτύπωσε Θα εξεταστείτε στις 10 Ιουνίου! Άλλο έτος. Εκτύπωσε Θα εξεταστείτε στις 15 Ιουνίου
Ε.8 Οι αριθμοί μητρώου των φοιτητών του τμήματος Πληροφορικής ενός Πανεπιστημίου ακολουθούν την εξής λογική: Ο αριθμός μητρώου είναι ένας εξαψήφιος αριθμός. Το πρώτο ψηφίο είναι ο αριθμός 1, τα επόμενα δύο ψηφία αποτελούν το ακαδημαϊκό έτος που εισήχθη στο πανεπιστήμιο και τα υπόλοιπα τρία είναι ο αύξων αριθμός εγγραφής στο πανεπιστημιακό αυτό τμήμα (για παράδειγμα ο φοιτητής με αριθμό μητρώου 102134 εισήχθη το σχολικό έτος 2202-2003 και έχει γραφτεί στη γραμματεία του τμήματος με τη σειρά 134). Για την προφορική εξέταση του μαθήματος «Αλγόριθμοι» ο διδάσκων καθηγητής έχει ανακοινώσει τον επόμενο πίνακα: Αλγόριθμος εξέταση Ακαδημαϊκό έτος Αύξων αριθμός εγγραφής Ημερομηνία Εξέτασης Διάβασε αριθμός_μητρώου! π.χ. 1 0 2 1 3 4! Διαχωρισμός του αριθμού σε δύο τμήματα 2004-2005 Όλοι 5 Ιουνίου 2005-2006 Όλοι 6 Ιουνίου 2006-2007 ομή Επιλογής έως 60 61-100 101 και άνω 7 Ιουνίου 8 Ιουνίου 10 Ιουνίου Άλλο Όλοι 15 Ιουνίου Να αναπτυχθεί αλγόριθμος που θα διαβάζει τον αριθμό μητρώου ενός φοιτητή και θα εκτυπώνει την ημερομηνία εξέτασής του. Ο αλγόριθμος είναι ο ακόλουθος: έτος_εγγραφής αριθμός_μητρώου div 1000! 102 έτος_εγγραφής έτος_εγγραφής -100! 02, δηλαδή έτος 2002-2003 αύξων_αριθμός αριθμός_μητρώου mod 1000! 134 Αν έτος_εγγραφής=4 τότε! έτος 2004-2005 Εκτύπωσε Θα εξεταστείτε στις 5 Ιουνίου _αν έτος_εγγραφής=5 τότε! έτος 2005-2006 Εκτύπωσε Θα εξεταστείτε στις 6 Ιουνίου _αν έτος_εγγραφής=6 τότε! έτος 2006-2007 Επίλεξε αύξων_αριθμός Περίπτωση <=60 Εκτύπωσε Θα εξεταστείτε στις 7 Ιουνίου Περίπτωση <=100 Εκτύπωσε Θα εξεταστείτε στις 8 Ιουνίου Περίπτωση! >100 Εκτύπωσε Θα εξεταστείτε στις 10 Ιουνίου Τέλος_επιλογών! Άλλο έτος. Εκτύπωσε Θα εξεταστείτε στις 15 Ιουνίου Τέλος εξέταση