ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 29 ΜΑΪΟΥ 2013 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΘΕΜΑ Α Ενδεικτικές απαντήσεις A1. (Μονάδες 6) 1. Λάθος (Η τιμή αλλάζει, ο τύπος όχι. Σημειώσεις 3.5, σελίδα 34) 2. Σωστό (Σημειώσεις 6.11, σελίδα 117) 3. Σωστό (Σχετικά ασαφής πρόταση) 4. Λάθος (αφού το ΟΧΙ(Δ) είναι ΨΕΥΔΗΣ) 5. Σωστό (Σημειώσεις 3.15, σελίδα 43) 6. Λάθος (Σημειώσεις 7.4, σελίδα 157) Α2. (Μονάδες 8) k 1 Για i από 1 μέχρι 4 Για j από 1 μέχρι 5 Αν (ΠΙΝ[i,j] < > 0) τότε Α[k] i A[k+1] j A[k+2] ΠΙΝ[i,j] k k + 3 Α3. α. Σημειώσεις 1.13, σελίδα 18 (Μονάδες 4) β. Σημειώσεις 7.33, σελίδα 192 (Μονάδες 3) γ. Σημειώσεις 10.6, σελίδα 254 (Μονάδες 4) Τα μη μηδενικά στοιχεία. Οι τιμές i (γραμμή), j (στήλη) και ΠΙΝ[i,j] (στοιχείο) θα μπαίνουν 3-3 στον πίνακα Α και κατόπιν το k θα αυξάνεται κατά 3. Δυστυχώς αρκετή θεωρία, αλλά από τα SOS.
Α4. α. (Μονάδες 4) Για i από 1 μέχρι 100 Για j από i + 1 μέχρι 100 Διάβασε Π[i,j] Εφόσον θέλουμε να διαβάζει μόνο τα στοιχεία στα οποία η γραμμή είναι μικρότερη από την στήλη, βάζουμε την στήλη να ξεκινάει από έναν αριθμό μεγαλύτερο από την γραμμή. β. (Μονάδες 4) 1. Διάβασε Α, Β 2. Αν Α < Β τότε 3. Α Β 4. 5. Εμφάνισε Α Βλέπουμε ότι ο αλγόριθμος εμφανίζει το Α, άρα το μεγαλύτερο θα θέλουμε να αποθηκεύεται στην μεταβλητή Α. Αν το Α είναι μεγαλύτερο από το Β, δεν χρειάζεται να γίνει τίποτα. Αν το Α είναι μικρότερο από το Β, τότε θα βάλουμε την τιμή του Β στο Α, ώστε να αποθηκευτεί στο Α η μεγαλύτερη τιμή και να εμφανιστεί στο τέλος. Α5. (Μονάδες 7) Χαρακτήρες Τύπος μεταβλητής Ελεύθερο κείμενο Τρόπος αναπαράστασης αλγορίθμου Ώθηση Στοίβα Αληθής Λογική τιμή FIFO Ουρά Αποτελεσματικότητα Κριτήριο αλγορίθμου βρόχος επανάληψη
ΘΕΜΑ Β Β1. (Μονάδες 10) Β2. (Μονάδες 10) πλήθος 0 Για i από 1 μέχρι 100 Αν (Π[i] = ΑΛΗΘΗΣ) τότε πλήθος πλήθος + 1 Για i από 1 μέχρι πλήθος Π[i] ΑΛΗΘΗΣ Ουσιαστικά, μετράμε πόσα «ΑΛΗΘΗΣ» υπάρχουν στον πίνακα και γεμίζω τόσες θέσεις μετά με την τιμή «ΑΛΗΘΗΣ» και τις υπόλοιπες με «ΨΕΥΔΗΣ». Φυσικά, μπορεί να λυθεί με πολλούς άλλους δυσκολότερους τρόπους (με αντιμεταθέσεις κτλ.). Γενικά, ένα αρκετά δύσκολο θέμα. Για i από πλήθος + 1 μέχρι 100 Π[i] ΨΕΥΔΗΣ
ΘΕΜΑ Γ (Μονάδες 20) Αλγόριθμος ΘέμαΓ Για i από 1 μέχρι 30!Γ1 Διάβασε ΚΩΔ[i] Για j από 1 μέχρι 10 Διάβασε ΚΕΦ[i,j], ΑΚΡ[i,j] Για i από 1 μέχρι 30!Γ2 Σ1 0 Σ2 0 Για j από 1 μέχρι 10 Σ1 Σ1 + ΚΕΦ[i,j] Σ2 Σ2 + ΑΚΡ[i,j] ΜΟ[i,1] Σ1 / 10 ΜΟ[i,2] Σ2 / 10 Για i από 1 μέχρι 30!Γ3 Αν (ΜΟ[i,1] > 2 ) ή (ΜΟ[i,2] > 4) τότε Εμφάνισε Εκτός ορίων Αλλιώς_Αν (ΜΟ[i,1] > 1.8 ) ή (ΜΟ[i,2] > 3.6) τότε Εμφάνισε Κοντά στα όρια Αλλιώς Εμφάνισε Χαμηλός SAR Μέσο όρο κατά γραμμές και στους 2 πίνακες και αποθήκευση τους στον πίνακα ΜΟ με τις 2 στήλες. Βρίσκουμε το μεγαλύτερο διάστημα τιμών που βρίσκεται κάποιος μέσος όρος και εμφανίζουμε αντίστοιχο μήνυμα. Μπορεί να λυθεί και πιο αναλυτικά. Για i από 1 μέχρι 30!Γ4 ΜΟ1[i] ΜΟ[i,1] ΜΟ2[i] ΜΟ[i,2] Κ1[i] ΚΩΔ[i] Κ2[i] ΚΩΔ[i] Για i από 2 μέχρι 30 Για j από 30 μέχρι i με βήμα -1 Αν (ΜΟ1[j 1] < ΜΟ1[j]) τότε temp1 ΜΟ1[j 1] ΜΟ1[j 1] ΜΟ1[j] ΜΟ1[j] temp1 temp2 K1[j 1] K1[j 1] K1[j] K1[j] temp2 2 ταξινομήσεις στους πίνακες με τους μέσους όρους που δημιουργήσαμε πριν και διατήρηση της παραλληλίας με τους κωδικούς.
Αν (ΜΟ2[j 1] < ΜΟ2[j]) τότε temp1 ΜΟ2[j 1] ΜΟ2[j 1] ΜΟ2[j] ΜΟ2[j] temp1 temp2 K2[j 1] K2[j 1] K2[j] K2[j] temp2 Για i από 1 μέχρι 3 Εμφάνισε ΜΟ1[i],Κ1[i] Για i από 1 μέχρι 3 Εμφάνισε ΜΟ2[i],Κ2[i] Τέλος ΘέμαΓ ΘΕΜΑ Δ (Μονάδες 20) ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: i, EL[5], ES[5], ΘΕΣΗ1, ΘΕΣΗ2 ΧΑΡΑΚΤΗΡΕΣ: ΟΝΟΜΑ, ΑΡΙΘΜΟΣ, ΑΠΑΝΤΗΣΗ ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣΟΣΤΟ1, ΠΟΣΟΣΤΟ2 ΑΡΧΗ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5!Δ1 EL [i] 0 ES [i] 0 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ!Δ2,Δ3 ΔΙΑΒΑΣΕ ΟΝΟΜΑ, ΑΡΙΘΜΟΣ ΑΝ (ΟΝΟΜΑ = ΕL ) ΤΟΤΕ EL[ΑΡΙΘΜΟΣ] EL[ΑΡΙΘΜΟΣ] + 1 ΑΛΛΙΩΣ ES[ΑΡΙΘΜΟΣ] ES[ΑΡΙΘΜΟΣ] + 1 ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Για διακοπή της εισαγωγής, πατήστε Δ ή δ ΔΙΑΒΑΣΕ ΑΠΑΝΤΗΣΗ ΜΕΧΡΙΣ_ΟΤΟΥ (Απάντηση = Δ ) Ή (Απάντηση = δ ) Όπως περιγράφει και το ερώτημα, όποιος αριθμός απάντησης δοθεί από τον χρήστη, πηγαίνουμε στον ίδιο αριθμό θέσης των πινάκων και αυξάνουμε το στοιχείο κατά 1. Εδώ είναι λίγο ασαφές για το τι θα πατάει ο χρήστης για να συνεχίσει. Δεν ξέρω αν ήρθε διευκρίνιση.
ΚΑΛΕΣΕ ΜΕΓ_ΠΟΣ(EL, ΠΟΣΟΣΤΟ1,ΘΕΣΗ1)!Δ4 ΚΑΛΕΣΕ ΜΕΓ_ΠΟΣ(ES, ΠΟΣΟΣΤΟ2,ΘΕΣΗ2) ΓΡΑΨΕ ΘΕΣΗ1, ΠΟΣΟΣΤΟ1 ΓΡΑΨΕ ΘΕΣΗ2, ΠΟΣΟΣΤΟ2 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ ΜΕΓ_ΠΟΣ(Α, ΠΟΣΟΣΤΟ, ΘΕΣΗ)!Δ5 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: i, ΜΑΧ, ΘΕΣΗ, Σ, Α[5] ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣΟΣΤΟ ΑΡΧΗ ΜΑΧ Α[1] ΘΕΣΗ 1 Σ 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 Σ Σ + Α[i] ΑΝ (Α[i] > ΜΑΧ) ΤΟΤΕ ΜΑΧ Α[i] ΘΕΣΗ i ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΠΟΣΟΣΤΟ (ΜΑΧ / Σ) * 100 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Διαδικασία η οποία δέχεται έναν πίνακα 5 στοιχείων και επιστρέφει ένα ποσοστό και μια θέση. Άθροισμα, max και θέση του max στον πίνακα. Πληροφορικός : Πέτρος Παπαδόπουλος