ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΟΔΗΓΙΕΣ: ΝΑ ΑΠΑΝΤΗΣΕΤΕ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ. Το εξεταστικό δοκίμιο αποτελείται από δύο Ενότητες Α και Β. ΕΝΟΤΗΤΑ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ορθή απάντηση βαθμολογείται με έξι (6) μονάδες. ΕΝΟΤΗΤΑ Β - Αποτελείται από τρεις (3) ερωτήσεις. Οι δύο πρώτες ερωτήσεις βαθμολογούνται με δεκαπέντε μονάδες (15) η κάθε μια και η τρίτη με δέκα (10) μονάδες. Επιτρέπεται η χρήση μη προγραμματιζόμενης υπολογιστικής μηχανής. Τα λογικά διαγράμματα μπορούν να γίνουν με μολύβι. ΤΟ ΕΞEΤΑΣΤΙΚΟ ΔΟΚΙMΙΟ ΑΠΟΤΕΛΕΙΤAΙ ΑΠΟ ΕΝΝΕΑ (9) ΣΕΛΙΔΕΣ. Σύνολο βαθμών: 100 1/9
Ενότητα Α Πρόβλημα 1 Να σχεδιάσετε λογικό διάγραμμα, το οποίο να διαβάζει από το πληκτρολόγιο το μήκος Α της πλευράς ενός τετραγώνου. Αν το μήκος της πλευράς είναι θετικός αριθμός, τότε να υπολογίζει και να παρουσιάζει το εμβαδόν του τετραγώνου (Ε=Α 2 ), διαφορετικά να παρουσιάζει ένα μήνυμα λάθους. Πρόβλημα 2 (α) Να γράψετε τις αντίστοιχες εκφράσεις στη γλώσσα προγραμματισμού Pascal για τις πιο κάτω μαθηματικές εκφράσεις: (1 βαθμός ανά έκφραση) I) Α = ημχ συνχ + 3 y II) B = x + y 5 c + 2x (β) Ποιο είναι το αποτέλεσμα των πιο κάτω εκφράσεων στη γλώσσα προγραμματισμού Pascal; Ι) TRUNC(8.5) + 2 DIV SUCC(1) ΙΙ) 10 + 27 MOD 6 (γ) A, B και C είναι μεταβλητές τύπου Boolean και παίρνουν τις πιο κάτω τιμές: A := False; B := True; C := False; Να γράψετε τις τιμές των πιο κάτω εκφράσεων: Ι) A AND C OR B AND C ΙΙ) NOT C OR A AND B Πρόβλημα 3 Να γράψετε πρόγραμμα στη γλώσσα προγραμματισμού Pascal, το οποίο να διαβάζει τυχαίους ακέραιους αριθμούς που δίνονται από το χρήστη. Το πρόγραμμα να υπολογίζει και να παρουσιάζει το μέσο όρο των αριθμών. Η επανάληψη να τερματίζει όταν δοθεί αριθμός που να είναι ίδιος με τον αμέσως προηγούμενο. Σημειώσεις: (1) Σε περίπτωση που οι δυο πρώτοι αριθμοί είναι ίσοι να παρουσιάζεται το μήνυμα ΑΡΙΘΜΟΙ ΙΣΟΙ και το πρόγραμμα να τερματίζει. (2) Στο μέσο όρο δεν πρέπει να συμπεριλαμβάνεται ο τελευταίος αριθμός. 2/9
Πρόβλημα 4 α) Χρησιμοποιώντας τη μέθοδο της προκαταρκτικής εκτέλεσης να παρουσιάσετε τα αποτελέσματα του πιο κάτω προγράμματος που είναι γραμμένο στη γλώσσα προγραμματισμού Pascal. (3 βαθμοί) program problem4; uses wincrt; var x, y: integer; Function one(a, b: integer): string; begin If a <> b then one := 'MAYRO' else one := 'ASPRO' end; begin x := 1; y := 5; repeat x := x + 1; y := y - 1; if x = y then writeln(one(x, y)) else writeln(one(y, x)) until x = y end. β) Να σχεδιάσετε το αντίστοιχο λογικό διάγραμμα για το πιο πάνω πρόγραμμα. (3 βαθμοί) 3/9
Πρόβλημα 5 To πιο κάτω πρόγραμμα στη γλώσσα προγραμματισμού Pascal χρησιμοποιεί ένα δισδιάστατο πίνακα 3 x 4, στον οποίο αποθηκεύονται τυχαίοι πραγματικοί αριθμοί που ζητούνται από το χρήστη. Στο πρόγραμμα υπάρχουν 4 λάθη (λογικά ή/και συντακτικά). Να ξαναγράψετε το πρόγραμμα στο τετράδιό σας διορθώνοντας τα λάθη και να υπογραμμίσετε τις διορθώσεις. program provlima5; uses wincrt; type store = array [3, 4] of real; var store : apo; r, c : real; begin For r := 1 to 3 do For c := 1 to 4 do writeln('doste ena arithmo'); readln(apo[r, c]) end. Πρόβλημα 6 Να γράψετε πρόγραμμα στη γλώσσα προγραμματισμού Pascal, το οποίο να ζητά από το χρήστη τυχαίες ακέραιες τιμές και να τις τοποθετεί σε ένα τετραγωνικό δισδιάστατο πίνακα 3 x 3. Ακολούθως, θα καλείται μια Διαδικασία, η οποία να δέχεται από το κυρίως πρόγραμμα ως παράμετρο τιμών τον τετραγωνικό πίνακα 3 x 3 και να επιστρέφει στο κυρίως πρόγραμμα ως παράμετρο αναφοράς το άθροισμα των τιμών της κύριας διαγωνίου του τετραγωνικού πίνακα. Το πρόγραμμα να παρουσιάζει το άθροισμα. Κύρια Διαγώνιος Πρόβλημα 7 Να γράψετε Συνάρτηση στη γλώσσα προγραμματισμού Pascal, η οποία να δέχεται ένα τυχαίο ακέραιο αριθμό και να επιστρέφει TRUE αν ο αριθμός είναι πολλαπλάσιο του 5 ή του 7. Σε διαφορετική περίπτωση να επιστρέφει FALSE. 4/9
Πρόβλημα 8 Δίνεται το πιο κάτω λογικό διάγραμμα: ΑΡΧΗ Διάβασε x Διάβασε z Ψευδής y x * z x 0 ΚAI x z Αληθής y z - x Τύπωσε x, y, z Ψευδής y = 0 Αληθής ΤΕΛΟΣ (α) Με τη χρήση προκαταρκτικής εκτέλεσης να παρουσιάσετε τα αποτελέσματα του λογικού διαγράμματος χρησιμοποιώντας δεδομένα με την ακόλουθη σειρά: -2, 3, 4, 2, 5, 5, -6, -4 (3 βαθμοί) (β) Να μετατρέψετε το πιο πάνω λογικό διάγραμμα στο αντίστοιχο πρόγραμμα στη γλώσσα προγραμματισμού Pascal. (3 βαθμοί) 5/9
Πρόβλημα 9 Δίνεται το πιο κάτω μέρος προγράμματος στη γλώσσα προγραμματισμού Pascal, το οποίο δέχεται από το χρήστη δύο τυχαίους ακέραιους αριθμούς και τους τοποθετεί στις μεταβλητές x και y αντίστοιχα. Ακολούθως χρησιμοποιεί τη Διαδικασία swap, όπου ανταλλάσσει τις τιμές των δύο μεταβλητών. Το κυρίως πρόγραμμα παρουσιάζει τις τιμές των δύο μεταβλητών μετά την ανταλλαγή. Να συμπληρώσετε τη Διαδικασία swap και το κυρίως πρόγραμμα ούτως ώστε να ολοκληρωθεί το πρόγραμμα (χωρίς να αλλάξετε ή να διαγράψετε μέρος του προγράμματος που δίνεται). Σημείωση: Να γράψετε το ολοκληρωμένο πρόγραμμα στο τετράδιό σας. program problem9; uses wincrt; var x, y : integer; Procedure swap(var a, b : integer); begin writeln('doste 2 arithmous'); readln(x, y); Πρόβλημα 10 (α) Σε ποια φάση θα πρέπει να εξακριβωθούν οι πραγματικές ανάγκες του πελάτη; Να αναφέρετε δύο τεχνικές που μπορούν να χρησιμοποιηθούν για τον εντοπισμό των πραγματικών αναγκών. (β) Ποια φάση καθορίζει πως το σύστημα θα κάνει αυτά που έχουν προδιαγραφεί στη φάση του καθορισμού των προδιαγραφών; (γ) Να αναφέρετε δύο λογικά λάθη που μπορεί να παρουσιαστούν σε Διαγράμματα Ροής Δεδομένων. 6/9
Πρόβλημα 1 Ενότητα Β Το λογιστήριο μιας εταιρείας θέλει να δημιουργήσει ένα πρόγραμμα που να βρίσκει τον απαραίτητο αριθμό χαρτονομισμάτων για τη μισθοδοσία του προσωπικού της. Να σχεδιάσετε λογικό διάγραμμα και να γράψετε το αντίστοιχο πρόγραμμα στη γλώσσα προγραμματισμού Pascal, το οποίο να: (α) Διαβάζει το μισθό του κάθε εργαζόμενου (να θεωρήσετε ότι ο μισθός είναι ακέραιος αριθμός). Το πρόγραμμα να τερματίζει αν δοθεί αρνητική τιμή για μισθό. (β) Υπολογίζει και παρουσιάζει τον αριθμό των χαρτονομισμάτων των 20, των 10, των 5 και της 1 που αντιστοιχεί στο μισθό κάθε εργαζομένου με τον ελάχιστο αριθμό χαρτονομισμάτων. Δηλαδή, αν ο μισθός ενός εργαζόμενου είναι 127, αυτός αντιστοιχεί με 6 χαρτονομίσματα των 20, 1 χαρτονόμισμα των 5 και 2 χαρτονομίσματα της 1. (γ) Εμφανίζει το άθροισμα όλων των χαρτονομισμάτων για κάθε κατηγορία για όλους τους εργαζομένους. Δηλαδή, το σύνολο των χαρτονομισμάτων για τα 20, το σύνολο των χαρτονομισμάτων για τα 10, κτλ. για όλους τους εργαζόμενους. Το πρόγραμμα πρέπει να τυπώνει τα κατάλληλα μηνύματα και επικεφαλίδες για τα πιο πάνω αποτελέσματα. Πρόβλημα 2 Στο διαγωνισμό πρόσληψης προσωπικού σε ένα Οργανισμό έλαβαν μέρος 140 υποψήφιοι, οι οποίοι εξετάστηκαν σε τρία μαθήματα. Ο Οργανισμός θα προσλάβει τους 10 πρώτους υποψήφιους με το μεγαλύτερο μέσο όρο των τριών βαθμολογιών. Να γράψετε πρόγραμμα στη γλώσσα προγραμματισμού Pascal, το οποίο να: (α) Διαβάζει από το πληκτρολόγιο το όνομα του κάθε υποψήφιου και να το καταχωρεί σε μονοδιάστατο πίνακα. Στη συνέχεια να διαβάζει τους αντίστοιχους βαθμούς των υποψηφίων σε κάθε μάθημα και να τους καταχωρεί σε δισδιάστατο πίνακα με τρεις στήλες. Η κάθε στήλη αντιστοιχεί με τη βαθμολογία κάθε μαθήματος. Ο δισδιάστατος πίνακας είναι παράλληλος με το μονοδιάστατο πίνακα. (β) Υπολογίζει το μέσο όρο της βαθμολογίας κάθε υποψήφιου και τον τοποθετεί σε μονοδιάστατο πίνακα που είναι παράλληλος με τους δύο προηγούμενους πίνακες. (γ) Βρίσκει τη μεγαλύτερη βαθμολογία στο πρώτο μάθημα και να την παρουσιάζει μαζί με το όνομα του υποψηφίου. (δ) Εμφανίζει τα ονόματα των υποψηφίων που πρόκειται να προσληφθούν. Το πρόγραμμα πρέπει να τυπώνει τα κατάλληλα μηνύματα και επικεφαλίδες για τα πιο πάνω αποτελέσματα. 7/9
Πρόβλημα 3 Η δημοτική βιβλιοθήκη του δήμου σας πρόκειται να μηχανογραφηθεί. Κατά τη φάση της Εξακρίβωσης Αναγκών και του Καθορισμού Απαιτήσεων, έχουν εξακριβωθεί τα πιο κάτω χαρακτηριστικά τα οποία πρέπει να διαθέτει το Πληροφοριακό Σύστημα: Όταν ένα μέλος προσέλθει για πρώτη φορά στη βιβλιοθήκη, δίνει τα προσωπικά του στοιχεία (ονοματεπώνυμο, φύλο, διεύθυνση, τηλέφωνο και ημερομηνία γέννησης), τα οποία μαζί με ένα κωδικό που θα δημιουργηθεί αυτόματα από το σύστημα, θα καταχωρηθούν στο Αρχείο Μητρώου Μελών. Αφού καταχωρηθούν τα στοιχεία αυτά, θα εκδίδεται ατομική κάρτα μέλους, η οποία θα δίδεται στο μέλος και η οποία θα του εξασφαλίζει την είσοδο του στη βιβλιοθήκη. Κάθε φορά που το μέλος προσέρχεται στη βιβλιοθήκη παρουσιάζει την κάρτα του και ο υπάλληλος καταχωρεί τα στοιχεία κωδικός μέλους και ημερομηνία προσέλευσης στο Αρχείο Προσέλευσης Μελών. Σε περίπτωση που κάποιο μέλος θέλει να δανειστεί ένα βιβλίο, ο υπάλληλος ελέγχει αν οι υποχρεώσεις του μέλους έχουν εκπληρωθεί, δηλαδή, αν έχει επιστρέψει τα βιβλία που είχε δανειστεί προηγουμένως στον απαιτούμενο χρόνο (που είναι ένας μήνας) και δεν έχει δανειστεί περισσότερα από τρία βιβλία ταυτόχρονα. Αν το μέλος έχει εκπληρώσει τις υποχρεώσεις τότε ο υπάλληλος καταχωρεί στο Αρχείο Δανεισμού Βιβλίων τον κωδικό του μέλους, τον κωδικό του βιβλίου και την ημερομηνία δανεισμού. Διαφορετικά, δίνεται επιστολή στο μέλος που του κοινοποιεί ότι δεν μπορεί να δανειστεί βιβλία χωρίς να εκπληρώσει τις υποχρεώσεις του. Όταν κάποιο μέλος επιστρέψει κάποιο βιβλίο, τότε ο υπάλληλος χρησιμοποιώντας τον κωδικό του βιβλίου, καταχωρεί την ημερομηνία επιστροφής του βιβλίου στο Αρχείο Δανεισμού Βιβλίων. Στο τέλος κάθε βδομάδας, το σύστημα θα τυπώνει κατάλογο μελών που δεν έχουν εκπληρώσει τις υποχρεώσεις τους και θα παραδίδεται στον υπεύθυνο της βιβλιοθήκης. Στο τέλος της ημέρας, το σύστημα θα δημιουργεί κατάλογο με τους κωδικούς και τα ονόματα των μελών που επισκέφτηκαν τη βιβλιοθήκη και θα παραδίδεται στον υπεύθυνο της βιβλιοθήκης. (α) (β) Να σχεδιάσετε το Διάγραμμα Ροής Δεδομένων για την λειτουργία που περιγράφηκε πιο πάνω. Να επεξηγήσετε την πρώτη και την τελευταία Διαδικασία. 8/9
ΤΥΠΟΛΟΓΙΟ ΣΥΝΑΡΤΗΣΕΩΝ ΣΤΗΝ PASCAL Όνομα Περιγραφή Τύπος πραγματικής παραμέτρου ABS Απόλυτη τιμή ή Τύπος αποτελέσματος ARCTAN Τόξο εφαπτομένης ή CHR Χαρακτήρας κωδικού CHAR COS Συνημίτονο ή EXP Εκθετική συνάρτηση ή LN Λογάριθμος ή ODD Ελέγχει για περιττή τιμή ORD Κωδικός χαρακτήρα CHAR PRED Προηγούμενος CHAR CHAR ROUND Στρογγυλοποίηση SIN Ημίτονο ή SQR Τετράγωνο ή SQRT Τετραγωνική Ρίζα ή SUCC Επόμενος CHAR CHAR TRUNC Αποκοπή δεκαδικών ψηφίων Τέλος Εξεταστικού Δοκιμίου 9/9