Διαγώνισμα Γ Λυκείου Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Όνομα :. Ημερομηνία:.. Θέμα Α (μοναδες 30) Α1. Να αναφέρετε τα έξι πλεονεκτήματα του δομημένου προγραμματισμού. Μονάδες 6 Α2. Να βαλετε με την σωστή σειρά τις παρακάτω λέξεις οι οποίες περιγράφουν τα στάδια δημιουργίας ενός προγράμματος: Μεταγλωττιστής, αντικείμενο πρόγραμμα, εκτελέσιμο πρόγραμμα, συνδέτης, πηγαίο πρόγραμμα, βιβλιοθήκες. Μονάδες 3 Α3. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α και δίπλα το γράμμα της Στήλης Β που αντιστοιχεί σωστά. Στήλη Α Στήλη Β 1. Υπολογίζεται η τιμή της έκφρασης στη δεξιά πλευρά και εκχωρείται η τιμή αυτή στην μεταβλητή που αναφέρεται στην αριστερή πλευρά. 2. Όνομα Μεταβλητής <- Έκφραση 3. Γράμματα του ελληνικού και του λατινικού αλφαβήτου, αριθμητικά ψηφία, καθώς και τα ειδικά σύμβολα + - * / ^ = > < ( ).,! [ ] ' : _ α. Αλφάβητο β. Λεξιλόγιο γ. Συντακτικό δ. Σημασιολογία Παρατήρηση: Ένα από τα γράμματα της Στήλης Β δεν αντιστοιχεί σε κανέναν από τους αριθμούς της Στήλης Α. Μονάδες 3 Α4. Δίνεται το παρακάτω πρόγραμμα, στο οποίο το τμήμα δήλωσης μεταβλητών είναι κενό: ΠΡΟΓΡΑΜΜΑ Α4 ΔΙΑΒΑΣΕ Α, Β, Γ ΑΝ Γ >= 'Α' ΚΑΙ Γ < 'Μ' ΤΟΤΕ Δ <- ΑΛΗΘΗΣ Δ <- (Μ < 0) ΓΡΑΨΕ Μ, Δ Μ <- (Α + Β) DIV 2 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ α) Να γράψετε στο τετράδιό σας το κατάλληλο τμήμα δήλωσης μεταβλητών του προγράμματος. Μονάδες 2
β) Να δώσετε ένα παράδειγμα από το πρόγραμμα για: 1. αλφαριθμητική σταθερά 2. λογική σταθερά 3. αριθμητική μεταβλητή 4. αλφαριθμητική μεταβλητή 5. λογικό τελεστή 6. αριθμητική έκφραση 7. λογική έκφραση Μονάδες 7 Α5. Ο παρακάτω αλγόριθμος δέχεται ως δεδομένα μια αριθμητική τιμή Χ και έναν μονοδιάστατο πίνακα Α μεγέθους τουλάχιστον ίσο με Ν+1, στον οποίο έχουν τοποθετηθεί Ν τιμές ταξινομημένες σε αύξουσα σειρά. Ο αλγόριθμος τοποθετηθεί την τιμή Χ στην κατάλληλη θέση του πίνακα Α ώστε και πάλι όλες οι Ν+1 τιμές του να είναι ταξινομημένες. ΑΛΓΟΡΙΘΜΟΣ Προσθήκη ΔΕΔΟΜΕΝΑ // Χ, Α, Ν // Α[Ν+1] Χ ΓΙΑ λ ΑΠΟ Ν+1 ΜΕΧΡΙ 2 ΜΕ_ΒΗΜΑ -1 ΑΝ Α[λ] < Α[λ-1] ΤΟΤΕ ΑΝΤΙΜΕΤΑΘΕΣΕ Α[λ], Α[λ-1] ΑΠΟΤΕΛΕΣΜΑΤΑ // Α // ΤΕΛΟΣ Προσθήκη Για παράδειγμα, αν ο πίνακας Α έχει αρχικά το περιεχόμενο (Ν = 9): 1 2 3 4 5 6 7 8 9 Α 12 34 45 48 52 66 87 88 91 για Χ = 46, μετά την εκτέλεση του αλγορίθμου θα έχει το περιεχόμενο: 1 2 3 4 5 6 7 8 9 10 Α 12 34 45 46 48 52 66 87 88 91 α) Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-3 και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη. 1. Το αποτέλεσμα του παραπάνω αλγορίθμου είναι ο πίνακας Α με τα Ν+1 στοιχεία του σε αύξουσα σειρά. 2. Αν η συνθήκη της εντολής ΑΝ ΤΟΤΕ του αλγορίθμου αλλάξει σε: Α[λ] > Α[λ-1] τότε το αποτέλεσμα του αλγορίθμου είναι ο πίνακας Α με τα Ν+1 στοιχεία του σε φθίνουσα σειρά. 3. Αν η εντολή ΓΙΑ ΑΠΟ ΜΕΧΡΙ του αρχικού αλγορίθμου αλλάξει σε:
ΓΙΑ λ ΑΠΟ 2 ΜΕΧΡΙ Ν+1 τότε το αποτέλεσμα του αλγορίθμου είναι ο πίνακας Α με τα Ν+1 στοιχεία του σε φθίνουσα σειρά. 3 μονάδες β) Ο αλγόριθμος που ακολουθεί έχει το ίδιο αποτέλεσμα με τον αρχικό, με τη διαφορά ότι χρησιμοποιεί την εντολή ΟΣΟ ΕΠΑΝΑΛΑΒΕ αντί για την ΓΙΑ ΑΠΟ ΜΕΧΡΙ, με τέτοιο τρόπο ώστε οι επαναλήψεις να σταματούν αμέσως όταν η τιμή Χ τοποθετηθεί στην κατάλληλη θέση του πίνακα. Να γράψετε στο τετράδιό σας τον αριθμό για καθένα από τα κενά 1-6 και δίπλα την απαιτούμενη αριθμητική ή λογική έκφραση. ΑΛΓΟΡΙΘΜΟΣ Προσθήκη_2 ΔΕΔΟΜΕΝΑ // Χ, Α, Ν // Α[Ν+1] Χ τοποθετήθηκε _(1)_ λ _(2)_ ΟΣΟ (3) ΚΑΙ (4) ΕΠΑΝΑΛΑΒΕ ΑΝ Α[λ] < Α[λ-1] ΤΟΤΕ ΑΝΤΙΜΕΤΑΘΕΣΕ Α[λ], Α[λ-1] τοποθετήθηκε _(5)_ λ (6)_ ΑΠΟΤΕΛΕΣΜΑΤΑ // Α // ΤΕΛΟΣ Προσθήκη_2 6 μονάδες Θέμα Β (Μονάδες 30) Β1. Να γίνει το αντίστοιχο διάγραμμα ροής του παρακάτω τμήματος αλγορίθμου. πλ 0 i 2 Αρχή_επανάληψης flag Αληθής Διάβασε χ, ψ Για j από 5 μέχρι i με_βήμα -1 Αν χ > ψ τότε τεμπ χ χ ψ ψ τεμπ πλ πλ + 1 flag Ψευδής Τέλος_αν Τέλος_επανάληψης i i + 1 Μέχρις_ότου i > 5 ή flag = Αληθής Μονάδες 10
Β2. Δίνεται το παρακάτω πρόγραμμα και 2 υποπρογράμματα. ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Β ΛΟΓΙΚΕΣ: FLAG ΑΚΕΡΑΙΕΣ: ΔΕΞΙ, ΑΡΙΣΤΕΡΟ, Χ, Ι FLAG <- ΑΛΗΘΗΣ ΔΙΑΒΑΣΕ Χ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 2 ΑΝ ΟΧΙ FLAG ΤΟΤΕ ΔΕΞΙ <- Σ(Χ, FLAG) + 1 ΑΡΙΣΤΕΡΟ <- Σ(Χ, FLAG) - 3 + 2*Χ FLAG <- ΟΧΙ (FLAG) ΑΝ ΑΡΙΣΤΕΡΟ = ΔΕΞΙ ΤΟΤΕ ΓΡΑΨΕ "ΠΑΙΧΤΟΥΡΑ.ΤΟ ΒΡΗΚΕΣ!!!" ΓΡΑΨΕ "ΤΟΝ ΠΟΥΛΟ!" ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ Σ(Α, FLAG): ΑΚΕΡΑΙΑ ΛΟΓΙΚΕΣ: FLAG ΑΚΕΡΑΙΕΣ: Κ, Λ, Α ΑΝ FLAG = ΑΛΗΘΗΣ ΤΟΤΕ Κ <- 2*Α - 1 Λ <- Α - 2 Σ <- ΠΟΛ_ΑΛΑ_ΡΩΣΙΚΑ(Κ, Λ) Κ <- Α Λ <- 2 - Α Σ <- ΠΟΛ_ΑΛΑ_ΡΩΣΙΚΑ(Κ, Λ) ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΣΥΝΑΡΤΗΣΗ ΠΟΛ_ΑΛΑ_ΡΩΣΙΚΑ(Α, Β): ΑΚΕΡΑΙΑ ΑΚΕΡΑΙΕΣ: Α, Β, ΑΘΡ ΑΘΡ <- 0 ΟΣΟ Β > 0 ΕΠΑΝΑΛΑΒΕ ΑΝ Β mod 2 = 1 ΤΟΤΕ ΑΘΡ <- ΑΘΡ + Α Α <- Α* 2 Β <- Β div 2 ΠΟΛ_ΑΛΑ_ΡΩΣΙΚΑ <- ΑΘΡ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ i. Να ξαναγράψετε το Κυρίως Πρόγραμμα που σας δίνεται, απαλλαγμένο από δομές επιλογής και επανάληψης ώστε να εκτελεί τις ίδιες λειτουργίες με το αρχικό. Διατηρείστε μόνο την τελευταία δομή επιλογής με τα μηνύματα και καμία άλλη. (ΜΟΝΑΔΕΣ 5) ii. Να μετατρέψετε τις 2 συναρτήσεις που σας δίνονται παραπάνω, σε μια διαδικασία (και μόνο μια!) η οποία να ενσωματώνει τις άλλες 2. (ΜΟΝΑΔΕΣ 5) iii. Να ξαναγράψετε το πρόγραμμα που προέκυψε από το Β1 ερώτημα ώστε να επιτελεί τις ίδιες λειτουργίες, χωρίς τη χρήση υποπρογραμμάτων. (ΜΟΝΑΔΕΣ 5) iv. Να γράψετε στο τετράδιό σας τον ακέραιο θετικό αριθμό που θα πρέπει να δώσουμε στη μεταβλητή Χ αρχικά, ώστε να εμφανίζεται το μήνυμα «ΠΑΙΧΤΟΥΡΑ.ΤΟ ΒΡΗΚΕΣ!!!» στην οθόνη. (ΜΟΝΑΔΕΣ 5) (Για αποφυγή παρεξήγησης: Ο Γεώργιος Πούλος (Ρουμανία 1889-11 Ιουνίου 1949) ήταν Έλληνας στρατιωτικός, αξιωματικός αρχικά του Ελληνικού Στρατού και κατά τη διάρκεια της Γερμανική κατοχής της Ελλάδας συνεργάτης των Γερμανικών ναζιστικών δυνάμεων, ιδρυτής του τάγματος ασφαλείας Ελληνικό Εθελοντικό Σώμα, γνωστό επίσης ως Εθελοντικό Τάγμα Πούλου ή Poulos Verband και υπεύθυνος για εγκλήματα πολέμου έναντι Ελλήνων αμάχων.)
Θέμα Γ (Μονάδες 20) Σε ένα στάδιο πρόκειται να πραγματοποιηθεί μία συναυλία προς τιμήν του ηγεμόνα των Β.Π. «Κυριάκουλου του Μέγα». Το στάδιο διαθέτει δύο διαζώματα (πάνω και κάτω), όπου το κάθε διάζωμα έχει 10 θύρες. Οι θύρες του κάτω διαζώματος είναι αριθμημένες από το 1 ως το 19 (με περιττούς αριθμούς) και έχουν χωριτικότητα ( η κάθε μία ) 800 ατόμων, ενώ αυτές του πάνω διαζώματος είναι αριθμημένες από το 2 ως το 20 ( με άρτιους αριθμούς) και έχουν χωριτικότητα ( η κάθε μία ) 950 ατόμων. Η εταιρία «ΙΣΣΑΚ ΕΠΕ» έχει αναλάβει την διαχείριση των εισιτηρίων της συναυλίας. Να κατασκευαστεί αλγόριθμος ο οποίος: Γ1. Θα καταχωρεί στον πίνακα ΕΙΣ[20] την χωριτικότητα κάθε θύρας. Μονάδες 3 Γ2. Για κάθε πελάτη που θέλει να κλείσει εισιτήρια, θα διαβάζει την ποσότητα των εισιτηρίων που θέλει να αγοράσει και τον αριθμό της θύρας. Αν υπάρχει διαθεσιμότητα εισιτηρίων στη συγκεκριμένη θύρα, θα εμφανίζει μήνυμα «ΕΠΙΤΥΧΗΣ ΚΡΑΤΗΣΗ» και θα ενημερώνει κατάλληλα τον πίνακα ΕΙΣ, ενώ σε αντίθετη περίπτωση θα εμφανίζει το μήνυμα «ΑΠΟΤΥΧΗΜΕΝΗ ΠΡΟΣΠΑΘΕΙΑ ΚΡΑΤΗΣΗΣ». Μονάδες 7 Η είσοδος των στοιχείων θα τερματίζεται όταν δοθεί σαν θύρα η τιμή 0 ή όταν εξαντληθούν όλα τα εισιτήρια. Σε περίπτωση που τα εισιτήρια έχουν εξαντληθεί, ο αλγόριθμος δεν θα πρέπει να δέχεται νέα είσοδο τιμών. Γ3. Θα εμφανίζει κατάλληλο μήνυμα σε περίπτωση που εξαντλήθηκαν όλα τα εισιτήρια ενώ σε διαφορετική περίπτωση θα εμφανίζει πόσα εισιτήρια έμειναν αδιάθετα στο πάνω και πόσα στο κάτω διάζωμα. Μονάδες 4 Γ4. Θα εμφανίζει σε ποια ή σε ποιες θύρες έγιναν οι περισσότερες αποτυχημένες προσπάθειες κράτησης. Μονάδες 6 Σημείωση: δεν απαιτείται κανένας έλεγχος εγκυρότητας τιμών. Θέμα Δ (Μονάδες 20) Το πανελλήνιο σχολικό δίκτυο παρέχει πρόσβαση στο διαδίκτυο (internet) σε 150000 μαθητές και διατηρεί τα στοιχεία τους καθώς και τα στατιστικά στοιχεία, σχετικά με την πρόσβασή τους στο διαδίκτυο. Να κατασκευάσετε πρόγραμμα το οποίο: Δ1. Να περιλαμβάνει τμήμα δηλώσεων μεταβλητών. Μονάδες 2 Δ2. Για κάθε μαθητή να διαβάζει: a. Τον αλφαριθμητικό κωδικό του και να τον καταχωρίζει σε μονοδιάστατο πίνακα με όνομα ΚΩΔ. b. Το φύλο του, «Α» για αγόρι και «Κ» για κορίτσι, και να το καταχωρίζει σε μονοδιάστατο πίνακα με όνομα Φ.
c. Τον συνολικό χρόνο πρόσβασής του στο διαδίκτυο ανά μήνα, για ένα έτος, και να τον καταχωρίζει σε δισδιάστατο πίνακα ΧΡ. Μονάδες 3 Δ3. Να υπολογίζει και να καταχωρίζει σε πίνακα ΣΧ το συνολικό ετήσιο χρόνο πρόσβασης κάθε μαθητή. Μονάδες 3 Δ4. Να εμφανίζει τον κωδικό του αγοριού με το μεγαλύτερο συνολικό χρόνο πρόσβασης και στη συνέχεια τον κωδικό του κοριτσιού με το μεγαλύτερο συνολικό χρόνο πρόσβασης, καλώντας την συνάρτηση ΘΕΣΗ_ΜΑΧ, που περιγράφεται στο ερώτημα Δ%, μία φορά για τα αγόρια και μία για τα κορίτσια. Μονάδες 4 Δ5. Να αναπτύξετε συνάρτηση ΘΕΣΗ_ΜΑΧ η οποία: a. Να δέχεται ως παραμέτρους : τον πίνακα του φύλου, τον πίνακα του συνολικού ετήσιου χρόνου πρόσβασης των μαθητών και τον χαρακτήρα «Α» ή «Κ» που αντιστοιχεί στο φύλο. (μονάδες 2) b. Να βρίσκει τη θέση της μέγιστης τιμής του ετήσιου χρόνου πρόσβασης αγοριών ή κοριτσιών, ανάλογα με την τιμή «Α» ή «Κ» του φύλου.(μονάδες 4) c. Να επιστρέφει τη θέση της μέγιστης τιμής.(μονάδες 2) Μονάδες 8 Σημείωση : δεν απαιτείται έλεγχος εγκυρότητας. Να θεωρήσετε ότι όλες οι εισαγωγές γίνονται σωστά και όλες οι συνολικές τιμές χρόνου πρόσβασης είναι μοναδικές. Καλή επιτυχία! Επιμέλεια θεμάτων : Ανδρέας Δ. Βούζας Μαθηματικός M.Sc. I.S. M.Sc. O.R.