Άσκηση 1 Ασκήσεις στη οµή Επανάληψης Ένα τρένο ξεκινάει από Αθήνα για Θεσσαλονίκη έχοντας να κάνει στάση σε 12 ενδιάµεσους σταθµούς. Το τρένο έχει µέγιστη χωρητικότητα επιβατών 780 άτοµα. Να γραφεί αλγόριθµος που θα διαβάζει τον αριθµό των επιβατών που επιβιβάζονται στην Αθήνα. Σε κάθε στάση του τρένου θα διαβάζει το όνοµα του σταθµού και τον αριθµό των επιβατών που αποβιβάζονται καθώς και τον αριθµό των επιβατών που θέλουν να επιβιβαστούν και θα επιτρέπει την επιβίβαση τόσων επιβατών, ώστε να µην ξεπεραστεί η µέγιστη χωρητικότητα του τρένου. Κατά την άφιξη στο σταθµό της Θεσσαλονίκης ο αλγόριθµος θα πρέπει να εµφανίζει τον συνολικό αριθµό των επιβατών που µετακινήθηκαν µε το τρένο, καθώς και το συνολικό αριθµό των επιβατών που έµειναν εκτός. Επίσης θα εµφανίζει το όνοµα του σταθµού µε το µεγαλύτερο αριθµό επιβατών που δεν επιβιβάστηκαν. Άσκηση 2 Να γραφεί αλγόριθµος που θα διαβάζει ένα πλήθος θετικών αριθµών µέχρι να δοθεί το 0. Στη συνέχεια ο αλγόριθµος θα εκτυπώνει το πλήθος των πρώτων αριθµών και το ποσοστό τους σε σχέση µε τους αριθµούς που δόθηκαν. Σηµείωση: Πρώτος ονοµάζεται ο αριθµός που διαιρείται µόνο µε τον εαυτό του και την µονάδα. Άσκηση 3 Ο κ. Γιαννάκης έχει πάρει δάνειο από µια τράπεζα µε ετήσιο επιτόκιο δανεισµού 4%. Να γραφεί αλγόριθµος που θα διαβάζει το ποσό δανείου του κ. Γιαννάκη και τη µηνιαία δόση που επιθυµεί να δίνει και να εκτυπώνει τον αριθµό των ετών που χρειάζονται για την αποπληρωµή του δανείου καθώς και το τελικό ποσό που θα πληρώσει µετά το πέρας των ετών δανεισµού. Το ποσό ξεκινάει να τοκίζεται από το πρώτο έτος δανεισµού. Άσκηση 4 Ένας πωλητής µιας εταιρίας ξεκινάει µε αρχικό µισθό 1200. Κάθε χρόνο ο µισθός του αλλάζει ανάλογα µε τις πωλήσεις που κατάφερε να πετύχει το τρέχον και το προηγούµενο έτος, σύµφωνα µε τον παρακάτω τρόπο. Αν οι πωλήσεις του τρέχοντος έτους είναι αυξηµένες µέχρι και 7% σε σχέση µε το προηγούµενο έτος, τότε ο µισθός του αυξάνεται σε ποσοστό ίσο µε την αύξηση των πωλήσεών του. Αν οι πωλήσεις του τρέχοντος έτους είναι αυξηµένες πάνω από 7% σε σχέση µε το προηγούµενο έτος, τότε ο µισθός του αυξάνεται κατά 3.6%, συν ποσοστό ίσο µε το µισό της ποσοστιαίας αύξησης των πωλήσεων των 2 ετών. Τέλος αν οι πωλήσεις του υπαλλήλου παρουσιάσουν πτώση για δύο συνεχόµενα έτη τότε ο µισθός του παραµένει στάσιµος το πρώτο έτος ενώ το επόµενο µειώνεται κατά 5%. Να γραφεί αλγόριθµος που θα διαβάζει τις πωλήσεις του πωλητή για 10 έτη και θα υπολογίζει Σελίδα 1 από 15
και εκτυπώνει τον µισθό κάθε έτους. Εννοείται ότι η διαδικασία που περιγράφεται παραπάνω για τον υπολογισµό του µισθού του πωλητή ισχύει από το 2 ο έτος και µετά. Άσκηση 5 Να γραφεί αλγόριθµος που θα διαβάζει τους συντελεστές της δευτεροβάθµιας εξίσωσης αχ 2 + βχ + γ = 0, δηλαδή τις τιµές των α,β,γ. Στη συνέχεια θα εκτυπώνει µήνυµα αν η εξίσωση έχει 2 ρίζες στους πραγµατικούς αριθµούς, µια διπλή ρίζα ή αν δεν έχει λύση στους πραγµατικούς αριθµούς. Σε περίπτωση που η εξίσωση λύνεται να υπολογίζει και εκτυπώνει τις λύσεις τις εξισώσεις. Ο αλγόριθµος θα λειτουργεί επαναληπτικά. Η διαδικασία θα τερµατίζει όταν ως τιµή των 3 συντελεστών δοθεί το 0. Σηµείωση : Θυµηθείτε τη διακρίνουσα! Άσκηση 6 Ο υπολογισµός του e x γίνεται µε βάση την παρακάτω ακολουθία : e x = 1 + x + x 2 /2! + x 3 /3! + x 4 /4! + + x N /N!,, όπου Ν! είναι το παραγοντικό ενός αριθµού Ν και υπολογίζεται ως εξής : Ν! = 1 * 2 * 3 *... * (Ν-1) * Ν. Για παράδειγµα το 4! = 1*2*3*4 = 24. Να γραφεί αλγόριθµος που θα διαβάζει το x και το πλήθος των όρων της ακολουθίας που θέλουµε να υπολογίσουµε (δηλαδή το Ν) και θα υπολογίζει και εκτυπώνει το αποτέλεσµα της ακολουθίας. Άσκηση 7 Μια νοικοκυρά πηγαίνει στο σούπερ µάρκετ έχοντας 100. Το σούπερ µάρκετ για κάθε προϊόν που αγοράζει τις δίνει κάποιου πόντους. Σε περίπτωση που οι συνολικοί πόντοι που έχει συγκεντρώσει η νοικοκυρά (δηλαδή όλες τις φορές που έχει κάνει αγορές από το σούπερ µάρκετ) ξεπεράσουν τις 2000, δικαιούται έκπτωση 10% στο συνολικό κόστος, ενώ σε περίπτωση που οι πόντοι που συγκεντρώσει µε τις αγορές που κάνει τη συγκεκριµένη φορά, ξεπεράσουν τους 250 δικαιούται έκπτωση 4%. Να γραφεί αλγόριθµος που θα διαβάζει τους πόντους που έχει µαζέψει µέχρι τώρα η νοικοκυρά, το κόστος κάθε προϊόντος που αγοράζει και τους πόντους που της δίνει το συγκεκριµένο προϊόν και να της εµφανίζει το τελικό κόστος των προϊόντων που αγόρασε καθώς και τα ρέστα που θα πάρει. Σηµείωση : το κόστος των προϊόντων (χωρίς την έκπτωση) δεν πρέπει να ξεπερνά τα χρήµατα που έχει µαζί της. Άσκηση 8 Σε µια οµάδα ποδοσφαίρου συµµετέχουν 22 παίκτες. Να γραφεί αλγόριθµος που θα διαβάζει το όνοµα του κάθε παίκτη, τα γκολ που πέτυχε και να έχει πάρει κάρτα («ΟΧΙ», «Κίτρινη», «Κόκκινη») και θα υπολογίζει και εµφανίζει : Α) Τα συνολικά γκολ της οµάδας Β) Τις συνολικές κίτρινες και τις συνολικές κόκκινες κάρτες της οµάδας. Γ) Το όνοµα του πρώτου σκόρερ. Σελίδα 2 από 15
) Πόσοι παίκτες πέτυχαν πάνω από 5 γκολ. Σηµείωση : ο αλγόριθµος θα πρέπει να κάνει έλεγχο ορθής εισαγωγής, ώστε η κάρτα να έχει τις κατάλληλες τιµές. Άσκηση 9 Ο µέσος όρος βαθµολογίας µιας τάξης της Α Λυκείου στο διαγώνισµα των µαθηµατικών είναι 16.4. Να γραφεί αλγόριθµος που θα διαβάζει το όνοµα και τη βαθµολογία που πέτυχε κάθε µαθητής της τάξης και θα εµφανίζει το όνοµα του µαθητή που η βαθµολογία του ήταν πιο κοντά στον µέσο όρο. Η διαδικασία θα τερµατίζει είτε όταν ως όνοµα µαθητή δοθεί το «τέλος» είτε όταν ως βαθµός δοθεί το -1. Ο αλγόριθµος σας θα πρέπει να ελέγχει ότι η βαθµολογία παίρνει µόνο τις επιτρεπτές τιµές. Άσκηση 10 Το εισιτήριο εισόδου στο µουσείο της πόλης κοστίζει 10 για άτοµα άνω των 25 ετών και 7 για άτοµα κάτω των 25 ετών. Για τους φοιτητές και τους πολύτεκνους το εισιτήριο έχει έκπτωση 15% στην τιµή που θα το αγόραζαν λόγω ηλικίας. Να γραφεί αλγόριθµος που θα διαβάζει την ηλικία του κάθε ατόµου που αγοράζει εισιτήριο, καθώς και το αν είναι φοιτητής, πολύτεκνος ή τίποτα από τα δύο («Φ», «Π», «Τ» αντίστοιχα) και θα υπολογίζει και εµφανίζει το κόστος του εισιτηρίου, το συνολικό κέρδος του µουσείου καθώς και τον αριθµό φοιτητών και πολυτέκνων που το επισκέφθηκαν. Η διαδικασία θα σταµατά όταν ως ηλικία δοθεί αρνητικός αριθµός είτε όταν το µουσείο κόψει 1000 εισιτήρια. Σηµείωση : να γίνετε έλεγχος ορθής εισαγωγής δεδοµένων, όπου χρειάζεται. Άσκηση 11 Σε έναν αγώνα δρόµου 100 µ. συµµετέχουν 22 αθλητές. Να γραφεί αλγόριθµος που θα διαβάζει τον χρόνο κάθε αθλητή σε δευτερόλεπτα και θα εµφανίζει τη διαφορά του πρώτου από τον δεύτερο αθλητή καθώς και τη διαφορά του πρώτου από τον τελευταίο. Επιπλέον, ο αλγόριθµος θα πρέπει να υπολογίζει και εµφανίζει το µέσο όρο χρόνου των αθλητών. Άσκηση 12 Ένα αυτοκίνητο µπορεί να διανύσει µέχρι και 600 χλµ. µε γεµάτο ρεζερβουάρ. Ο οδηγός του αποφασίζει ξεκινώντας από την Αθήνα να επισκεφθεί όσες περισσότερες πόλεις µπορεί χωρίς να ξαναβάλει βενζίνη. Να γραφεί αλγόριθµος που θα διαβάζει την απόσταση µεταξύ των πόλεων που θα διανύσει κάθε φορά ο οδηγός, και υπολογίζει και εµφανίζει αν το ταξίδι µπορεί να πραγµατοποιηθεί καθώς και πόσες πόλεις επισκέφθηκε συνολικά ο οδηγός και την µεγαλύτερη χιλιοµετρική απόσταση που διένυσε µεταξύ δύο πόλεων. Σελίδα 3 από 15
Άσκηση 13 Ο Κωστής προσπαθεί να σπάσει το προσωπικό του ρεκόρ στο αγώνισµα του δρόµου 1000 µ. Έτσι αποφασίζει να κάνει γύρους µέχρι να σπάσει το ρεκόρ του, µε την προϋπόθεση ότι σε κάθε γύρο ο χρόνος που κάνει θα µειώνεται τουλάχιστον κατά 10% σε σχέση µε τον προηγούµενο γύρο, αλλιώς σταµατάει αποφασίζοντας να ξαναδοκιµάσει µια άλλη µέρα. Να γραφεί αλγόριθµος που θα διαβάζει το προηγούµενο ρεκόρ του Κωστή σε δευτερόλεπτα, καθώς και το χρόνο που κάνει σε κάθε γύρο προσπαθώντας να το σπάσει και να εµφανίζει µήνυµα αν ο Κωστής τα κατάφερε ή όχι και σε πόσους γύρους πέτυχε ή εγκατέλειψε την προσπάθεια. Άσκηση 14 Ένα πλοίο έχει χωρητικότητα 1200 επιβατών και 280 οχηµάτων. Κάθε επιβάτης πληρώνει εισιτήριο 25, ενώ τα οχήµατα πληρώνουν 80. Να γραφεί αλγόριθµος που θα διαβάζει τον αριθµό των εισιτηρίων που ζητάει κάθε πελάτης ενός πρακτορείου καθώς και το αν έχει όχηµα («Ναι», «Όχι») και θα εκτυπώνει το συνολικό κέρδος της πλοιοκτήτριας εταιρίας. Σηµείωση : ο αλγόριθµος θα ελέγχει ότι η χωρητικότητα του πλοίου σε οχήµατα ή επιβάτες δεν ξεπερνά την µέγιστη. Άσκηση 15 Να γίνουν οι πίνακες τιµών και τα διαγράµµατα ροής των παρακάτω αλγορίθµων : Αλγόριθµος ας1 Τέλος ας1 α 9 σ 0 Για κ από 2 µέχρι 7 µε_βήµα 2 Αν α div k = 1 τότε σ κ ^ 2 mod α Αλλιώς_αν α div k = 2 τότε Αλλιώς Εµφάνισε σ σ α ^ 2 mod κ σ κ ^ 3 * α div 11 Σελίδα 4 από 15
Αλγόριθµος ας2 χ 20 υ 2 Όσο χ * υ <= 500 επανάλαβε υ υ * χ χ χ div 2 Αν χ mod 2 = 0 τότε Εµφάνισε χ * υ Αρχή_Επανάληψης υ 2 * υ Μέχρις_ότου υ > 2000 Τέλος ας2 Αλγόριθµος ας3 αθρ 0 κ 3 Αρχή_Επανάληψης Αν κ mod 3 = 0 τότε αθρ αθρ + κ Αλλιώς_αν κ mod 2 = 0 τότε αθρ αθρ * κ κ κ + 1 Μέχρις_ότου αθρ > 150 Τέλος ας3 Σελίδα 5 από 15
Αλγόριθµος ας4 µ 0 Για ι από 4 µέχρι 13 µε_βήµα 4 ζ 1 Αρχή_Επανάληψης χ ι Όσο χ > 0 επανάλαβε ζ ζ * χ χ χ (ι div 2) Μέχρις_ότου ζ > 40 Τέλος ας4 Αλγόριθµος ας5 Για κ από 3 µέχρι 8 µε_βήµα 2 Για λ από 10 µέχρι 0 µε_βήµα -3 Αν κ < 7 ή λ > 5 τότε ν κ ^ (λ div 5) Αλλιώς ν κ * λ Εµφάνισε ν Τέλος ας5 Σελίδα 6 από 15
Αλγόριθµος ας6 χ 15 αθρ 0 Αρχη_Επανάληψης β 45 χ χ 5 Αρχή_Επανάληψης αθρ αθρ + β β β χ Μέχρις_ότου (β <= 0) ή (αθρ > 100) Μέχρις_ότου χ div 2 = 0 Τέλος ας6 Άσκηση 16 Να γίνουν οι παρακάτω µετατροπές σε ισοδύναµους αλγορίθµους. Αλγόριθµος α16α λ 5 χ 3 Αρχή_Επανάληψης λ λ + 2 χ χ 1 Μέχρις_ότου λ >= 17 Εµφάνισε χ,λ Τέλος α16α (σε Όσο...επανάλαβε και σε Για..από..µέχρι) Σελίδα 7 από 15
Αλγόριθµος α16β α 4 β 2 Όσο α < 8 επανάλαβε β β + α α α + 2 Εµφάνισε α,β Τέλος α16β (σε Αρχή_Επανάληψης και σε Για..από..µέχρι) Αλγόριθµος α16γ Για κ από 12 µέχρι 5 µε_βήµα -6 λ κ ^ 2 Εµφάνισε λ Τέλος α16γ (σε Όσο...επανάλαβε και σε Αρχή_Επανάληψης) Αλγόριθµος α16δ Για χ από 5 µέχρι 12 Για ψ από 15 µέχρι 0 µε_βήµα 3 ζ ψ div χ Εµφάνισε ζ Τέλος α16δ Σελίδα 8 από 15
(σε Όσο...επανάλαβε και σε Αρχή_Επανάληψης) Αλγόριθµος α16ε ιάβασε αριθµός αθρ 0 Όσο αριθµός > 15 ΚΑΙ αθρ < 120 επανάλαβε αθρ αθρ + αριθµός ιάβασε αριθµός Εµφάνισε αθρ Τέλος α16ε (σε Αρχή_Επανάληψης) Αλγόριθµος α16στ εδοµένα //Κ// β Κ Αρχή_Επανάληψης β β - 2 Εµφάνισε β ^ 2 Μέχρις_ότου β <= 50 Τέλος α16στ (σε Για..από..µέχρι) Αλγόριθµος α16ζ γιν 1 Αρχή_Επανάληψης ιάβασε αριθµός Σελίδα 9 από 15
Αν αριθµός > 0 τότε γιν γιν * αριθµός Μέχρις_ότου αριθµός < 0 Εµφάνισε γιν Τέλος α16ζ (σε Όσο...επανάλαβε) Αλγόριθµος α16η α 5 µ 0 Όσο α > 0 επανάλαβε α α 1 µ µ + α ^ 2 Εµφάνισε µ Τέλος α16η (σε Για..από..µέχρι) Αλγόριθµος α16θ εδοµένα //Α// Για χ από 10 µέχρι Α µε_βήµα 2 Αν χ mod 4 = 0 τότε Εµφάνισε χ / 4 Αλλιώς Εµφάνισε χ/2 Σελίδα 10 από 15
Βασ σιλάκης Βασίίλης Καθηγη ητής Πληροφ φορικής ΔΔΕ Χίου Τέλος_Ε Επανάληψη ης Τέλλος α16θ (σε Αρχή_Επα ανάληψης) Άσκ κηση 17 Να µετα ατραπούν τα παρακάτω ω διαγράµµατα ροής σεε αλγορίθµοους : ΣΣελίδα 11 απ πό 15
Άσκηση 18 Να βρεθούν τα λάθη των παρακάτω αλγορίθµων. Αλγόριθµος λ1 χ 4 Όσο χ <= 12 επανάλαβε ψ 2 Όσο ψ < 12 επανάλαβε ψ χ ψ ψ + 2 χ χ + 3 Τελος_επανάληψης Εµφάνισε χ,ψ Τέλος λ1 Αλγόριθµος λ2 αθρ 0 πλήθος 0 Για κ από 2 µέχρι 12 µε_βήµα -2 αθρ αθρ + κ πλήθος πλήθος + 1 Τέλος_επανάληψης µο αθρ / πλήθος Εµφάνισε µο Τέλος λ2 Σελίδα 12 από 15
Αλγόριθµος λ3 Για χ από 5 µέχρι -2 µε_βήµα -1 Για ψ από 4 µέχρι 7 µε_βήµα χ ψ ψ DIV x Εµφάνισε χ * ψ Τέλος_επανάληψης Τέλος_επανάληψης Τέλος λ3 Αλγόριθµος λ4 χ 6 Όσο χ < 12 επανάλαβε Αρχή_επανάληψης χ χ + 2 υ υ + 7 Μέχρις_ότου υ > 70 χ χ + 7 Τέλος_επανάληψης Τέλος λ4 Αλγόριθµος λ5 α 5 Όσο α < 10 επανάλαβε α α +2 Αν α mod 2 = 0 τότε α α + 5 Αλλιώς Σελίδα 13 από 15
α α 8 Τέλος_επανάληψης Εµφάνισε α Τέλος λ5 Άσκηση 19 Να περιγράψετε µε απλά λόγια τη λειτουργία των παρακάτω αλγόριθµων : Αλγόριθµος α1 ιάβασε χ Όσο χ <> 0 επανάλαβε Αν χ > 0 τότε Εµφάνισε χ Αλλιώς χ (-1) * χ Εµφάνισε χ ιάβασε χ Τέλος α1 Αλγόριθµος λ2 σ 0 µ 0 Για κ από 1 µέχρι 100 ιάβασε λ Αν λ mod 3 = 0 τότε Σελίδα 14 από 15
σ σ + 1 µ µ +1 Εµφάνισε σ/µ Τέλος λ2 Αλγόριθµος λ3 ιάβασε αρ µεγ 0 πρ αρ πλ 1 Όσο (αρ <> 0) ΚΑΙ (πλ <= 100) επανάλαβε Αν (αρ πρ > µεγ) ΚΑΙ (πλ <> 1) τότε µεγ αρ πρ πρ αρ ιάβασε αρ πλ πλ + 1 Εµφάνισε µεγ Τέλος λ3 Σελίδα 15 από 15