ΛΥΣΕΙΣ ΣΤΗΝ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΗΜΕΡΟΜΗΝΙΑ : 16 / 04 / 2007 ΘΕΜΑ 1 Α1. 1-Λ, 2-Λ, 3-Σ, 4-Λ, Α2. Αλγόριθμος Παράδειγμα i 1 Όσο i < = 3 επανάλαβε α 1, β 5 Όσο α > = β επανάλαβε Αν α > 5 τότε Εμφάνισε α ^ 2 Αλλιώς Εμφάνισε α + 2 α α 2 i i + 1 Τέλος Παράδειγμα Α3. α. front = 2, rear = 4 β. front = 4 γ. rear = 5 Α4. Πλεονεκτήματα του δομημένου προγραμματισμού. Δημιουργία απλούστερων προγραμμάτων. Άμεση μεταφορά των αλγορίθμων σε προγράμματα. Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους. Ευκολότερη διόρθωση και συντήρηση. 1
Α5. Με κριτήριο το βαθμό δόμησης των λύσεών τους, τα επιλύσιμα προβλήματα μπορούν να διακριθούν σε τρεις επίσης κατηγορίες : Δομημένα Για παράδειγμα, η επίλυση της δευτεροβάθμιας εξίσωσης αποτελεί ένα δομημένο πρόβλημα. Ημιδομημένα, Σαν παράδειγμα ημιδομημένου προβλήματος μπορούμε να αναφέρουμε ένα πρόβλημα όπου ένας ταξιδιώτης αναζητά να επιλέξει το μεταφορικό μέσο μετακίνησής του από ένα μέρος σε κάποιο άλλο. Αδόμητα, Παράδειγμα αδόμητου προβλήματος είναι η επιλογή του τρόπου, του τόπου και του χρόνου ενός εφηβικού πάρτυ. Α6. Για την i): λογική, Για την ii): χαρακτήρας, Για την iii): ακέραια, Για την iv): χαρακτήρας ΘΕΜΑ 2 ΠΙΝΑΚΑΣ ΚΥΡΙΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Επαναλήψεις Χ Υ Κ Ζ Ι 10 20 1 60 40 1 ΨΕΥΔΗΣ 1η 62٠ 38٠ 2 2 2η 60٠ 40٠ 3 3 ΠΙΝΑΚΑΣ ΔΙΑΔΙΚΑΣΙΑΣ Π Ρ Ν 10 20 1 60 40 60 40 2 62 38 62 38 3 60 40 2
Οι τιμές που θα εκτυπωθούν είναι αυτές που σημειώνονται με την βούλα στον πίνακα. Ζ = ΨΕΥΔΗΣ ΘΕΜΑ 3 ΠΡΟΓΡΑΜΜΑ Κ34 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: I, J, Π [5], ΠΡΑΓΜΑΤΙΚΕΣ: ΧΡ [46, 5] ΧΑΡΑΚΤΗΡΕΣ: ΟΝ [46], ΕΠ[46, 5], ΜΑΘΗΤΗΣ ΑΡΧΗ ΔΙΑΒΑΣΕ ΟΝ[I] ΔΙΑΒΑΣΕ XΡ[I, J] ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ ΕΠ[I, J] ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠ[I, J] = ΑΡΙΣΤΑ ή ΕΠ[I, J] = ΚΑΛΑ ή ΕΠ[I, J] = ΜΕΤΡΙΑ. ΜΑΘΗΤΗΣ ΒΒ(ΟΝ, ΧΡ) ΓΡΑΨΕ ΜΑΘΗΤΗΣ ΚΑΛΕΣΕ ΜΜ(ΟΝ, ΧΡ) Π[J] 0 ΑΝ ΕΠ[I, J] = ΑΡΙΣΤΑ ΤΟΤΕ Π[J] Π[J] + 5 ΑΛΛΙΩΣ_ΑΝ ΕΠ[I, J] = ΚΑΛΑ ΤΟΤΕ Π[J] Π[J] + 3 ΑΛΛΙΩΣ Π[J] Π[J] + 2 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Κ34 3
ΣΥΝΑΡΤΗΣΗ ΒΒ(ΟΝ, ΧΡ): ΧΑΡΑΚΤΗΡΑΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι, J, ΘΕΣΗ ΠΡΑΓΜΑΤΙΚΕΣ: ΧΡ [46, 5], ROW[46], ΜΕΓΙΣΤΟΣ ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[46] ΑΡΧΗ ROW[I] 0 ROW[I] ROW[I] + ΧΡ[I, J] ΜΕΓΙΣΤΟΣ ROW [1] ΘΕΣΗ 1 ΓΙΑ I ΑΠΟ 2 ΜΕΧΡΙ 46 ΑΝ ROW [I] > ΜΕΓΙΣΤΟΣ ΤΟΤΕ ΜΕΓΙΣΤΟΣ ROW [I] ΘΕΣΗ I ΤΕΛΟΣ_ΑΝ ΒΒ ΟΝ[ΘΕΣΗ] ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΔΙΚΑΣΙΑ ΜΜ(ΟΝ, ΧΡ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι, J ΠΡΑΓΜΑΤΙΚΕΣ: ΧΡ [46, 5], ROW[46] ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[46] ΑΡΧΗ ROW[I] 0 ROW[I] ROW[I] + ΧΡ[I, J] ΓΙΑ I ΑΠΟ 2 ΜΕΧΡΙ 46 ΓΙΑ J ΑΠΟ 46 ΜΕΧΡΙ I ΜΕ_ΒΗΜΑ -1 ΑΝ ROW [J-1] < ROW [J] ΤΟΤΕ ΒΟΗΘΗΤΙΚΗ ROW [J-1] ROW [J-1] ROW [J] ROW [J] ΒΟΗΘΗΤΙΚΗ ΒΟΗΘΗΤΙΚΗ1 ON[J-1] 4
ΟN[J-1] ON[J] ON[J] ΒΟΗΘΗΤΙΚΗ1 ΤΕΛΟΣ_ΑΝ ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 5 ΕΚΤΥΠΩΣΕ ΟΝ[I] ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΘΕΜΑ 4 Αλγόριθμος Κ34 Για i από 1 μέχρι 500 Διάβασε ΟΝΟΜΑ[i] Αρχή_επανάληψης Διάβασε ΦΥΛΟ[i] Μέχρις_ότου ΦΥΛΟ[i] = "Α" ή ΦΥΛΟ[i] = "Κ" Διάβασε ΣΧΟΛΕΙΟ[i] Αρχή_επανάληψης Διάβασε ΤΑΞΗ[i] Μέχρις_ότου ΤΑΞΗ[i] = "Α" ή ΤΑΞΗ[i] = "Β" ή ΤΑΞΗ[i] = "Γ" Για i από 1 μέχρι 500 Για j από 1 μέχρι 6 Αρχή_επανάληψης Διάβασε ΡΙΨΗ[i,j] Μέχρις_ότου ΡΙΨΗ[i,j]>0 ή ΡΙΨΗ[i,j] = -1 Για i από 1 μέχρι 500 ΜΕΓ_ΡΙΨΗ[i] ΡΙΨΗ[i,1] Για j από 1 μέχρι 6 Αν ΡΙΨΗ[i,j] > ΜΕΓ_ΡΙΨΗ[i] τότε ΜΕΓ_ΡΙΨΗ[i] ΡΙΨΗ[i,j] ΒΟΛΗ_ΡΙΨΗ[i] j 5
Διάβασε όνομα_μαθητή flag false θ 0 i 1 Όσο flag = false και i <= 500 επανάλαβε Αν ONOMA[i] = όνομα_μαθητή τότε flag true θ i Αλλιώς i i + 1 Αν flag = true τότε κ 0 Για j από 1 μέχρι 6 Αν ΡΙΨΗ[i,j] <> -1 τότε κ κ + 1 ΕΓΚ_pos[κ] ΡΙΨΗ[θ, j] Εμφάνισε κ Για i από 2 μέχρι κ Για j από κ μέχρι i με_βήμα 1 Αν ΕΓΚ_pos[j-1] < ΕΓΚ_pos[j] τότε Αντιμετάθεσε ΕΓΚ_pos[j-1], ΕΓΚ_pos[j] Για i από 1 μέχρι κ Εμφάνισε ΕΓΚ_pos[i] Αλλιώς Εμφάνισε "Δεν υπάρχει μαθητής με αυτό το όνομα" Τέλος Κ34 6