ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ Ονοµατεπώνυµο: Καθηγητής: ΒΛΙΣΙΔΗΣ Γ.! ΘΕΜΑ A Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασµένη. 1. Στα κυκλώµατα του υπολογιστή η ολίσθηση προς τα αριστερά ισοδυναµεί µε την ακέραια διαίρεση διά δύο, ενώ η ολίσθηση προς τα δεξιά ισοδυναµεί µε τον πολλαπλασιασµό επί δύο. 2. Το αποτέλεσµα του µεταγλωττιστή είναι το εκτελέσιµο πρόγραµµα. 3. Στην εντολή «Αρχή_επανάληψης Μέχρις_ότου», ο βρόχος εκτελείται όσο η συνθήκη είναι ψευδής. 4. Όταν υπάρχει εµφώλευση δύο εντολών «Για» σε ένα δοµηµένο πρόγραµµα, για κάθε τιµή του µετρητή για την οποία εκτελείται ο εξωτερικός βρόχος εκτελούνται όλες οι επαναλήψεις του εσωτερικού. 5. Ο δοµηµένος προγραµµατισµός περιέχει την ιεραρχική σχεδίαση και τον τµηµατικό προγραµµατισµό. 10 µονάδες Α2. 1. Ποιες είναι οι διαφορές µεταξύ συνάρτησης και διαδικασίας. 2. Τι είναι ο τµηµατικός προγραµµατισµός. 3. Να αναπτύξετε ποια είναι τα µειονεκτήµατα από την χρήση πινάκων; Α3. Δίνεται το παρακάτω τµήµα προγράµµατος: Sum ß 0 Ε ß 10 ΟΣΟ Ε <=40 ΕΠΑΝΑΛΑΒΕ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 Sum ß Sum + i ΓΡΑΨΕ Sum E ß E + 5 Να µετατραπεί σε ισοδύναµο µε αποκλειστική χρήση της δοµής ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ...ΜΕΧΡΙΣ_ΟΤΟΥ 5 µονάδες Α4. Δίνεται η παρακάτω ακολουθία εντολών (θεωρείστε ότι δεν εισάγονται αρνητικοί αριθµοί): Ι ß 1 ΟΣΟ (Ι <> 6) ΕΠΑΝΑΛΑΒΕ ΔΙΑΒΑΣΕ Α, Β Χ ß Α mod B ΓΡΑΨΕ Χ Ι ß Ι + 2 1
Να αιτιολογήσετε ποια αλγοριθµικά κριτήρια παραβιάζονται και σε ποια σηµεία. Α5. Να µεταφέρετε στο τετράδιο σας τον παρακάτω πίνακα, συµπληρώνοντας τον µε τον κατάλληλο τύπο και το περιεχόµενο της µεταβλητής. Εντολή εκχώρησης Τύπος µεταβλητής Χ Περιεχόµενο µεταβλητής Χ Χ Ñ 7 Χ Ñ ΨΕΥΔΗΣ Χ Ñ 2 > 1 Χ Ñ ΑΛΗΘΗΣ Χ Ñ 20.0-19.8 5 Μονάδες Α.6 Για την ταξινόµηση, σε φθίνουσα σειρά, των στοιχείων ενός µονοδιάστατου πίνακα αριθµών Π[30] µπορεί να ακολουθηθεί η παρακάτω διαδικασία: Αρχικά, ο πίνακας σαρώνεται από την αρχή µέχρι το τέλος του, προκειµένου να βρεθεί το µεγαλύτερο στοιχείο του. Αυτό το στοιχείο τοποθετείται στην αρχή του πίνακα, ανταλλάσσοντας θέσεις µε το στοιχείο της πρώτης θέσης του πίνακα. Η σάρωση του πίνακα επαναλαµβάνεται, ξεκινώντας τώρα από το δεύτερο στοιχείο του πίνακα. Το µεγαλύτερο από τα στοιχεία που απέµειναν ανταλλάσσει θέσεις µε το στοιχείο της δεύτερης θέσης του πίνακα. Η σάρωση επαναλαµβάνεται, ξεκινώντας από το τρίτο στοιχείο του πίνακα, µετά από το τέταρτο στοιχείο του πίνακα κ.ο.κ. Το παρακάτω ηµιτελές τµήµα αλγορίθµου κωδικοποιεί την παραπάνω διαδικασία: Για k από 1 µέχρι 29 θ ß (1...) Για i από k µέχρι 30 Αν Π[i] (2..) Π[θ] τότε θ (3..) Τέλος_αν Αντιµετάθεσε (4..), (5..) Να γράψετε στο τετράδιό σας τους αριθµούς (1) έως (5), που αντιστοιχούν στα κενά του αλγορίθµου και, δίπλα σε κάθε αριθµό, ό,τι πρέπει να συµπληρωθεί, ώστε να γίνεται σωστά η ταξινόµηση. 5 µονάδες! Θ Ε Μ Α Β Β1. Να σχεδιαστεί το διάγραµµα ροής που αντιστοιχεί στο ακόλουθο τµήµα αλγορίθµου: Αλγόριθµος θεµαβ1 Για I από 2 µέχρι 10 Για κ από 10 µέχρι I µε_βήµα -1 Αν I mod 2 = 0 τότε εµφάνισε I, κ Τέλος θεµαβ1 2
Β2. Δίνεται το παρακάτω πρόγραµµα το οποίο ελέγχει αν η συνάρτηση ΑΛΑ_ΡΩΣΙΚΑ υπολογίζει σωστά το γινόµενο 2 ακέραιων αριθµών. ΠΡΟΓΡΑΜΜΑ ΕΛΕΓΧΟΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΔΙΑΒΑΣΕ Α, Β Γß ΑΛΑ_ΡΩΣΙΚΑ (Α, Β) ΑΝ Α * Β = Γ ΤΟΤΕ ΓΡΑΨΕ ΣΩΣΤΟ ΓΙΝΟΜΕΝΟ ΑΛΛΙΩΣ ΓΡΑΨΕ ΛΑΘΟΣ ΓΙΝΟΜΕΝΟ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΑΡΤΗΣΗ ΑΛΑ_ΡΩΣΙΚΑ (Α1, Α2) : ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α1, Α2, Σ ΑΡΧΗ Σß 0 ΟΣΟ Α2 > 0 ΕΠΑΝΑΛΑΒΕ ΑΝ Α2 MOD 2 = 1 ΤΟΤΕ Σß Σ + Α1 ΤΕΛΟΣ_ΑΝ Α1ß Α1 * 2 Α2ß Α2 DIV 2 ΑΛΑ_ΡΩΣΙΚΑ ß Σ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ 1. Να γράψετε ισοδύναµο πρόγραµµα χωρίς να κάνει κλήση υποπρογράµµατος. 2. Να εκτελέσετε το πρόγραµµα που γράψατε στο προηγούµενο ερώτηµα για τιµές εισόδου Α = 3 και Β = 6. Να γράψετε στο τετράδιό σας τον πίνακα τιµών των µεταβλητών. 2 µονάδες 3. Να γράψετε διαδικασία ισοδύναµη µε τη συνάρτηση. 4. Να ξαναγράψετε το πρόγραµµα ώστε να χρησιµοποιεί τη διαδικασία.! Θ Ε Μ Α Γ Ένα πρατήριο υγρών καυσίµων διαθέτει έναν τύπο καυσίµου που αποθηκεύεται σε δεξαµενή χωρητικότητας 10.000 λίτρων. Να αναπτύξετε αλγόριθµο ο οποίος: Γ1. να διαβάζει την ποσότητα (σε λίτρα) του καυσίµου που υπάρχει αρχικά στη δεξαµενή µέχρι να δοθεί έγκυρη τιµή. 2 µονάδες Για κάθε όχηµα που προσέρχεται στο πρατήριο: Γ2. να διαβάζει τον τύπο του οχήµατος ( Β για βυτιοφόρο όχηµα που προµηθεύει το πρατήριο µε καύσιµο και E για επιβατηγό όχηµα που προµηθεύεται καύσιµο από το πρατήριο). 3
2 µονάδες Γ3. Αν το όχηµα είναι βυτιοφόρο τότε να γεµίζει τη δεξαµενή µέχρι την πλήρωσή της. Αν το όχηµα είναι επιβατηγό τότε να διαβάζει την ποσότητα καυσίµου την οποία θέλει να προµηθευτεί και, αν υπάρχει επάρκεια καυσίµου στη δεξαµενή, τότε το επιβατηγό όχηµα να εφοδιάζεται µε τη ζητούµενη ποσότητα καυσίµου, διαφορετικά το όχηµα να µην εξυπηρετείται. Γ4. Η επαναληπτική διαδικασία να τερµατίζεται, όταν αδειάσει η δεξαµενή του πρατηρίου ή όταν δεν εξυπηρετηθούν τρία διαδοχικά επιβατηγά οχήµατα. Γ5. Στο τέλος ο αλγόριθµος να εµφανίζει: α. τη µέση ποσότητα καυσίµου ανά επιβατηγό όχηµα που εξυπηρετήθηκε β. τη συνολική ποσότητα καυσίµου µε την οποία τα βυτιοφόρα ανεφοδίασαν τη δεξαµενή. Σηµειώσεις: εν απαιτείται έλεγχος εγκυρότητας για τον τύπο του οχήµατος. Θεωρήστε ότι στο πρατήριο προσέρχεται ένα τουλάχιστον επιβατηγό όχηµα για το οποίο η ποσότητα καυσίµου στη δεξαµενή επαρκεί.! Θ Ε Μ Α Δ H κρυπτογράφηση χρησιµοποιείται για την προστασία των µεταδιδοµένων πληροφοριών. Ένας απλός αλγόριθµος κρυπτογράφησης χρησιµοποιεί την αντιστοίχιση κάθε γράµµατος ενός κειµένου σε ένα άλλο γράµµα της αλφαβήτου. Για το σκοπό αυτό δίνεται πίνακας ΑΒ[2,24], ο οποίος στην πρώτη γραµµή του περιέχει σε αλφαβητική σειρά τους χαρακτήρες από το Α έως και το Ω. Στη δεύτερη γραµµή του βρίσκονται οι ίδιοι χαρακτήρες, αλλά µε διαφορετική σειρά. Κάθε χαρακτήρας της πρώτης γραµµής κρυπτογραφείται στον αντίστοιχο χαρακτήρα της δεύτερης γραµµής, που βρίσκεται στην ίδια στήλη. Επίσης, δίνεται πίνακας ΚΕΙΜ[500], ο οποίος περιέχει αποθηκευµένο µε κεφαλαία ελληνικά γράµµατα το προς κρυπτογράφηση κείµενο. Κάθε χαρακτήρας του κειµένου βρίσκεται σε ένα κελί του πίνακα ΚΕΙΜ[500]. Οι λέξεις του κειµένου χωρίζονται µε έναν χαρακτήρα κενό ( ), ενώ στο τέλος του κειµένου µπορεί να υπάρχουν χαρακτήρες κενό ( ), µέχρι να συµπληρωθεί ο πίνακας. Να αναπτύξετε αλγόριθµο ο οποίος: Δ1. Να εµφανίζει το πλήθος των χαρακτήρων κενό ( ), που υπάρχουν µετά το τέλος του κειµένου στον πίνακα ΚΕΙΜ[500]. Αν δεν υπάρχει χαρακτήρας κενό µετά τον τελευταίο χαρακτήρα του µη κρυπτογραφηµένου κειµένου, τότε να εµφανίζεται το µήνυµα: «Το µήκος του κειµένου είναι 500 χαρακτήρες». Θεωρήστε ότι ο πίνακας ΚΕΙΜ[500] περιέχει τουλάχιστον µία λέξη. 6 µονάδες Δ2. Να κρυπτογραφεί τους χαρακτήρες του πίνακα ΚΕΙΜ[500] στον πίνακα ΚΡΥΠ[500], µε βάση τον πίνακα ΑΒ[2,24]. Η κρυπτογράφηση να τερµατίζεται µε το τέλος του κειµένου. ίνεται ότι κάθε χαρακτήρας κενό, που υπάρχει στον πίνακα ΚΕΙΜ[500], παραµένει χαρακτήρας κενό στον πίνακα ΚΡΥΠ[500]. 6 µονάδες Δ3. Να εµφανίζει το πλήθος των λέξεων του κειµένου, καθώς και το πλήθος των χαρακτήρων που έχει η µεγαλύτερη λέξη του κειµένου στον πίνακα ΚΡΥΠ[500]. Θεωρήστε ότι η µεγαλύτερη λέξη είναι µοναδική. Καλή επιτυχία 4
5