ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να γραφεί και με τη χρήση των εντολών Όσο και Μέχρι. 2. Μετά το τέλος της εκτέλεσης ενός υποπρογράμματος γίνεται επιστροφή ακριβώς μετά το σημείο απ όπου κλήθηκε. 3. Τα αρχεία (files) είναι ειδικές δομές για την αποθήκευση δεδομένων στην κύρια μνήμη του υπολογιστή. 4. Τα δεδομένα τύπου χαρακτήρα στη ΓΛΩΣΣΑ μπορούν να περιέχουν οποιοδήποτε χαρακτήρα παράγεται από το πληκτρολόγιο, αρκεί να βρίσκονται μέσα σε απλά εισαγωγικά. 5. Το παρακάτω σύνολο εντολών αποδίδει στο Β την τιμή 0 (ανεξάρτητα από το περιεχόμενο της θετικής, ακεραίας μεταβλητής Α) Αν Α mod 3 = 3 τότε Β 1 αλλιώς Β 0 Τέλος_αν μονάδες 5 Β. Να απαντήσετε στις παρακάτω ερωτήσεις: 1. Να εξηγήσετε τη λειτουργία του συντάκτη στον προγραμματισμό. 1
2. Οι συμβολικές γλώσσες ήταν σαφώς μία εξέλιξη από τις ακατανόητες ακολουθίες δυαδικών ψηφίων, ωστόσο εμφάνιζαν κάποια μειονεκτήματα. Ποια ήταν αυτά; μονάδες 4 Γ. Να συμπληρωθεί το παρακάτω τμήμα ώστε να εμφανίζει τον μεγαλύτερο αριθμό από τους δύο που διαβάστηκαν: ΔΙΑΒΑΣΕ Α, Β ΑΝ Α<Β ΤΟΤΕ ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Α Δ. Δίνεται το παρακάτω τμήμα αλγορίθμου. Τι θα εμφανιστεί στην οθόνη κατά την εκτέλεσή του; Όπου Α είναι θετικός ακέραιος. Εμφάνισε 3+2+1 Εμφάνισε 1+2+3 X 1 ΕίναιΘετικός X > 0 Εμφάνισε ΕίναιΘετικός Εμφάνισε Ψευδής Εμφάνισε Αληθής Εμφάνισε ΟΧΙ (Ψευδής) Εμφάνισε Αληθής < Ψευδής Εμφάνισε Αληθής = Ψευδής Εμφάνισε A div A Εμφάνισε 2*Α mod Α Εμφάνισε Α_Μ(2^Α) mod Α_Μ(2^(Α 1)) Εμφάνισε Α_Μ(2^Α) div Α_Μ(2^(Α 1)) μονάδες 6 2
Ε. Δίνεται το παρακάτω τμήμα αλγορίθμου σε φυσική γλώσσα κατά βήματα. Να γράψετε πρόγραμμα σε ΓΛΩΣΣΑ για το ίδιο πρόβλημα. Είσοδος: Ένας ακέραιος αριθμός χ Βήμα 1 Θέσε Σ=0 Βήμα 2 Θέσε Ι=1 Βήμα 3 Αν το Ι < = χ τότε πήγαινε στο Βήμα 4, αλλιώς πήγαινε στο Βήμα 8 Βήμα 4 Αν το Ι διαιρεί ακριβώς το χ πήγαινε στο βήμα 5, αλλιώς πήγαινε στο βήμα 6 Βήμα 5 Βήμα 6 Θέσε Σ=Σ+χ Θέσε Ι=Ι+1 Βήμα 7 Πήγαινε στο Βήμα 3 Βήμα 8 Αν το Σ ισούται με το διπλάσιο του χ τότε τύπωσε το χαρακτήρα τέλειος αλλιώς το όχι τέλειος. μονάδες 8 Στ. Επιλέξτε τη σωστή ή τις σωστές απαντήσεις: 1. Αν μ, ν ακεραίου τύπου (θετικοί αριθμοί) και μ < ν τότε ισχύει: α. μ div ν = 0 β. μ div ν = μ γ. μ mod ν = ν δ. μ mod ν =0 2. Αν λ μεταβλητή λογικού τύπου, η εντολή: λ 'κακός' < 'καλός' α. έχει λογικό λάθος β. έχει συντακτικό λάθος γ. αποδίδει στη μεταβλητή λ την τιμή Ψευδής δ. αποδίδει στη μεταβλητή λ την τιμή Αληθής 3
3. Η επιλογή του καλύτερου αλγόριθμου ταξινόμησης εξαρτάται από: α. Τον τύπο δεδομένων που έχει ο πίνακας β. Τη διάσταση του πίνακα γ. Το πλήθος των στοιχείων του πίνακα δ. Την αρχική διάταξη των στοιχείων 4. Μια συνάρτηση α. δεν μπορεί να κληθεί μέσα από μια άλλη συνάρτηση β. ενεργοποιείται με την εντολή ΚΑΛΕΣΕ γ. μπορεί να μη δέχεται καθόλου παραμέτρους δ. επιστρέφει ακριβώς ένα αποτέλεσμα μέσω μιας παραμέτρου μονάδες 4 Ζ. Αν Α, Β, Γ τυχαίες συνθήκες να βρείτε τους δυνατούς συνδυασμούς τιμών ώστε η παρακάτω λογική έκφραση να έχει την τιμή Αληθής: ΟΧΙ (Α) ΚΑΙ ΟΧΙ (Β Ή Γ) Η. Να εξηγήσετε τη λειτουργία του παρακάτω τμήματος αλγορίθμου, όπου Α τετραγωνικός πίνακας 100 στοιχείων πραγματικού τύπου. ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 10 βοηθητική Α[Κ,3] Α[Κ,3] Α[Κ,6] Α[Κ,6] βοηθητική ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ μονάδες 4 4
ΘΕΜΑ Β Β1. Δίνεται το παρακάτω διάγραμμα ροής 1. Απαντήσετε αν είναι σωστές ή λάθος οι παρακάτω προτάσεις. α. Ο ρόμβος της Συνθήκη1 υποδηλώνει επανάληψη β. Οι εντολές5 θα εκτελεστούν ότι τιμή και να έχουν οι συνθήκες γ. Αν εκτελεστούν οι εντολές1 τότε σίγουρα θα εκτελεστούν και οι εντολές4 2. Δώσετε μία σύντομη απάντηση στις παρακάτω ερωτήσεις. α. Τι πρέπει να ισχύει για να πραγματοποιηθούν οι εντολές2; β. Υπάρχει περίπτωση σε μία εκτέλεση του αλγορίθμου να εκτελεστούν ταυτόχρονα οι εντολές4 και οι εντολές3; Αν ναι αναφέρετε το συνδυασμό συνθηκών που πρέπει να ισχύουν. 5
Β2. Δίνεται το παρακάτω πρόγραμμα και υποπρόγραμμα: Πρόγραμμα ευθεία_εισαγωγή Μεταβλητές. Αρχή Για i από 1 μέχρι 5 Διάβασε Α[ i ] Τέλος_επανάληψης Για i από 2 μέχρι 5 temp A[ i ] j i 1 Κάλεσε μετακίνηση(temp, A, j) Γράψε j Α[ j+1] temp Τέλος_επανάληψης Για i από 5 μέχρι 1 με_βήμα -1 Γράψε Α[ i ] Τέλος_επανάληψης Τέλος_προγράμματος Διαδικασία μετακίνηση(β, Π, j) Μεταβλητές Ακέραιες: j Πραγματικές: β, Π[5] Αρχή Όσο β<π[ j ] και j<>0 επανάλαβε Π[ j+1] Π[ j ] j j-1 Tέλος_επανάληψης Τέλος_διαδικασίας 1. Να συμπληρώσετε το τμήμα δήλωσης μεταβλητών του προγράμματος. μονάδες 2 2. Να εντοπίσετε και να γράψετε τις πραγματικές παραμέτρους. μονάδες 2 3. Αν ο πίνακας Α έχει τις τιμές: Α[1]=17, Α[2]=27, Α[3]=21, Α[4]=31, Α[5]=28, να γράψετε στο τετράδιό σας τις τιμές που θα εμφανιστούν κατά την εκτέλεση του προγράμματος με τη σειρά που θα εμφανιστούν. μονάδες 10 6
ΘΕΜΑ Γ Στον τηλεοπτικό σταθμό ΕΛΛΑΣ.TV κάθε απόγευμα προβάλλεται ένα παιχνίδι. Το παιχνίδι έχει τους εξής κανόνες: Υπάρχουν συνολικά 10 επίπεδα δυσκολίας και σε κάθε επίπεδο ο παίκτης πρέπει να απαντήσει σε 5 ερωτήσεις.. Ο παίκτης ξεκινά το παιχνίδι έχοντας 2 κάρτες free. Σε περίπτωση που ο παίκτης δεν απαντήσει σωστά σε 3 (ή και περισσότερες) ερωτήσεις του ίδιου επιπέδου χάνει μια κάρτα. Για κάθε ερώτηση που απαντά σωστά κερδίζει 75 πόντους στο πρώτο επίπεδο δυσκολίας και οι πόντοι αυξάνονται κατά 25 σε κάθε επόμενο επίπεδο (δηλ. στο 2 ο 100, 3 ο 125...). Αν σε δύο συνεχόμενα επίπεδα απαντήσει σωστά όλες τις ερωτήσεις θα παίρνει μια επιπλέον κάρτα free. Το παιχνίδι τερματίζει πρόωρα πριν ολοκληρωθούν και τα 10 επίπεδα όταν i) ο παίκτης δεν απαντήσει σωστά σε καμία ερώτηση ενός επιπέδου ii) ο παίκτης χάσει όλες του τις κάρτες Να γραφεί πρόγραμμα το οποίο : Γ1. διαβάζει τις σωστές απαντήσεις κάθε επιπέδου καθώς και τις απαντήσεις που έδωσε αντίστοιχα ο παίχτης και υπολογίζει πόσες από τις 5 ερωτήσεις απαντήθηκαν σωστά. Γ2. να γίνεται έλεγχος μετά από κάθε επίπεδο (με την βοήθεια συνάρτησης λογικού τύπου) για το αν πρέπει το παιχνίδι να τερματίσει πρόωρα. Γ3. σε κάθε περίπτωση (είτε τερματίσει πριν το τέλος, είτε φτάσει στο τέλος) να τυπώνει το σύνολο των πόντων του παίκτη. 7
Γ4. στην περίπτωση που ολοκλήρωσε ο παίκτης και τα 10 επίπεδα επιτυχώς να διαβάζει τους πόντους που πέτυχαν οι δύο παίκτες που σε προηγούμενα επεισόδια έχουν συγκεντρώσει τις δύο υψηλότερες βαθμολογίες. Έπειτα να εμφανίζει μήνυμα για το αν πέρασε ο παίκτης στον τελικό (στον τελικό πηγαίνουν οι παίκτες με τις δύο υψηλότερες βαθμολογίες). Γ5. Να υλοποιηθεί η συνάρτηση που αναφέρεται στο ερώτημα Γ2 Παρατήρηση: Να θεωρήσετε ότι οι απαντήσεις που δίνονται είναι τύπου χαρακτήρα. μονάδες 20 ΘΕΜΑ Δ Στον πανελλήνιο διαγωνισμό ρομποτικής 2012, στην κατηγορία Λυκείου έλαβαν μέρος 46 ομάδες από διάφορα σχολεία της χώρας (υπήρξαν σχολεία τα οποία έστειλαν στον διαγωνισμό περισσότερες από μία ομάδες). Σκοπός κάθε ομάδας είναι να κατασκευάσει και να προγραμματίσει ένα ρομπότ, το οποίο καλείται να περάσει εφτά (7) εμπόδια πάνω σε μία ειδικά διαμορφωμένη πίστα. Για κάθε εμπόδιο το ρομπότ βαθμολογείται από την επιτροπή με βαθμό από το 0 έως και το 10. Η τελική βαθμολογία κάθε ομάδας υπολογίζεται από το άθροισμα των βαθμολογιών που έλαβε. Αν δύο ομάδες συγκεντρώσουν την ίδια βαθμολογία τότε καλύτερη θεωρείται η ομάδα που εκτέλεσε το σενάριο σε λιγότερο χρόνο. Η ομάδα που κερδίζει την πρώτη θέση λαμβάνει μέρος στον παγκόσμιο διαγωνισμό ρομποτικής που θα γίνει το καλοκαίρι στην Μαλαισία. Να γράψετε αλγόριθμο ο οποίος: Δ1. Θα διαβάζει το όνομα κάθε ομάδας καθώς και το όνομα του σχολείου από το οποίο προέρχεται η ομάδα αυτή και θα τα αποθηκεύει σε δισδιάστατο πίνακα ΟΣ[46,2], όπου στην 1 η στήλη αποθηκεύονται τα ονόματα των ομάδων και στη 2 η τα ονόματα των αντίστοιχων σχολείων. 8
Δ2. Χρησιμοποιεί δισδιάστατο πίνακα Β[46,9], όπου αρχικά διαβάζει για κάθε ομάδα τις βαθμολογίες που έλαβε στα 7 εμπόδια καταχωρώντας τα δεδομένα στις 7 πρώτες στήλες του πίνακα (απαιτείται έλεγχος εγκυρότητας). Στη συνέχεια, υπολογίζει τη συνολική βαθμολογία κάθε ομάδας και την εκχωρεί στην 8 η στήλη. Τέλος, διαβάζει το χρόνο (σε δευτερόλεπτα) που χρειάστηκε κάθε ρομπότ να ολοκληρώσει το σενάριο και αποθηκεύει τους χρόνους στην τελευταία στήλη του πίνακα. Δ3. Εμφανίζει το εμπόδιο ή τα εμπόδια με τον μεγαλύτερο βαθμό δυσκολίας Δ4. Βρίσκει την ομάδα που κατέλαβε την 1 η θέση στο διαγωνισμό και εμφανίζει το όνομα της ομάδας, το όνομα του σχολείου από το οποίο προέρχεται και το μήνυμα «Μαλαισία 2012». Δ5. Διαβάζει το όνομα ενός σχολείου και αν το εντοπίσει στον πίνακα ΟΣ εμφανίζει τα ονόματα όλων των ομάδων που έλαβαν μέρος στον διαγωνισμό από το σχολείο αυτό μαζί με τη συνολική βαθμολογία τους, διαφορετικά εμφανίζει το μήνυμα «δεν λάβατε μέρος στον πανελλήνιο διαγωνισμό ρομποτικής 2012». Παρατήρηση: Να θεωρήσετε ότι δεν βρέθηκαν ρομπότ που ολοκλήρωσαν τη δοκιμασία στον ίδιο χρόνο. μονάδες 20 9