ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ Θέμα 1ο I. Να γράψετε τι γνωρίζετε για την ολίσθηση. Ακολούθως, να αναφέρετε έναν αλγόριθμο στον οποίο χρησιμοποιείται. Η διαδικασία κατά την οποία ένας δυαδικός αριθμός μετακινεί τα ψηφία του κατά μία θέση προς τα δεξιά ή τα αριστερά, ονομάζεται ολίσθηση. Η ολίσθηση δεξιά έχει σαν αποτέλεσμα την ακέραια διαίρεση του αριθμού με το 2, ενώ η ολίσθηση αριστερά έχει σαν αποτέλεσμα τον πολλαπλασιασμό του αριθμού με το 2. Την ολίσθηση χρησιμοποιεί ο πολλαπλασιασμός αλά Ρωσικά. II. Να γράψετε στο τετράδιό σας τον αριθμό κάθε μιας από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ αν είναι σωστή ή τη λέξη ΛΑΘΟΣ αν είναι λανθασμένη. 1. Τα προβλήματα βελτιστοποίησης είναι πάντοτε επιλύσιμα. (ΛΑΘΟΣ) 2. Ο πίνακας είναι στατική δομή. (ΣΩΣΤΟ) 3. Η πληροφορική μελετάει τα δεδομένα από τη σκοπιά των γλωσσών προγραμματισμού. (ΣΩΣΤΟ) 4. Το ΤΕΛΟΣ_ΑΝ είναι δηλωτική εντολή. (ΣΩΣΤΟ) 5. Πρόβλημα είναι μία κατάσταση που χρήζει αντιμετώπισης και έχει προφανή λύση. (ΛΑΘΟΣ) III. Να αναφέρετε ονομαστικά πέντε ενέργειες που μπορούν να γίνουν σε μια δομή δεδομένων. Εισαγωγή κόμβου Διαγραφή κόμβου Προσπέλαση δομής Αναζήτηση Ταξινόμηση IV. Να κάνετε το διάγραμμα ροής του παρακάτω μέρους αλγορίθμου. Για ipos από 1 μέχρι n imin ipos Για i από ipos+1 μέχρι n - 1 Αν a[i] < Σ[iMin] τότε imin i Τέλος_αν Τέλος_επανάληψης Αν imin <> ipos τότε πρ Σ[iPos] Σ[iPos] Σ[iMin] Σ[iMin] πρ
Τέλος_αν Τέλος_επανάληψης
V. Χρησιμοποιώντας τον αλγόριθμο αλά Ρώσικα, να βρείτε τα γινόμενα 1. 23 x 43 2. 12 x 24 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 VI. Να βρείτε την τιμή του Χ στις παρακάτω παραστάσεις αν το Ψ έχει την τιμή 8 1. Χ Ψ <= 8 2. Χ (Ψ - 4 <> 5) ή (Ψ 1 = 7) και (Ψ div 5 = 2*Ψ mod 15) 3. X 5 mod 3 + 4 div 2 * 3 1 Χ Ψ <= 8 Χ 8 <= 8 Χ ΑΛΗΘΗΣ Χ (Ψ - 4 <> 5) ή (Ψ 1 = 7) και (Ψ div 5 = 2*Ψ mod 15) Χ (8-4 <> 5) ή (8 1 = 7) και (8 div 5 = 2*8 mod 15) Χ (4 <> 5) ή (7 = 7) και (1 = 16 mod 15) Χ (4 <> 5) ή (7 = 7) και (1 = 1) Χ Α ή Α και Α Χ Α ή Α Χ ΑΛΗΘΗΣ X 5 mod 3 + 4 div 2 * 3 1 X 2 + 2 * 3 1 X 2 + 6 1 X 8 1 X 7
Θέμα 2ο Α) Δίνεται ο παρακάτω πίνακας 10 θέσεων. 8 3 4 23 12 43 2 3 4 32 Να γραφεί αλγόριθμος, ο οποίος θα μετακινεί κατά μία θέση δεξιά όλες τις τιμές του πίνακα και η τελευταία τιμή θα γίνεται πρώτη. Δηλαδή ο πίνακας που θα προκύψει μετά την εφαρμογή του αλγορίθμου θα είναι ο 32 8 3 4 23 12 43 2 3 4 Αλγόριθμος Θ2α Δεδομένα //Α// Για i από 1 μέχρι 9 t Α[i] A[i] A[10] A[10] t Αποτελέσματα //Α// τέλος Θ2α
Β) Σε ένα ηλεκτρονικό παιχνίδι, ο χαρακτήρας του παιχνιδιού αυξάνει τη δύναμή του κλιμακωτά, ανάλογα με τον αριθμό φρούτων που τρώει κατά τη διάρκεια του παιχνιδιού ως εξής: Αριθμός Φρούτων 0-3 5% 4-8 10% 9-15 20% 16-30 40% Ποσοστό αύξησης δύναμης Να γραφεί αλγόριθμος ο οποίος θα διαβάζει (και θα ελέγχει) έναν αριθμό που αναπαριστά τη δύναμη του χαρακτήρα (αποδεκτές τιμές από 10 έως και 50) και τον αριθμό των φρούτων που έφαγε (αποδεκτές τιμές από 0 έως και 30). Στη συνέχεια θα υπολογίζει και θα εμφανίζει: 1. Το ποσοστό αύξησης της δύναμης του χαρακτήρα. 2. Τον αριθμό που αναπαριστά τη δύναμη του χαρακτήρα όπως προέκυψε μετά από την αύξηση. Αλγόριθμος Θ2β Αρχή_επανάληψης Γράψε Δώσε τιμή δύναμης Διάβασε δ μέχρις_ότου δ >=10 και δ<=50 Αρχή_επανάληψης Γράψε Δώσε αριθμό φρούτων που έφαγε Διάβασε φ μέχρις_ότου φ >=0 και φ<=30 Αν φ <=3 τότε π 5 * φ αλλιώς_αν φ <=8 τότε π 5 * 3 + (φ-3)*10 αλλιώς_αν φ <=15 τότε π 3 * 5 + 5*10 + (φ-8)*20 αλλιώς π 3 * 5 + 5*10 + 7*20 + (φ-15)*40 Γράψε Το ποσοστό αύξησης της δύναμης είναι, π δ δ*(1 + π/100) Γράψε Η νέα τιμή της δύναμης είναι, δ τέλος Θ2β
Θέμα 3ο Δίδεται ένας πίνακας Α χαρακτήρων, με 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 Ποια θα είναι η τελική μορφή του πίνακα μετά το τέλος του αλγορίθμου; 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
Θέμα 4ο Στην Α εθνική κατηγορία του πρωταθλήματος ποδοσφαίρου υπάρχουν 16 ομάδες. Να γραφεί αλγόριθμος ο οποίος : 1) Να διαβάζει το όνομα της κάθε ομάδας, τον αριθμό των τερμάτων που δέχτηκε και τον αριθμό των τερμάτων που έβαλε η ομάδα αυτή. 2) Να υπολογίζει για κάθε ομάδα, τη διαφορά τερμάτων. 3) Να βρίσκει και να εμφανίζει την ομάδα με την καλύτερη διαφορά τερμάτων. 4) Να βρίσκει πόσα είναι τα περισσότερα τέρματα που έβαλε κάποια ομάδα (δηλαδή πόσα τέρματα έβαλε η καλύτερη επίθεση). 5) Πόσες ομάδες έχουν βάλει λιγότερα από τα μισά τέρματα της καλύτερης επίθεσης; Σημείωση: Η διαφορά τερμάτων είναι τα τέρματα που έβαλε κάποια ομάδα μείον τα τέρματα που δέχτηκε. Αλγόριθμος Θ4 Για i από 1 μέχρι 16 Γράψε Δώσε το όνομα της ομάδας, τα τέρματα που δέχτηκε και τα τέρματα που έβαλε Διάβασε ΟΝ[i], ΤΔ[i], ΤΕ[i] Για i από 1 μέχρι 16 ΔΤ[i] ΤΕ[i] - ΤΔ[i] max ΔΤ[1] θmax 1 Για i από 2 μέχρι 16 Αν ΔΤ[i] > max τότε max ΔΤ[i] θmax i Γράψε Η ομάδα με την καλύτερη διαφορά τερμάτων, max, είναι η, ΟΝ[θmax] max2 ΤΕ[1] Για i από 2 μέχρι 16 Αν ΤΕ[i] > max2 τότε max2 ΤΕ[i] πλ 0 Για i από 1 μέχρι 16 Αν ΤΕ[i] < max2/2 τότε πλ πλ + 1 Γράψε Λιγότερα από τα μισά τέρματα της καλύτερης επίθεσης, έβαλαν, πλ, ομάδες τέλος Θ4