ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ 20-03-2012 Α. ίνεται το παρακάτω τμήμα αλγόριθμου: Ψευδής Αν Ε mod 4 = 0 τότε Αληθής Αν Ε mod 100 = 0 τότε Ψευδής Αν Ε mod 400 = 0 τότε Αληθής Τέλος_αν Τέλος_αν Τέλος_αν Να ξαναγράψετε στο τετράδιό σας τις παραπάνω εντολές χρησιμοποιώντας μόνο μία δομή Αν..τότε αλλιώς (σύνθετη δομή επιλογής) και χωρίς να χρησιμοποιηθεί εμφωλευμένη επιλογή. Μονάδες 4 Β. Ποιοι είναι οι πιο διαδεδομένοι αλγόριθμοι αναζήτησης; Ποιες είναι οι διαφορές τους; Μονάδες 4 Γ. Από τι εξαρτάται η επιλογή του καλύτερου αλγόριθμου ταξινόμησης; Μονάδες 4. Να περιγράψετε τον ρόλο των πεδίων στις δομές δεδομένων δευτερεύουσας μνήμης. Μονάδες 4 1
Ε. ίνεται ο παρακάτω αλγόριθμος, ο οποίος αποτελεί παραλλαγή του αλγορίθμου ταξινόμησης με τη μέθοδο της φυσαλίδας: ΑΛΓΟΡΙΘΜΟΣ ταξινόμηση_1 Ε ΟΜΕΝΑ // Α, n // ΓΙΑ λ ΑΠΟ..(1).. ΜΕΧΡΙ..(2).. ΓΙΑ κ ΑΠΟ..(3).. ΜΕΧΡΙ λ ΜΕ_ΒΗΜΑ -1 ΑΝ Α[κ]..(4).. Α[κ+1] ΤΟΤΕ Αντιμετάθεσε Α[κ], Α[κ+1] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΠΟΤΕΛΕΣΜΑΤΑ // Α // ΤΕΛΟΣ ταξινόμηση_1 Να γράψετε στο τετράδιό σας τον αριθμό καθενός από τα παραπάνω κενά 1-4 και να τα συμπληρώσετε έτσι ώστε τα στοιχεία του πίνακα Α να ταξινομούνται σε αύξουσα σειρά. Μονάδες 6 Στ. Σε µία ουρά 5 θέσεων έχουν τοποθετηθεί διαδοχικά τους αριθμούς 4, 3 και 2 στη δεύτερη, τρίτη και τέταρτη θέση αντίστοιχα. 1. να σχεδιάσετε τη μορφή της ουράς και να προσδιορίσετε τις τιμές των δεικτών της. 2. Στη συνέχεια να αφαιρέσετε 2 στοιχεία από την ουρά και να σχεδιάσετε την ουρά αναφέροντας τις νέες τιμές των δεικτών. 2
3. Τέλος να εισάγετε τον αριθμό 1 στην ουρά. Ποια είναι η τελική μορφή της ουράς και οι τιμές των δεικτών; Μονάδες 8 Ζ. Για την καλύτερη κατανόηση της λειτουργίας της στοίβας χρόνου εκτέλεσης δίνεται παράδειγμα: Έστω το κύριο πρόγραμμα Κ_Π, καλεί μία διαδικασία _1, η οποία με τη σειρά της καλεί μία συνάρτηση Σ_1. ΠΡΟΓΡΑΜΜΑ Κ_Π Εντολή1 ΚΑΛΕΣΕ _1( ) ΙΑ ΙΚΑΣΙΑ _1( ). Εντολή3 Χ Σ_1( ) ΣΥΝΑΡΤΗΣΗ Σ_1( ) : Εντολή5 ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ α β Εντολή2 Εντολή4 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΕΛΟΣ_ ΙΑ ΙΚΑΣΙΑΣ Να απαντήσετε στις παρακάτω ερωτήσεις: 1. Χρησιμοποιώντας το παραπάνω παράδειγμα να εξηγήσετε τους όρους στοίβα χρόνου εκτέλεσης και διεύθυνση επιστροφής. 2. Τι περιέχει η στοίβα χρόνου εκτέλεσης όταν εκτελείται η εντολή5; 3. Τι περιέχει η στοίβα χρόνου εκτέλεσης όταν εκτελείται η εντολή4; 4. Τι περιέχει η στοίβα χρόνου εκτέλεσης όταν εκτελείται η εντολή1; 5. Μπορεί το κύριο πρόγραμμα να περιέχει λίστα τυπικών παραμέτρων; 6. Περιέχει η παραπάνω διαδικασία λίστα πραγματικών παραμέτρων; Μονάδες 14 3
Η. ίνεται το παρακάτω πρόγραμμα και υποπρόγραμμα: Πρόγραμμα ευθεία_εισαγωγή Μεταβλητές Αρχή Για i από 1 μέχρι 3 ιάβασε Α[ i ] Τέλος_επανάληψης Για i από 2 μέχρι 3 temp A[ i ] j i 1 ιαδικασία μετακίνηση(β, Π, j) Μεταβλητές Ακέραιες: j Πραγματικές: β, Π[3] Αρχή Όσο β<π[ j ] και j<>0 επανάλαβε Π[ j+1] Π[ j ] j j-1 Tέλος_επανάληψης Τέλος_διαδικασίας Κάλεσε μετακίνηση(temp, A, j) Γράψε j Α[ j+1] temp Τέλος_επανάληψης Για i από 3 μέχρι 1 με_βήμα -1 Γράψε Α[ i ] Τέλος_επανάληψης Τέλος_προγράμματος 1. Να συμπληρώσετε το τμήμα δήλωσης μεταβλητών του προγράμματος. 2. Να εντοπίσετε και να γράψετε τις πραγματικές και τις τυπικές παραμέτρους. 3. Να ξαναγράψετε την παραπάνω διαδικασία χρησιμοποιώντας τη δομή επανάληψης Μέχρι στη θέση της Όσο 4
4. Αν ο πίνακας Α έχει τις τιμές: Α[1]=17, Α[2]=27, Α[3]=21 να γράψετε στο τετράδιό σας τις τιμές που θα εμφανιστούν κατά την εκτέλεση του προγράμματος με τη σειρά που θα εμφανιστούν. Μονάδες 16 Θ. ίνεται το παρακάτω τμήμα αλγορίθμου όπου έχει δημιουργηθεί σύμφωνα με τις αρχές του μη δομημένου προγραμματισμού. ΑΝ ΣΥΝΘΗΚΗ1 ΤΟΤΕ ΕΝΤΟΛΗ1 ΑΝ ΟΧΙ(ΣΥΝΘΗΚΗ2) ΤΟΤΕ ΕΝΤΟΛΗ2 ΕΝΤΟΛΗ3 ΠΗΓΑΙΝΕ ΣΤΗΝ ΕΝΤΟΛΗ5 ΕΝΤΟΛΗ4 ΕΝΤΟΛΗ5 ΠΗΓΑΙΝΕ ΣΤΗΝ ΕΝΤΟΛΗ6 ΤΕΛΟΣ 5
Να απαντήσετε με Σ ή Λ τις παρακάτω προτάσεις: 1. Η ΕΝΤΟΛΗ6 εκτελείται μόνο μία φορά. 2. Η ΕΝΤΟΛΗ1 μπορεί να εκτελεστεί παραπάνω από μία φορά. 3. Η ΕΝΤΟΛΗ4 εκτελείται μόνο όταν η ΣΥΝΘΗΚΗ2 είναι αληθής. 4. Όταν η ΣΥΝΘΗΚΗ1 είναι αληθής εκτελείται πάντα και η ΕΝΤΟΛΗ5. Μονάδες 8 Ι. Στο παρακάτω πρόγραμμα έχει κατά λάθος διαγραφεί ο αφαιρετέος από τον δεύτερο έλεγχο της διαδικασίας callit. 1. Αν δώσουμε ως στοιχείο εισόδου τον αριθμό 22 ποιό θα είναι το αποτέλεσμα που θα εμφανίσει το πρόγραμμα; 2. Γνωρίζοντας ότι εάν δώσουμε ως είσοδο τον αριθμό 12 παράγεται ως αποτέλεσμα ο αριθμός 108 ποιά είναι η τιμή που έχει διαγραφεί; ΠΡΟΓΡΑΜΜΑ Ποιά_τιμή_λείπει ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: x, y ΓΡΑΨΕ " ώσε εναν αριθμό" ΙΑΒΑΣΕ x ΑΝ x >= 0 ΤΟΤΕ y <- getit(x) ΓΡΑΨΕ y ΑΛΛΙΩΣ ΓΡΑΨΕ "Λάθος Αριθμός" ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ getit(gx): ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: gy, gx, gz gy <- gx ΚΑΛΕΣΕ callit(gy, gz) getit <- gy* gz ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ 6
ΙΑ ΙΚΑΣΙΑ callit(cy, cz) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: cz, cy cz <- cy ΑΝ cz < 10 ΤΟΤΕ cz <- cz^2 ΑΛΛΙΩΣ_ΑΝ cz < 14 ΤΟΤΕ cz <- cz - ΑΛΛΙΩΣ cz <- cz*(-2) ΤΕΛΟΣ_ ΙΑ ΙΚΑΣΙΑΣ Μονάδες 10 Κ. ίνεται ο παρακάτω αλγόριθμος σειριακής αναζήτησης: Αλγόριθμος θέμα_κ εδομένα //Π, Ν, key// Θ 0 i 1 Όσο i<=ν και Θ=0 επανάλαβε Αν Π[i] = key τότε Θ i Τέλος_Αν i i + 1 Τέλος_Επανάληψης 7
Αν Θ=0 τότε Εμφάνισε υπάρχει Αλλιώς Εμφάνισε δεν υπάρχει Τέλος_Αν Τέλος θέμα_κ 1. Να σχεδιάσετε στο τετράδιό σας το διάγραμμα ροής. 2. Έστω ότι ο πίνακας Π είναι ταξινομημένος κατά φθίνουσα σειρά. Τι θα μπορούσαμε να προσθέσουμε στον παραπάνω αλγόριθμο έτσι ώστε να τερματίζει η επανάληψη όταν ο υπολογιστής αντιληφθεί ότι το στοιχείο key δεν υπάρχει στον πίνακα; Μονάδες 10 Λ. Να σχεδιάσετε κατάλληλο αλγόριθμο ο οποίος θα δημιουργεί τον παρακάτω τετραγωνικό πίνακα: 1 2 3 4 5 6 7 1 1 10 11 12 13 14 2 2 19 1 18 17 16 2 15 3 20 21 1 22 2 23 24 4 30 29 28 1 27 26 25 5 31 32 2 33 1 34 35 6 40 2 39 38 37 1 36 7 2 41 42 43 44 45 1 Μονάδες 12 8