ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Θέμα Α Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος: ΔΙΑΒΑΣΕ α, β x α > β Να χαρακτηρίσετε αν κάθε μία από τις παρακάτω προτάσεις είναι σωστή (Σ) ή λανθασμένη (Λ). Αιτιολογήσετε κάθε σας απάντηση 1. Η x είναι λογική μεταβλητή. 2. Τα α, β μπορεί να είναι μεταβλητές τύπου χαρακτήρα. 3. Τα α, β μπορεί να είναι λογικές μεταβλητές. 4. Τα α, x είναι πάντα μεταβλητές διαφορετικού τύπου. 5. Το α πρέπει να έχει τιμή μεγαλύτερη του β. (Μονάδες 5) Α2. Ένας προγραμματιστής καλείται να σχεδιάσει ένα πρόγραμμα το οποίο θα διαχειρίζεται τα ονόματα και τους βαθμούς 160 μαθητών και θα υπολογίζει και θα εμφανίζει τα ονόματα των μαθητών με βαθμό μεγαλύτερο από τον μέσο όρο του σχολείου. Για το πρόβλημα που καλείται να αντιμετωπίσει, να γράψετε: 1. Ποια είναι τα δεδομένα ; 2. Ποια είναι τα ζητούμενα ; 3. Σε ποια κατηγορία θα το κατατάσσατε με βάση τη δυνατότητα επίλυσής του; 4. Είναι απαραίτητη η χρήση πίνακα; (ΝΑΙ/ΟΧΙ).Αιτιολογήστε την απάντησή σας. (Μονάδες 4) Α3. Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i Να μετατρέψετε τις ενέργειες που δίνονται παρακάτω σε εντολές της «ΓΛΩΣΣΑΣ» χρησιμοποιώντας αποκλειστικά και μόνο την εντολή εκχώρησης (χωρίς δομή επιλογής ή επανάληψης). 1. Αύξησε το 3ο στοιχείο του πίνακα κατά 30%. 2. Μείωσε το τελευταίο στοιχείο του πίνακα κατά το ήμισυ. 3. Τριπλασίασε το πρώτο στοιχείο του πίνακα. 4. Εκχώρησε στη μεταβλητή ΒΡΕΘΗΚΕ την τιμή ΑΛΗΘΗΣ αν το 6ο στοιχείο του πίνακα είναι θετικός αριθμός αλλιώς την τιμή ΨΕΥΔΗΣ. 5. Εκχώρησε στη λογική μεταβλητή ΒΡΕΘΗΚΕ τιμή διαφορετική από αυτή που έχει. 1
6. Εκχώρησε στη μεταβλητή i το ακέραιο μέρος του 2ου στοιχείου του πίνακα. (Μονάδες 12) Α4. α) Τα παρακάτω τμήματα αλγορίθμων εκτελέστηκαν μια φορά το καθένα και έδωσαν όλα την ίδια έξοδο. Να βρείτε ποια τιμή πληκτρολογήθηκε ως είσοδος κατά την εκτέλεση καθενός από αυτά. A B Γ Δ Αν Ν=28 Τότε Εμφάνισε 32 Αλλιώς Εμφάνισε 10 Τέλος_Αν Σ 1 Για i Από 1 Μέχρι Ν Σ Σ + 1 Τέλος_Επανάληψης Εμφάνισε Σ Σ 1 Για i Από 1 Μέχρι Ν Σ Σ *2*i Τέλος_Επανάληψης Εμφάνισε Σ 16 Σ 22 Για i Από 1 Μέχρι Ν Σ Σ + i Τέλος_Επανάληψης Εμφάνισε Σ (Μονάδες 4) β) Να συμπληρωθούν τα κενά έτσι, ώστε το κάθε τμήμα αλγορίθμου, να γεμίζει έναν πίνακα Α με τους αριθμούς 1, 2, 3, 4,...,8. 1. Για Χ από 1 μέχρι 8 Α[ ] Χ 2. Για ι από 8 μέχρι 1 με_βήμα -1 Α[ ] 3. Χ 1 Όσο Χ <= επανάλαβε Α[ ] Χ Χ + 1 4. Χ 1 Αρχή_επανάληψης Χ Χ + 1 Α[ ] Μέχρις_ότου > 8 (Μονάδες 9) Α5. Δίνεται δισδιάστατος πίνακας Π με 8 γραμμές και 12 στήλες, στον οποίο σημειώνονται δύο στοιχεία του, το Π [ i1, j1 ] και το Π [ i2, j2 ] όπως φαίνονται στο 2
παρακάτω σχήμα. Να γράψετε τμήμα αλγορίθμου που με δεδομένο τον πίνακα Π και τις συντεταγμένες i1,j1, i2, j2, να εμφανίζει όλα τα στοιχεία που βρίσκονται στη σκιασμένη περιοχή του σχήματος, δηλαδή από το στοιχείο Π[i1, j1] έως και το Π[i2, j2]. Παρατηρήσεις: Α. Θεωρήσετε δεδομένα τα παρακάτω: 1. Οι τιμές για τα i1 και i2 είναι θετικοί μικρότεροι ή ίσοι του 8 και για τα j1και j2 θετικοί μικρότεροι ή ίσοι του 12. 2. Το i1 είναι μικρότερο ή ίσο του i2. 3. Σε περίπτωση που το i1 είναι ίσο με το i2, το j2 είναι μεγαλύτερο του j1. Β. Η εμφάνιση των στοιχείων μπορεί να γίνει με οποιαδήποτε σειρά. Θέμα Β (Μονάδες 6) Δίνεται το παρακάτω τμήμα αλγορίθμου, του οποίου οι εντολές έχουν αριθμηθεί: 1. Τ 0 2. δ 1 3. Όσο δ <= Ν1-1 επανάλαβε 4. Αν Α[δ] > A[δ + 1] τότε 5. temp Α[δ] 6. A[δ] A[δ + 1] 7. A[δ + 1] temp 8. T δ 9. Τέλος_αν 10. δ δ + 1 11. 12. Ν1 Τ 1. Θεωρήστε ότι Ν1 = 10 και οι τιμές των στοιχείων του πίνακα Α έχουν ως εξής: Α 15 10 5 100 50 200 150 300 400 400 1 2 3 4 5 6 7 8 9 10 Για κάθε επανάληψη να γράψετε σε μία νέα γραμμή του παρακάτω πίνακα τον αριθμό 3
της γραμμής που εκτελείται και το αποτέλεσμα της εκτέλεσης της κάθε εντολής. Σημείωση: Στον πίνακα τιμών έχει συμπληρωθεί η εκτέλεση της πρώτης, δεύτερης και τρίτης εντολής του αλγορίθμου. Οι γραμμές 9 και 11 δεν χρειάζεται να αποτυπωθούν στον πίνακα τιμών. Αριθμός Γραμμής συνθήκη δ temp T 1 0 2 1 3 ΑΛΗΘΗΣ 4 ΑΛΗΘΗΣ Πίνακας Α 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η 15 10 5 100 50 200 150 300 400 400 2. Ποιος είναι ο ρόλος της μεταβλητής Τ; (Μονάδες 16) (Μονάδες 2) 3. Στον αλγόριθμο που ακολουθεί, οι εντολές έχουν εμφωλευθεί σε μια επαναληπτική δομή με συνθήκη τερματισμού Τ = 0. Ποια είναι η βασική λειτουργία αυτού του αλγορίθμου; Αλγόριθμος Παράδειγμα Δεδομένα // Α, Ν // Ν1 Ν Αρχή_επανάληψης Τ 0 δ 1 Όσο δ <= Ν1 1 επανάλαβε Αν Α[δ] > A[δ + 1] τότε temp Α[δ] A[δ] A[δ + 1] A[δ + 1] temp T δ Τέλος_αν δ δ + 1 Ν1 <- Τ Μέχρις_ότου Τ = 0 Αποτελέσματα // Α // Τέλος Παράδειγμα (Μονάδες 2) 4
Θέμα Γ Στο πρωτάθλημα μπάσκετ της Α1 κατηγορίας ανδρών μια ομάδα συμμετέχει με 20 παίκτες δίνοντας συνολικά 40 αγώνες. Να γραφεί αλγόριθμος ο οποίος : α) να καταχωρεί σ έναν πίνακα ακεραίων Π[20,40] τους πόντους που πέτυχε ο κάθε παίκτης σε κάθε αγώνα του πρωταθλήματος. Όταν ένας παίκτης δε συμμετέχει σ έναν αγώνα τότε καταχωρούμε την τιμή -1 στον πίνακα. Θεωρήστε ότι οι τιμές που εισάγονται στον πίνακα είναι μεγαλύτερες ή ίσες του -1 και μικρότερες ή ίσες του 25. Μην ασχολείστε με τον έλεγχο εγκυρότητας δεδομένων. (Μονάδες 1) β) να καταχωρεί σ έναν πίνακα Ο[20] τα ονόματα των παικτών της ομάδας. (Μονάδες 1) γ) να βρίσκει σε πόσους από τους 40 αγώνες, ένας μόνο παίκτης έφερε την καλύτερη επίδοση στον αγώνα. (Μονάδες 5) δ) να εμφανίζει τα ονόματα των παικτών που δεν έχασαν κανέναν αγώνα στο πρωτάθλημα. (Μονάδες 4) ε) να διαβάζει το όνομα ενός παίκτη και να εμφανίζει για το συγκεκριμένο παίκτη τους έξι αγώνες στους οποίους είχε τις καλύτερες επιδόσεις. Θεωρήστε ότι δεν υπάρχει περίπτωση ισοβαθμίας. Αν ο παίκτης αυτός έχει αγωνιστεί σε συνολικά λιγότερους από έξι αγώνες να εμφανίζεται κατάλληλα διαμορφωμένο μήνυμα. (Μονάδες 9) ΘΕΜΑ 4ο Ένας εκδοτικός οίκος χρησιμοποιεί 35 διανομείς για τη διακίνηση των βιβλίων του. Στο τέλος κάθε μήνα καταγράφονται οι πωλήσεις που πραγματοποιήθηκαν από κάθε διανομέα ώστε να υπολογιστεί και το μπόνους που θα του αποδοθεί. Είναι ευνόητο ότι οι πωλήσεις ενός διανομέα σε χρονικό διάστημα ενός μηνός δεν είναι κατ ανάγκην 30. Το ποσό του μπόνους υπολογίζεται κλιμακωτά ανάλογα με το ποσό των μηνιαίων πωλήσεων κάθε διανομέα σύμφωνα με τον παρακάτω πίνακα: Μηνιαίες πωλήσεις διανομέα ( ) Μέχρι και 200 0 Άνω των 200 μέχρι και 1000 1.5 Άνω των 1000 4 Μπόνους % Να αναπτύξετε αλγόριθμο που θα επιτελεί τις παρακάτω ενέργειες: 1. Για κάθε διανομέα: 5
α. θα διαβάζει το όνομά του και θα το καταχωρεί σε πίνακα Ο καθώς και το μηνιαίο βασικό μισθό του και θα το καταχωρεί σε πίνακα Β. Μονάδες 2 β. θα διαβάζει επαναληπτικά τα ποσά των πωλήσεων που πέτυχε τον προηγούμενο μήνα. Η επαναληπτική διαδικασία θα ολοκληρώνεται όταν εισαχθεί αρνητικός αριθμός ή το μηδέν. Μονάδες 2 γ. θα υπολογίζει το μπόνους που θα λάβει και θα το εκτυπώνει. Μονάδες 4 2. Θα δημιουργεί πίνακα Τ, που θα περιέχει τις τελικές μηνιαίες απολαβές κάθε διανομέα. Μονάδες 2 3. Θα ελέγχει ποιος διανομέας έχει τον υψηλότερο τελικό μισθό που να είναι ταυτόχρονα μικρότερος από 600. Αν δεν υπάρχει τέτοιος, να εκτυπώνεται κατάλληλο μήνυμα. Μονάδες 4 4. Να εκτυπώνονται τα ονόματα όσων πωλητών είχαν το δεύτερο μεγαλύτερο μισθό μεταξύ των υπαλλήλων του εκδοτικού οίκου. Μονάδες 6 6