1 ο Σετ Ασκήσεων Δομή Επιλογής - Επανάληψης Άςκθςθ 1θ: Ζνα παιχνίδι με ηάρια παίηεται ωσ εξισ: Α. Ο παίκτθσ αρχικά ποντάρει κάποιο ποςό και ρίχνει δφο ηάρια. Β. Ο παίκτθσ κερδίηει (το ποςό που ζχει ποντάρει) όταν: Θ διαφορά των 2 ηαριϊν είναι 4 ι 5. Ο παίκτθσ φζρει τεςςάρεσ, πεντάρεσ ι εξάρεσ. Γ. Ο παίκτθσ χάνει (το ποςό που ζχει ποντάρει) όταν: Θ διαφορά των 2 ηαριϊν είναι 1 ι 2. Ο παίκτθσ φζρει άςςουσ, δυάρεσ ι τριάρεσ. Δ. Ανεξάρτθτα από το αν κερδίςει ι χάςει, ςε περίπτωςθ που και τα 2 ηάρια είναι μονά ι ηυγά κερδίηει 20. Ε. ε περίπτωςθ που θ διαφορά των δφο ηαριϊν είναι 3 τότε ο παίκτθσ ξαναρίχνει μόνο ζνα ηάρι. ΣΤ. Αν το τρίτο ηάρι είναι ανάμεςα ςτισ δφο ηαριζσ που είχε φζρει τθν προθγοφμενθ φορά τότε ο παίκτθσ κερδίηει το διπλάςιο ποςό από όςα πόνταρε. Ζ. Αν το τρίτο ηάρι είναι πλθςιζςτερα ςτο μεγαλφτερο από τα δφο προθγοφμενα τότε κερδίηει το μιςό ποςό από όςα πόνταρε. ε κάθε άλλθ περίπτωςθ χάνει. Να γραφεί πρόγραμμα ςε γλϊςςα προγραμματιςμοφ ΓΛΩΑ που με τθ βοικεια κατάλλθλων μθνυμάτων να διαβάηει τισ ηαριζσ (ςφμφωνα με τα παραπάνω) ενόσ παίκτθ και το ποςό πονταρίςματοσ και να εκτυπϊνει το ποςό που κζρδιςε. ε περίπτωςθ που δεν κζρδιςε κανζνα ποςό κα εκτυπϊνει κατάλλθλο μινυμα. Κατά τθν είςοδο δεδομζνων κα πραγματοποιείται κατάλλθλοσ ζλεγχοσ ειςόδου δεδομζνων ϊςτε οι ηαριζσ να είναι ακζραιοι από 1 μζχρι 6 και το ποςό πονταρίςματοσ να είναι τουλάχιςτο 30. 1
Άςκθςθ 2θ: Σο παιχνίδι Prince of Persia παίηεται ςε υπολογιςτι. κοπόσ του παιχνιδιοφ είναι ο πρίγκιπασ να ξεπεράςει τα εμπόδια ςε κάκε ςτάδιο και να ελευκερϊςει τθ βαςιλοποφλα που κρατά φυλακιςμζνθ ο κακόσ Jafar. Σο παιχνίδι λειτουργεί ωσ εξισ : Τπάρχουν ςυνολικά 20 ςτάδια (πίςτεσ) και ςε κάκε ςτάδιο υπάρχουν 6 εμπόδια. Ο παίκτθσ ξεκινά το παιχνίδι ζχοντασ 3 ηωζσ. ε περίπτωςθ που ο παίκτθσ δεν περάςει 3 (ι και περιςςότερα) εμπόδια χάνει μια ηωι. Για κάκε εμπόδιο που περνά επιτυχϊσ κερδίηει 100 βακμοφσ, εκτόσ των εμποδίων των 5 τελευταίων ςταδίων όπου για κάκε εμπόδιο που περνά επιτυχϊσ δίνονται 500 βακμοί. Όταν κάποιοσ παίκτθσ φτάςει ςτισ πίςτεσ με αρικμό 8 και 15 κερδίηει μια ηωι αντίςτοιχα και επιπλζον 1500 βακμοφσ. Σο παιχνίδι τερματίηει όταν i) ο παίκτθσ δεν περάςει κανζνα εμπόδιο μιασ πίςτασ ii) ο παίκτθσ χάςει όλεσ του τισ ηωζσ Να γραφεί πρόγραμμα το οποίο : α) διαβάηει το όνομα ενόσ παίκτθ, τισ επιτυχίεσ* του ςε κάκε πίςτα κακϊσ και τθ μζγιςτθ βακμολογία που υπάρχει ςτο παιχνίδι από προγενζςτερο παίκτθ. β) ςε κάκε περίπτωςθ (είτε τερματίςει πριν το τζλοσ, είτε φτάςει ςτο τζλοσ) να τυπϊνει το όνομα, τθ βακμολογία και αν θ βακμολογία είναι μεγαλφτερθ από τθν υπάρχουςα μζγιςτθ να τυπϊνει το μινυμα High Score. γ) ςε περίπτωςθ που τερματίςει το παιχνίδι πριν το τζλοσ να εμφανίηει μινυμα Sorry you lost, insert another coin δ) ςε περίπτωςθ που τελειϊςει επιτυχϊσ όλεσ τισ πίςτεσ να εμφανίηει μινυμα You are my hero, play again και το παιχνίδι ξαναρχίηει από τθν αρχι. * επιτυχία είναι το πζραςμα ενόσ εμποδίου. Π.χ. αν ςτθν 10θ πίςτα ο αρικμόσ των επιτυχιϊν είναι δφο ςθμαίνει ότι πζραςε δφο από τα ζξι εμπόδια. 2
Άςκθςθ 3θ: Να καταςκευαςτεί πρόγραμμα το οποίο : i. Θα διαβάηει δυο αρικμοφσ (ζνα μονοψιφιο και ζνα τετραψιφιο). Να γίνει ζλεγχοσ για τα δεδομζνα ειςόδου. ii. Θα καταςκευάηει ζνα καινοφριο αρικμό από τουσ δυο προθγοφμενουσ ωσ εξισ : κα τοποκετεί τον μονοψιφιο αρικμό ςαν μεςαίο ψθφίο ςτον τετραψιφιο κάνοντάσ τον πενταψιφιο και ςτθν ςυνζχεια κα τον εμφανίηει. (π.χ. αν ο μονοψιφιοσ είναι το 5 και ο τετραψιφιο το 1234 κα καταςκευάηει τον 12534) iii. Θα ελζγχει αν ο νζοσ αρικμόσ είναι ταυτόχρονα ακζραιο πολλαπλάςιο του 3 και άρτιοσ. Άςκθςθ 4θ: Για τισ ανάγκεσ του εφετινοφ διαγωνιςμοφ ΑΕΠ ζχουν δεςμευτεί 350 αίκουςεσ διαφορετικισ χωρθτικότθτασ ςε εξεταςτικά κζντρα ςε ολόκλθρθ τθ χϊρα. Ο αρικμόσ των επιτθρθτϊν που απαιτοφνται ανά αίκουςα κακορίηεται από το πλικοσ των εξεταηομζνων που βρίςκονται ςε αυτι, ςφμφωνα με τον παρακάτω πίνακα: Άτομα που διαγωνίηονται Αρικμόσ επιτθρθτϊν μζχρι και 12 1 από 13 μζχρι και 22 2 περιςςότερα από 22 3 Να αναπτφξετε πρόγραμμα το οποίο: α. Για κάκε αίκουςα, i. κα διαβάηει επαναλθπτικά τα ονόματα των εξεταηομζνων που κα βρίςκονται ςε αυτιν. Θ επαναλθπτικι διαδικαςία πρζπει να τερματίηεται μόλισ ειςαχκεί ωσ όνομα εξεταηομζνου το λεκτικό "τζλοσ". ii. κα εκτυπϊνεται το πλικοσ των επιτθρθτϊν που απαιτοφνται για αυτιν. β. κα εκτυπϊνει το μικρότερο πλικοσ εξεταηομζνων που κα εξεταςτοφν ςε κάποια αίκουςα (μπορεί να είναι και περιςςότερεσ από μια). γ. κα εκτυπϊνει το πλικοσ των επιτθρθτϊν που απαιτοφνται ςυνολικά για τθ διενζργεια των εξετάςεων. Παρατιρθςθ: θ καταχϊρθςθ των ατόμων για κάκε αίκουςα είναι ςωςτι, δεν υπάρχει περίπτωςθ να παραβιάηεται θ χωρθτικότθτα κάποιασ αίκουςασ. 3
Άςκθςθ 5θ: Α) Για τθν εξόφλθςθ ενόσ δανείου ςε μία τράπεηα θ ςυμφωνία είναι ο δανειολιπτθσ να δίνει ςτθν τράπεηα ζνα ποςό κάκε μινα μζχρι εξαντλιςεωσ τθσ οφειλισ ζχοντασ το δικαίωμα να εξοφλιςει το αναγκαίο ποςό μζςα ςε 25 ζτθ. το τζλοσ κάκε ζτουσ το ποςό που απομζνει ανατοκίηεται με επιτόκιο 8%. Να δοκεί αλγόρικμοσ ο οποίοσ αρχικά να διαβάηει το αρχικό ποςό του δανείου και ςτθν ςυνζχεια για κάκε μινα: i) να διαβάηει το ποςό που δίνει ο δανειολιπτθσ και να ελζγχεται ωσ προσ τθν ορκότθτά του (να μθν υπερβαίνει το ποςό που απομζνει) ii) να εμφανίηει μινυμα που να αναφζρει το υπόλοιπο μετά από κάκε τζτοια ςυναλλαγι iii) να επανατοκίηει το ποςό που απομζνει όταν ςυμπλθρϊνεται ζνα ζτοσ iv) να εμφανίηει πόςοσ χρόνοσ ςε μινεσ απομζνει ςτον δανειολιπτθ για τθν εξόφλθςθ του δανείουο αλγόρικμοσ να τερματίηει είτε με τθν εξόφλθςθ του δανείου εμφανίηοντασ ανάλογο μινυμα είτε ζνα μινα πριν τθ λιξθ τθσ προκεςμίασ εμφανίηοντασ το ποςό που απομζνει να πλθρωκεί. Β) να επεκτακεί ο παραπάνω αλγόρικμοσ ζτςι ϊςτε i) να διαβάηει επαναλθπτικά τα ονόματα πολλϊν δανειολθπτϊν και το αρχικό ποςό κάκε δανείου και να τερματίηει όταν δοκεί ωσ όνομα το κενό. ii) Να υπολογίηει και να εμφανίηει ςτο τζλοσ το όνομα του δανειολιπτθ που ζλαβε το μεγαλφτερο δάνειο κακϊσ και το όνομα του δανειολιπτθ που εξόφλθςε ςε ςυντομότερο χρόνο τα δάνειό του. Άςκθςθ 6θ: Πρώηος ο Αρτηκήδες προζπάζεζε λα προζεγγίζεη ηελ αθρηβή ηηκή ηοσ π, σποιογίδοληας περηκέηροσς ποισγώλωλ. Τελ προζπάζεηά ηοσ ηειεηοποίεζε ο Ινδόσ μακθματικόσ και αςτρονόμοσ Madhava, ο οποίοσ υπολόγιςε τθν τιμι του π ςφμφωνα με τθ ςχζςθ: 12 1 1 1 1 1 1 2 3 4 3 3 5 3 7 3 9 3 11 3 5... Να φτιαχτεί αλγόρικμοσ ςε ψευδογλϊςςα που κα διαβάηει ςαν είςοδο ζνα κετικό αρικμό κ μικρότερο του 0.1 πραγματοποιϊντασ τον κατάλλθλο ζλεγχο και κα υπολογίηει τθν τιμι του π ςφμφωνα με τθν παραπάνω ςχζςθ. Ο υπολογιςμόσ κα ςταματά όταν θ απόλυτθ τιμι κάποιου όρου γίνει μικρότερθ από κ. Ο αλγόρικμοσ κα εκτυπϊνει τθν τιμι του π που υπολόγιςε, κακϊσ και το πλικοσ των όρων του ακροίςματοσ που χρειάςτθκαν μζχρι να ικανοποιθκεί θ ςυνκικθ διακοπισ. 4
Άςκθςθ 7θ: Σο παιχνίδι «πάνω κάτω» παίηεται ωσ εξισ: Προςπακοφμε να μαντζψουμε ζναν προεπιλεγμζνο αρικμό μζςα ςε ζνα εφροσ, π.χ. 0 100. ε κάκε προςπάκειά μασ παίρνουμε τθν πλθροφορία αν ο αρικμόσ που ηθτάμε είναι μεγαλφτεροσ ι μικρότεροσ από αυτόν που δϊςαμε. Α) Ηθτείται να γραφεί αλγόρικμοσ για ζνα αντίςτοιχο παιχνίδι που να παίηεται με δφο παίχτεσ. Πιο ςυγκεκριμζνα: Ο πρϊτοσ παίχτθσ ειςάγει ςτον αλγόρικμο το «μυςτικό αρικμό», ο οποίοσ πρζπει να ανικει ςτο διάςτθμα 0 100. Ο δεφτεροσ παίκτθσ ζχει ςτθ διάκεςι του 10 προςπάκειεσ για να βρει το μυςτικό αρικμό, διαφορετικά το παιχνίδι τελειϊνει και ο παίκτθσ χάνει. Ειςάγει λοιπόν διαδοχικά αρικμοφσ προςπακϊντασ να μαντζψει τον ςωςτό. Για κάκε ζναν από αυτοφσ τουσ αρικμοφσ που δίνει ςαν είςοδο ο δεφτεροσ παίκτθσ, ο αλγόρικμοσ εμφανίηει μινυμα ςχετικά με το αν είναι μικρότεροσ ι μεγαλφτεροσ από το μυςτικό αρικμό. Μετά το τζλοσ του παιχνιδιοφ ο αλγόρικμοσ κα πρζπει : 1. Αν ο δεφτεροσ παίκτθσ τελικά κζρδιςε, να εμφανίηει: i. κατάλλθλο μινυμα πωσ κζρδιςε ii. ςε ποια προςπάκεια μάντεψε το μυςτικό αρικμό iii. τθ μζςθ (κατά απόλυτθ τιμι) διαφορά των αρικμϊν που ζδωςε ςε ςχζςθ με το μυςτικό αρικμό 2. Αν ο δεφτεροσ παίκτθσ τελικά δεν κζρδιςε, αν εμφανίηει: i. κατάλλθλο μινυμα πωσ ζχαςε ii. πόςο κοντά πλθςίαςε το μυςτικό αρικμό. Δθλαδι τον πλθςιζςτερο ςτο μυςτικό αρικμό που ζδωςε iii. τθ μζςθ (κατά απόλυτθ τιμι) διαφορά των αρικμϊν που ζδωςε ςε ςχζςθ με το μυςτικό αρικμό Β) Σροποποιιςτε τον προθγοφμενο αλγόρικμο ζτςι ϊςτε να μετά το τζλοσ του παιχνιδιοφ να ρωτάει αν κα επαναλθφκεί το παιχνίδι. Θ απάντθςθ κα ελζγχεται αν είναι «ΝΑΙ» ι «ΌΧΙ». τθν περίπτωςθ που θ απάντθςθ είναι «ΝΑΙ» το παιχνίδι κα επαναλαμβάνεται. τθν περίπτωςθ που θ απάντθςθ είναι «ΌΧΙ» ο αλγόρικμοσ κα τερματίηει. Μετά το τζλοσ τθσ διαδικαςίασ ο αλγόρικμοσ να εμφανίηει το ποςοςτό των παιχνιδιϊν ςτα οποία ο δεφτεροσ παίχτθσ βρικε τον μυςτικό αρικμό. 5