ΛΥΣΕΙΣ ΣΤΗΝ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΗΜΕΡΟΜΗΝΙΑ : 08 / 04 / 2010 ΘΕΜΑ 1 Α1. 1-Σ, 2-Λ, 3-Λ, 4-Λ, 5-Σ Α2. Κ 1 Χ 10 _ΕΠΑΝΑΛΗΨΗΣ ΑΝ Κ < Α ΚΑΙ Χ < > 100 ΤΟΤΕ Κ Κ * Χ ΓΡΑΨΕ Κ Χ Χ + 10 ΜΕΧΡΙΣ_ΟΤΟΥ Κ > = Α H Χ = 100 Α3. ΠΡΟΓΡΑΜΜΑ ΠΑΣΧΑ_ΕΛΛΗΝΩΝ_ΠΑΣΧΑ ΠΡΑΓΜΑΤΙΚΕΣ: α ΧΑΡΑΚΤΗΡΕΣ: κ ΔΙΑΒΑΣΕ α κ Σύγκριση (α) ΓΡΑΨΕ κ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΑΣΧΑ_ΕΛΛΗΝΩΝ_ΠΑΣΧΑ ΣΥΝΑΡΤΗΣΗ Σύγκριση (χ): ΧΑΡΑΚΤΗΡΑΣ ΠΡΑΓΜΑΤΙΚΕΣ: χ ΑΝ χ > 0 ΤΟΤΕ Σύγκριση θετικός 1
Σύγκριση όχι θετικός ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Α4. Πλεονεκτήματα του τμηματικού προγραμματισμού. Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντιστοίχου προγράμματος. Διευκολύνει την κατανόηση και διόρθωση του προγράμματος. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού. Α5. Με κριτήριο το είδος της επίλυσης που επιζητούν, τα προβλήματα διακρίνονται σε τρεις κατηγορίες Απόφασης, όπου η απόφαση που πρόκειται να ληφθεί σαν λύση του προβλήματος απαντά σε ένα ερώτημα. Πιθανόν αυτή η απάντηση να είναι ένα Ναι ή ένα Όχι. Αυτό που θέλουμε να διαπιστώσουμε σε ένα πρόβλημα απόφασης είναι αν υπάρχει απάντηση που ικανοποιεί τα δεδομένα που θέτονται από το πρόβλημα. Παράδειγμα: Δίδεται ένας ακέραιος αριθμός Ν και το πρόβλημα που τίθεται είναι, αν ο αριθμός Ν είναι πρώτος. Υπολογιστικά, όπου απαιτούνται να γίνουν υπολογισμοί για να μπορεί να δοθεί μία απάντηση στο πρόβλημα. Σε ένα υπολογιστικό πρόβλημα ζητάμε να βρούμε τη τιμή της απάντησης που ικανοποιεί τα δεδομένα που παρέχει το πρόβλημα. Παράδειγμα: Η εύρεση της ρίζας της εξίσωσης χ 2 = 5 είναι υπολογιστικό πρόβλημα. Βελτιστοποίησης, όπου το πρόβλημα που τίθεται επιζητά το βέλτιστο αποτέλεσμα για τα συγκεκριμένα δεδομένα που διαθέτει. Σε ένα πρόβλημα βελτιστοποίησης αναζητούμε την απάντηση που ικανοποιεί κατά τον καλύτερο τρόπο τα δεδομένα που παρέχει το πρόβλημα. Παράδειγμα: Η εύρεση της συντομότερης διαδρομής Αθήνας - Κορίνθου είναι πρόβλημα βελτιστοποίησης. Α6. 1. Καμία φορά 2. Α > = Β + 3 Α7. Να μετατρέψετε τον παρακάτω αδόμητο αλγόριθμο, σε αλγόριθμο που ακολουθεί τις αρχές του δομημένου προγραμματισμού Αρχή Αν συνθήκη1 τότε Οσο συνθήκη2 επανάλαβε Εντολή1 Εντολή2 τέλος_επανάληψης Εντολή3 Εντολή4 Τέλος 2
ΘΕΜΑ 2 12 ΘΕΜΑ 3 Αλγόριθμος Θ3 ΠΠ 0! πλήθος παιχτών Εμφάνισε Δώσε το όνομα του 1 ου παίχτη Διάβασε ΟΝ Όσο ΟΝ <> Game over επανάλαβε ΠΠ ΠΠ + 1 ΣΒ 0 Για γ από 1 μέχρι 10 Εμφάνισε Δώσε μπουκάλια 1 ης προσπάθειας Διάβασε μ1 Αν μ1 <> 12 τότε Εμφάνισε Δωσε μπουκάλια 2 ης προσπάθειας Διάβασε μ2 Αν μι + μ2 = 12 τότε ΣΒ ΣΒ + 20 ΣΒ ΣΒ + μ1 + μ2 ΣΒ ΣΒ + 30 Τέλος_επανάληψης Αν ΠΠ = 1 τότε μεγ ΣΒ νικητής ΟΝ Αν ΣΒ >= μεγ τότε 3
μεγ ΣΒ νικητής ΟΝ Εμφάνισε Δώσε όνομα επόμενου παίχτη Διάβασε ΟΝ Τέλος_επανάληψης Αν ΠΠ > 0 τότε Εμφάνισε Νικητής είναι ο παίχτης:, νικητής Εμφάνισε δεν έπαιξε κανείς σήμερα Τέλος Θ3 ΘΕΜΑ 4 ΠΡΟΓΡΑΜΜΑ ΧΡΙΣΤΟΣ_ΑΝΕΣΤΗ ΑΚΕΡΑΙΕΣ: I, J, Θ ΠΡΑΓΜΑΤΙΚΕΣ: ΚΕΡ [30, 12], Σ, ΜΟ, Φ[30] ΧΑΡΑΚΤΗΡΕΣ: ΟΝΨ[30], ΟΝ ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 30 ΔΙΑΒΑΣΕ ΟΝΨ[I] ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 30 ΑΝ J < > 8 ΤΟΤΕ _ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ ΚΕΡ[I, J] ΜΕΧΡΙΣ_ΟΤΟΥ ΚΕΡ[I, J] = Α_Μ( ΚΕΡ[I, J] ) ΚΕΡ[I, J] 0 4
Θ 0 ΌΣΟ Θ < > 0 ΕΠΑΝΑΛΑΒΕ ΔΙΑΒΑΣΕ ΟΝ Θ ΕΥΡ (ΟΝΨ, ΟΝ) ΑΝ Θ < > 0 ΤΟΤΕ Σ 0 Σ Σ + ΚΕΡ[Θ, J] ΜΟ Σ/11 ΔΙΑΒΑΣΕ ΟΝ ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 30 Φ[Ι] 0 ΑΝ ΚΕΡ[I, J] < = 10000 ΤΟΤΕ Φ[Ι] Φ[Ι] + Φ[Ι] * 0.1 Φ[Ι] Φ[Ι] + 10000 * 0.1+ (Φ[Ι] 10000) * 0.2 ΚΑΛΕΣΕ ΕΜΦ( ΚΕΡ ) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΙΣΤΟΣ_ΑΝΕΣΤΗ ΣΥΝΑΡΤΗΣΗ ΕΥΡ(ΟΝΨ, ΟΝ): ΑΚΕΡΑΙΑ ΑΚΕΡΑΙΕΣ: Ι, J, Θ ΛΟΓΙΚΕΣ: FLAG ΧΑΡΑΚΤΗΡΕΣ: ΟΝΨ[30], ΟΝ I 1, FLAG FALSE ΌΣΟ I <= 30 ΚΑΙ FLAG = FALSE ΕΠΑΝΑΛΑΒΕ ΑΝ ΟΝΨ[I] = ΟΝ ΤΟΤΕ FLAG TRUE Θ I I I + 1 5
ΑΝ FLAG = TRUE ΤΟΤΕ ΕΥΡ Θ ΕΥΡ 0 ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΔΙΚΑΣΙΑ ΕΜΦ(ΚΕΡ) ΑΚΕΡΑΙΕΣ: Ι, J, Κ ΠΡΑΓΜΑΤΙΚΕΣ: ΚΕΡ [30, 12], TEMP ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 12 ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 30 ΓΙΑ J ΑΠΟ 30 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ 1 ΑΝ ΚΕΡ[Κ, J 1] > ΚΕΡ[Κ, J] ΤΟΤΕ ΤΕΜΡ ΚΕΡ[Κ, J 1] ΚΕΡ[Κ, J 1] ΚΕΡ[Κ, J] ΚΕΡ[Κ, J] ΤΕΜΡ ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 2 ΓΡΑΨΕ ΚΕΡ[Ι, J] ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ 6