Επαναληπτικό Διαγώνισμα Ανάπτυξη Εφαρμογών Σε Προγραμματιστικό Περιβάλλον Γ Λυκείου Κυριακή 13 Απριλίου 2014 ΘΕΜΑ Α Δίνεται το παρακάτω τμήμα προγράμματος που το ακολουθεί μία συνάρτηση που χρησιμοποιεί.... ΔΙΑΒΑΣΕ α,β γ Testing(α,β) ΓΡΑΨΕ γ... ΣΥΝΑΡΤΗΣΗ Testing(χ,υ):ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : χ,υ ΑΡΧΗ Testing Τ_Ρ(χDIVυ) ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Α1.1 Να χαρακτηρίσετε τις παρακάτω προτάσεις, γράφοντας στο τετράδιό σας δίπλα στον αριθμό που αντιστοιχεί σε κάθε πρόταση τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή Λάθος, αν η πρόταση είναι λανθασμένη. 1. Η μεταβλητή γ είναι πραγματικού τύπου. 2. Η μεταβλητή γ δεν είναι απαραίτητη. 3. Είτε ο χρήστης πληκτρολογήσει 15 και 5, είτε πληκτρολογήσει 22 και 7 1
στην οθόνη θα εμφανιστεί η ίδια τιμή. 4. Οι μεταβλητές α και β είναι πραγματικές παράμετροι. 5. Η μεταβλητές χ και υ θα μπορούσαν να είναι δηλωμένες και ως πραγματικές. Α1.2 Ξαναγράφτε το παραπάνω τμήμα προγράμματος και μία διαδικασία που θα χρησιμοποιεί και θα αντικαθιστά την λειτουργία της συνάρτησης. Μονάδες 4 Α2.Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλη Α και δίπλα τα γράμματα της Στήλης Β που αντιστοιχούν σωστά. Κάποια από τα στοιχεία της Στήλης Α αντιστοιχούν σε περισσότερα στοιχεία της Στήλης Β. Στήλη Α (χαρακτηριστικά που δεν ικανοποιούνται) Στήλη Β (τμήματα αλγορίθμων ή τρόποι αναπαράστασης) 1. Περατότητα Α. Ελεύθερο κείμενο 2.Καθοριστικότητα Β. Σ 1 ΔΙΑΒΑΣΕ χ ΌΣΟ χ>=0 ΕΠΑΝΑΛΑΒΕ Σ Σ+1/χ ΔΙΑΒΑΣΕ χ 3. Αποτελεσματικότητα Γ. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 2
Χ 0 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Σ Χ Χ+1/(1+Α_Τ(Σ)) ΜΕΧΡΙΣ_ΟΤΟΥ Χ<0 Δ.Φυσική γλώσσα σε βήματα Ε. Σ 1 ΓΙΑ ι ΑΠΟ 10 ΜΕΧΡΙ 1ΜΕ ΒΗΜΑ 0 Σ Σ+1/ι ΓΡΑΨΕ Σ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Α3. Παρακάτω δίνεται μία παραλλαγή του αλγόριθμου της φυσαλίδας που ταξινομεί έναν πίνακα τάβλε που περιέχει ν στοιχεία σε φθίνουσα σειρά. Οι αλλαγές που έχουν γίνει στον κλασικό αλγόριθμο της φυσαλίδας είναι πως υλοποιείται με αποκλειστική χρήση της επαναληπτικής δομής Μέχρις_ότου και συνεχίζει να σαρώνει τον πίνακα όσο ο πίνακας δεν είναι ταξινομημένος δηλαδή όταν έχει πραγματοποιηθεί έστω και μία αντιμετάθεση στην προηγούμενη σάρωση. Συμπληρώστε τα κενά ώστε να λειτουργεί. Αλγόριθμος Έξυπνη 3
Δεδομένα //ταβλε, ν// Ι (1). Αρχή_επανάληψης Κ (2).. Είναι (3) Αρχή_επανάληψης Αν ταβλε[κ] (4) ταβλε[κ-1] τότε Τεμπ ταβλε[κ] ταβλε[κ] ταβλε[κ-1] ταβλε[κ-1] Τεμπ Είναι (5) Τέλος_αν (6) Μέχρις_ότου Κ<Ι Ι Ι+1 Μέχρις_ότου (7). Ή είναι=ψευδής Αποτελέσματα //ταβλε// Τέλος Έξυπνη Α4.Αναφέρατε τρία μεταφραστικά προγράμματα και εξηγήστε συνοπτικά την λειτουργία τους. Μονάδες 7 Μονάδες 6 Α5. Στις παρακάτω λανθασμένες εκχωρήσεις τιμής γίνεται προσπάθεια υπολογισμού του μέσου όρου τριών ακεραίων αριθμών. Χαρακτηρίστε τα λάθη ως συντακτικά ή ως λογικά Ι) ΜΟ α+β+γ/3 ΙΙ) ΜΟ α+βγ/3 ΙΙΙ) ΜΟ (α+β+γ/3 4
ΙV) ΜΟ (α+β+γ)div3 V) ΜΟ (α+β+γ) 3 Α6. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλη Α και δίπλα το γράμμα της Στήλης Β που αντιστοιχεί σωστά. Κάθε στοιχείο της Στήλης Α αντιστοιχεί μόνο σε ένα στοιχείο της στήλης Β. Στήλη Α Στήλη Β 1. Ταξινόμηση α. Δυαδική αναζήτηση 2. Αναζήτηση στοιχείου σε μη ταξινομημένο πίνακα 3. Αναζήτηση στοιχείου σε ταξινομημένο πίνακα β. Πρόσβαση σε έναν κόμβο με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενό του γ. Δημιουργία ενός ταξινομημένου πίνακα που περιέχει τα στοιχεία δύο ταξινομημένων πινάκων 4. Συγχώνευση δ. Σειριακή αναζήτηση 5. Προσπέλαση Ε. Φυσαλίδα Α7. Αναφέρατε επιγραμματικά τα πλεονεκτήματα του τμηματικού προγραμματισμού. Μονάδες 6 5
ΘΕΜΑ Β Δίνεται το παρακάτω τμήμα αλγορίθμου ΔΙΑΒΑΣΕ Σ ΓΙΑ Ι ΑΠΟ -2 ΜΕΧΡΙ 2 ΜΕ ΒΗΜΑ 2 Π <-- 0 ΓΙΑ Κ ΑΠΟ 0 ΜΕΧΡΙ Ι Π <-- Π+2 ΓΡΑΨΕ Π ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Σ <-- Σ+Π ΓΡΑΨΕ Σ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 1) Ποιες τιμές εμφανίζονται στην οθόνη αν ο χρήστης πληκτρολογήσει 1 Μονάδες 7 2) Να γραφεί ισοδύναμο αλγόριθμος με χρήση της επαναληπτικής δομής ΜΕΧΡΙΣ_ΟΤΟΥ Μονάδες 7 3) Να γίνει το ισοδύναμο διάγραμμα ροής Μονάδες 6 ΘΕΜΑ Γ Στο ηλεκτρονικό παιχνίδι Laser_Eraser υπάρχουν 60 πίστες και ο παίχτης ξεκινάει με 3 ζωές. Η πρώτη πίστα έχει 50 εχθρούς που ο παίχτης καλείται να εξουδετερώσει, ενώ σε κάθε νέα πίστα οι εχθροί αυξάνονται κατά 10. Αν σε μία πίστα του ξεφύγουν 5 εχθροί ο παίχτης χάνει μία ζωή και ξεκινάει την πίστα από την αρχή. Κάθε 20 πίστες που ολοκληρώνει ο παίχτης του χαρίζεται μία επιπλέον ζωή. 6
Να γραφεί αλγόριθμος που να υλοποιεί το παραπάνω παιχνίδι κατά τα εξής : Γ1) Το παιχνίδι θα τερματίζεται αν κάποιος έχει χάσει όλες του τις ζωές, οπότε και θα εμφανίζει σε ποια πίστα συνέβη αυτό, ή αν κατορθώσει να τερματίσει και τις 60 πίστες, οπότε και θα εμφανίζει το μήνυμα μπράβο είσαι ο πρωταθλητής. Γ2) Πριν την έναρξη κάθε πίστας θα εμφανίζει τον αύξοντα αριθμό της, το πλήθος των εχθρών της καθώς και το πλήθος των ζωών που απομένουν στον παίχτη Γ3) Για κάθε εχθρό θα διαβάζει «ε» αν εξουδετερώθηκε ή «δ» αν δεν εξουδετερώθηκε κάνοντας έλεγχο εγκυρότητας. Στην περίπτωση που δεν εξουδετερώθηκε θα εμφανίζει πόσοι εχθροί, που δεν θα εξουδετερωθούν, απομένουν πριν ο παίχτης χάσει ζωή ενώ αν έχουν συμπληρωθεί πέντε θα του αφαιρεί μία ζωή και θα ξεκινάει την πίστα από την αρχή Γ4) όταν ο παίχτης συμπληρώσει επιτυχώς 20 πίστες θα αυξάνει τις ζωές του κατά μία και θα εμφανίζει κατάλληλο μήνυμα. ΘΕΜΑ Δ Μία εταιρεία μεταφορών διαθέτει ένα στόλο από 7 φορτηγά και μπορεί να δραστηριοποιείται κάθε μέρα της εβδομάδας (συμπεριλαμβανομένων και των σαββατοκύριακων) Να γραφεί πρόγραμμα που Δ1) θα περιέχει τμήμα δηλώσεων Μονάδες2 7
Δ2) θα διαβάζει για κάθε φορτηγό τον αριθμό κυκλοφορίας του, ο οποίος συμπεριλαμβάνει τόσο γράμματα όσο και αριθμούς και θα τον καταχωρίζει στον πίνακα Α[7] Μονάδες 1 Δ3) θα διαβάζει για κάθε φορτηγό, για κάθε μέρα του Ιανουαρίου που μας πέρασε την ένδειξη του χιλιομετρητή στην αρχή της ημέρας (πριν ξεκινήσουν τα δρομολόγια) κάνοντας έλεγχο εγκυρότητας. (Για την πρώτη Ιανουαρίου πρέπει να εξασφαλίζεται πως η ένδειξη είναι θετική ενώ για κάθε άλλη μέρα πρέπει να εξασφαλίζεται πως είναι μεγαλύτερη ή ίση από την προηγούμενη ένδειξη.) Μονάδες 4 Δ4) Να εμφανίζει ποιό ή ποια φορτηγά έκαναν τα περισσότερα χιλιόμετρα την πρώτη εβδομάδα του Ιανουαρίου Μονάδες 4 Δ5) Να διαβάζει τον αριθμό κυκλοφορίας ενός φορτηγού και χρησιμοποιώντας κατάλληλη συνάρτηση, που εντοπίζει και επιστρέφει την θέση του στον πίνακα Α[7] (ερώτημα Δ6),αν υπάρχει στον πίνακα, να εμφανίζει πόσες συνολικά μέρες το συγκεκριμένο όχημα δεν έκανε δρομολόγιο μέσα στο το πρώτο δεκαπενθήμερο του Ιανουαρίου. Σε περίπτωση που ο αριθμός κυκλοφορίας δεν υπάρχει στον πίνακα να εμφανίζει κατάλληλο μήνυμα. Μονάδες 4 Δ6) Να κατασκευάσετε συνάρτηση που να δέχεται τον πίνακα με τους αριθμούς κυκλοφορίας και έναν αριθμό κυκλοφορίας και να μας επιστρέφει την θέση του συγκεκριμένου αριθμού κυκλοφορίας στον πίνακα. Στην περίπτωση που δεν υπάρχει ο αριθμός κυκλοφορίας στον πίνακα να επιστρέφει την τιμή 0. ΤΕΛΟΣ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 8
ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1.1 1. Σωστό 2. Σωστό 3. Σωστό 4. Σωστό 5. Λάθος Α1.2... ΔΙΑΒΑΣΕ α,β ΚΑΛΕΣΕ Ing(α,β,τεστ) ΓΡΑΨΕ τεστ... ΔΙΑΔΙΚΑΣΙΑ Ing(χ,υ,t) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : χ,υ ΠΡΑΓΜΑΤΙΚΕΣ : t ΑΡΧΗ t Τ_Ρ(χDIVυ) ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Α2 1 με γ και ε 2 με β και δ 3 με α Α3 1 Αλγόριθμος Έξυπνη Δεδομένα //ταβλε, ν// Ι 2... Αρχή_επανάληψης Κ.ν.. Είναι ψευδής Αρχή_επανάληψης Αν ταβλε[κ] < ταβλε[κ-1] τότε 9
Τεμπ ταβλε[κ] ταβλε[κ] ταβλε[κ-1] ταβλε[κ-1] Τεμπ Είναι αληθής Τέλος_αν Κ Κ-1 Μέχρις_ότου Κ<Ι Ι Ι+1 Μέχρις_ότου Ι>ν. Ή είναι=ψευδής Αποτελέσματα //ταβλε// Τέλος Έξυπνη Α4 Συμβολομεταφραστής : μετατρέπει την συμβολική γλώσσα σε γλώσσα μηχανής. Μεταγλωωτιστής : μεταφράζει ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου σε ένα ισοδύναμο σε γλώσσα μηχανής. Διερμηνευτής : μεταφράζει μία μία τις εντολές από το πρόγραμμα που είναι γραμμένο σε γλώσσα υψηλού επιπέδου σε ισοδύναμη ακολουθία εντολών γλώσσας μηχανής που τις εκτελεί άμεσα. Α5 Ι) Λογικό ΙΙ) Λογικό ΙΙΙ) Συντακτικό ΙV) Λογικό V) Συντακτικό Α6 1 με Ε 2 με δ 3 με α 4 με γ 5 με β Α7 Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντίστοιχου προγράμματος. Διευκολύνει την κατανόηση και διόρθωση του προγράμματος. 10
Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού. ΘΕΜΑ Β Α) Σ Ι Π Κ Ι<=2 Κ<=Ι Οθόνη 1-2 0 Αληθές 0 Ψευδές 1 1 0 0 Αληθές 2 0 Αληθές 2 1 Ψευδές 3 3 2 0 Αληθές 2 0 Αληθές 2 4 1 Αληθές 4 6 2 Αληθές 6 9 9 11
Β) ΔΙΑΒΑΣΕ Σ Ι -2 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ Π 0 Κ 0 ΑΝ Κ<=Ι ΤΟΤΕ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ Π Π+2 ΓΡΑΨΕ Π Κ Κ+1 ΜΕΧΡΙΣ_ΟΤΟΥ Κ>Ι ΤΕΛΟΣ_ΑΝ Σ Σ+Π ΓΡΑΨΕ Σ Ι Ι+2 ΜΕΧΡΙΣ_ΟΤΟΥ Ι>2 12