ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Να γράψετε τι γνωρίζετε για την ολίσθηση. Ακολούθως, να αναφέρετε έναν αλγόριθμο στον οποίο χρησιμοποιείται. (Μονάδες 6) Η διαδικασία κατά την οποία ένας δυαδικός αριθμός μετακινεί τα ψηφία του κατά μία θέση προς τα δεξιά ή τα αριστερά, ονομάζεται ολίσθηση. Η ολίσθηση δεξιά έχει σαν αποτέλεσμα την ακέραια διαίρεση του αριθμού με το 2, ενώ η ολίσθηση αριστερά έχει σαν αποτέλεσμα τον πολλαπλασιασμό του αριθμού με το 2. Την ολίσθηση χρησιμοποιεί ο πολλαπλασιασμός αλά Ρωσικά. II. Χρησιμοποιώντας τον αλγόριθμο αλά Ρώσικα, να βρείτε τα γινόμενα 1. 23 x 43 2. 12 x 24 (Μονάδες 4) 43 86 172 344 688 23 11 5 2 1 0 43 86 172 688 --------- 989 24 48 96 192 12 6 3 1 0 96 192 --------- 288 III. Να γράψετε στο τετράδιό σας τον αριθμό κάθε μιας από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ αν είναι σωστή ή τη λέξη ΛΑΘΟΣ αν είναι λανθασμένη. 1. Στο τμήμα δηλώσεων ενός προγράμματος πρώτα δηλώνονται οι σταθερές και μετά οι μεταβλητές. (Σ) 2. Οι στατικές δομές δεν καταλαμβάνουν συνεχόμενες θέσεις μνήμης. (Λ) 3. Σε μια παράσταση αν υπάρχουν συγκριτικοί τελεστές, τότε το αποτέλεσμά της είναι λογική τιμή. (Σ) 4. Σε μια παράσταση, πρώτα εκτελούνται οι λογικές πράξεις και μετά οι συγκρίσεις. (Λ)
5. Η προσπέλαση είναι πράξη επί των δομών δεδομένων. (Σ) (Μονάδες 5) IV. Να γράψετε ισοδύναμο κώδικα ο οποίος να μην περιέχει πολλαπλές επιλογές (αλλιώς_αν). Διάβασε x Διάβασε y Αν y > x τότε y y 5 Γράψε χ αλλιώς_αν y < 0 τότε x y Γράψε y αλλιώς Γράψε y - x (Μονάδες 10) Διάβασε x Διάβασε y flag Αληθής Αν y > x τότε y y 5 Γράψε χ flag Ψευδής Αν y < 0 και flag = Αληθής τότε x y Γράψε y flag Ψευδής Αν flag = Αληθής τότε Γράψε y - x V. Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδομένων 2. Επιλύσιμο 3. Είσοδος 4. Αριθμητικός τύπος δεδομένων 5. Περατότητα 6. Μεταβλητή 7. Ημιδομημένο 8. Αποτελεσματικότητα 9. Σταθερά 10. Αδόμητο 11. Καθοριστικότητα
12. Άλυτο 13. Έξοδος Να γράψετε ποιες από τις παραπάνω έννοιες ανήκουν σε αλγοριθμικά κριτήρια. (Μονάδες 5) 3, 5, 8, 11, 13 VI. Ποιοι είναι οι τρόποι αναπαράστασης ενός αλγορίθμου; Να τους αναφέρετε ονομαστικά και να αναπτύξετε έναν από αυτούς. (Μονάδες 10) Ελεύθερο κείμενο Φυσική γλώσσα Διαγραμματικές τεχνικές Κωδικοποίηση Το ελεύθερο κείμενο (free text), αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης αλγορίθμου. Έτσι εγκυμονεί τον κίνδυνο ότι μπορεί εύκολα να οδηγήσει σε μη εκτελέσιμη παρουσίαση παραβιάζοντας το τελευταίο χαρακτηριστικό των αλγορίθμων, δηλαδή την αποτελεσματικότητα.
Θέμα 2ο Α) Δίδεται ένας πίνακας Α χαρακτήρων, με n=7 θέσεις, των οποίων οι τιμές είναι R, W, B. Ο επόμενος κώδικας υλοποιεί έναν αλγόριθμο ο οποίος επεξεργάζεται τον πίνακα και τον επιστρέφει με τις όποιες αλλαγές έχει κάνει. Αλγόριθμος Θέμα_2 red 1 white n blue n Όσο white>=red επανάλαβε c A[white] Αν c= 'R' τότε temp A[red] A[red] A[white] A[white] temp red red+1 αλλιώς_αν c= 'W' τότε white white 1 αλλιώς_αν c= 'Β' τότε temp A[blue] A[blue] A[white] A[white] temp white white 1 blue blue 1 Τέλος_επανάληψης Τέλος Θέμα_2 Εφαρμόστε τον αλγόριθμο στον παρακάτω πίνακα Α. W R B R B W W Ποια θα είναι η τελική μορφή του πίνακα μετά το τέλος του αλγορίθμου; (Μονάδες 12) red white blue c temp Α[1] Α[2] Α[3] Α[4] Α[5] Α[6] Α[7] 1 7 7 W W W R B R B W W 2 6 6 W W R R W W W B B 3 5 5 B W R 4 R R 3 W 2 B R Τελική μορφή πίνακα
R R W W W B B Β) Να γίνει το διάγραμμα ροής του παρακάτω τμήματος αλγορίθμου. Γράψε 'Δώσε δύο αριθμούς' Διάβασε Α, Β Όσο Β <> 0 επανάλαβε Αν Α > Β τότε Α Α Β αλλιώς Β Β Α Γράψε Α (Μονάδες 8)
Θέμα 3ο Μια εταιρεία ύδρευσης χρεώνει τους πελάτες της κλιμακωτά με βάση τον παρακάτω πίνακα Κυβικά ανά Κυβικό 1 15 10 16 50 25 51 100 40 101 + 50 Επιπροσθέτως του κόστους των κυβικών ο πελάτης επιβαρύνεται και με πάγιο συνδρομής ύψους 30. Να γραφεί πρόγραμμα το οποίο: 1) Διαβάζει από το πληκτρολόγιο το πλήθος των πελατών της εταιρείας ύδρευσης. 2) Για κάθε έναν από τους πελάτες διαβάζει τα κυβικά που κατανάλωσε (ακέραιος αριθμός) καθώς επίσης και το όνομά του. Να σημειωθεί ότι τα κυβικά πρέπει να είναι θετικός αριθμός και πρέπει να γίνεται ο σχετικός έλεγχος. 3) Να εμφανίζει το κόστος που πρέπει να πληρώσει ο κάθε πελάτης, καθώς επίσης και τις συνολικές εισπράξεις της εταιρείας. 4) Σε ποιόν πελάτη (το όνομά του) πήγε ο μεγαλύτερος λογαριασμός (να θεωρήσετε ότι δεν υπάρχουν δύο η περισσότεροι πελάτες με το ίδιο ύψος λογαριασμού). (Μονάδες 20) Πρόγραμμα Θ3 Μεταβλητές Ακέραιες: i, N, KM, ΣΕ, Κ, ΜΑΧ Χαρακτήρες: ON, ΟΝΜΑΧ Αρχή Γράψε Δώσε πλήθος πελατών Διάβασε N ΣΕ 0 ΜΑΧ -1!Διαβάζουμε το πλήθος των πελατών!αρχικοποιούμε τις συνολικές εισπράξεις της εταιρίας!αρχικοποιούμε το μέγιστο!για κάθε πελάτη εκτελώ τις κατάλληλες ενέργειες Για i από1 μέχρι Ν!Διαβάζω και ελέγχω τα κυβικά μέτρα Αρχή_επανάληψης Γράψε Δώσε όνομα πελάτη και κυβικά μέτρα Διάβασε ΟΝ, ΚΜ μέχρις_ότου ΚΜ > 0!Υπολογίζω το κόστος κλιμακωτά προσθέτοντας και το πάγιο 30 ευρώ Αν ΚΜ < 15 τότε Κ ΚΜ * 10 + 30 αλλιώς_αν ΚΜ < 50 τότε Κ 15 * 10 + (ΚΜ 15) * 25 + 30 αλλιώς_αν ΚΜ < 100 τότε Κ 15 * 10 + 35*25 + (ΚΜ 50) * 40 + 30 αλλιώς
Κ 15 * 10 + 35*25 + 50*40 +(ΚΜ 100) * 50 + 30!Υπολογίζω τη συνολική είσπραξη της εταιρίας ΣΕ ΣΕ + Κ!Εμφανίζω το κόστος του πελάτη Γράψε Το κόστος του, Ον, είναι:, Κ!Υπολογίζω το μέγιστο κόστος Αν Κ > ΜΑΧ τότε ΜΑΧ Κ ΟΝΜΑΧ ΟΝ!Εμφανίζω τη συνολική είσπραξη της εταιρίας Γράψε Συνολική είσπραξη εταιρίας, ΣΕ!Εμφανίζω τον πελάτη με τον μεγαλύτερο λογαριασμό Γράψε Μεγαλύτερο λογαριασμό, ΜΑΧ, είχε ο πελάτης, ΟΝΜΑΧ τέλος_προγράμματος Θέμα 4ο Μια τράπεζα έχει 120 υποκαταστήματα. Η τράπεζα ενδιαφέρεται για τις καταθέσεις και τις αναλήψεις που έχουν γίνει σε κάθε υποκατάστημα. Για το σκοπό αυτό σας ζητήθηκε να γράψετε πρόγραμμα το οποίο: Να διαβάζει τον κωδικό του κάθε υποκαταστήματος, το συνολικό ποσό των αναλήψεων που έγιναν από αυτό το υποκατάστημα και το συνολικό ποσό των καταθέσεων που έγιναν σε αυτό το υποκατάστημα. Να υπολογίζει και να εμφανίζει για κάθε υποκατάστημα, τα κέρδη ή τις ζημίες από τη διαφορά καταθέσεων αναλήψεων. Να βρίσκει και να εμφανίζει τον κωδικό του υποκαταστήματος με το μεγαλύτερο συνολικό κέρδος και το κέρδος αυτό. Να βρίσκει και να εμφανίζει το μέσο κέρδος όλων των υποκαταστημάτων. Πόσα υποκαταστήματα έχουν λιγότερο κέρδος, από το μισό του μεγαλύτερου κέρδους που παρουσίασε υποκατάστημα; (Μονάδες 20) Πρόγραμμα Θ4 Μεταβλητές Ακέραιες: i, θmax, ΠΛ Χαρακτήρες: Κ[120] Πραγματικές: Α[120], ΚΑΤ[120], ΚΖ[120], max, ΑΘ, ΜΚ Αρχή
!Διαβάζουμε τα στοιχεία Γράψε Δώσε τον κωδικό του καταστήματος, το συνολικό ποσό αναλήψεων και το &συνολικό ποσό καταθέσεών του. Διάβασε Κ[i], Α[i], ΚΑΤ[i]!Υπολογίζουμε κέρδη και ζημίες ΚΖ[i] ΚΑΤ[i] - Α[i]!Εμφανίζουμε κέρδη και ζημίες Γράψε Κ[i], ΚΖ[i]!Υπολογίζουμε και εμφανίζουμε το κατάστημα με το μεγαλύτερο κέρδος(ή μικρότερη ζημία) max ΚΖ[1] θmax 1 Για i από 2 μέχρι 120 Αν ΚΖ[i] > max τότε max ΚΖ[i] θmax i Γράψε Το κατάστημα με το μεγαλύτερο κέρδος, max, είναι το, Κ[θmax]!Υπολογίζουμε και εμφανίζουμε το μέσο κέρδος ΑΘ 0 ΑΘ ΑΘ + ΚΖ[i] ΜΚ ΑΘ / 120 Γράψε 'Το μέσο κέρδος είναι', ΜΚ!Υπολογίζουμε πόσα υποκαταστήματα έχουν λιγότερο κέρδος, από το μισό του!μεγαλύτερου κέρδους που παρουσίασε υποκατάστημα ΠΛ 0 Αν ΚΖ[i] < max/2 τότε ΠΛ ΠΛ + 1 Γράψε 'Λιγότερα από το μισό μέγιστο κέρδος εμφάνισαν', ΠΛ,'καταστήματα.' τέλος_προγράμματος SCIENCE PRESS