Θέμα-Α (40 μονάδες)
Α1. Να γράψετε στο τετράδιο σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις και δίπλα (Σ) αν είναι σωστή, ή (Λ), αν είναι λανθασμένη. (10 μονάδες)
- Το σύμβολο ! στην αρχή μίας γραμμής προγράμματος δηλώνει συνεχόμενη εντολή που δεν χωράει στην προηγούμενη γραμμή.
- Στις εντολές ΑΝ πάντα θα εκτελείται τουλάχιστον μία εντολή.
- Στο πρόγραμμα δηλώνουμε δομές δεδομένων, στον Αλγόριθμο όχι
- Η δυαδική αναζήτηση εφαρμόζεται μόνο σε ταξινομημένους πίνακες
- Ένα αρχείο με εγγραφές μπορεί να έχει πολλά δευτερεύοντα κλειδιά
- Το πεδίο μιας εγγραφής ενός αρχείου, που ταυτοποιεί την εγγραφή μοναδικά μέσα στο αρχείο, ονομάζεται πρωτεύον κλειδί (primary key).
- Η εντολή Για i από -1 μέχρι -1 με βήμα 0 θα κάνει ακριβώς μία επανάληψη.
- Στις δυναμικές δομές ο αριθμός των κόμβων τους είναι σταθερός
- Η στοίβα χρόνου εκτέλεσης δημιουργείται όταν τουλάχιστον ένα υποπρόγραμμα είναι ενεργό και εκτελείται.
- Λεξιλόγιο είναι το σύνολο των μοναδικών, βασικών στοιχείων που χρησιμοποιεί η γλώσσα για να δημιουργεί λέξεις και προτάσεις.
Α2. Να αποδώσετε αλγοριθμικά τις κάτωθι προτάσεις: (5 μονάδες)
- Προσαύξησε την τιμή του α κατά την τετραγωνική ρίζα της τρίτης δύναμης του β.
- Αν ο γραπτός βαθμός (ΓΡ) στο μάθημα ΑΕΠΠ είναι μεγαλύτερος του μέσου προφορικού(ΜΠΡ) πέραν των δύο(2) μονάδων τότε ο μέσος προφορικός διορθώνεται ώστε η διαφορά με τον γραπτό να είναι δύο(2) μονάδες. (2 μονάδες)
- Αν το εισόδημα(ΕΙΣ) είναι ίσο ή μεγαλύτερο του μέσου εισοδήματος(ΜΕ) μέχρι 10000 ευρώ να το απομειώνεις κατά 3000 ευρώ, διαφορετικά αν είναι μικρότερο του (ΜΕ) να το προσαυξάνεις κατά 2000 ευρώ. (2 μονάδες)
Α3. Συμπληρώστε την δεύτερη στήλη του κάτωθι πίνακα. (10 μονάδες)
Κώδικας | Γράψτε δίπλα στον αριθμό της εντολής Συντακτικό ή Λογικό αν υπάρχει λάθος και αιτιολογείστε το. Αν δεν υπάρχει βάλτε – |
|
|
Α4. Να μετατρέψετε το κάτωθι διάγραμμα ροής σε ΓΛΩΣΣΑ (5 μονάδες)
Α5. Να μετατρέψετε το κάτωθι αδόμητο τμήμα αλγορίθμου και να το ξαναγράψετε σύμφωνα με τις αρχές του δομημένου προγραμματισμού. (10 μονάδες)
x=0 y=0 10: ΑΝ x>20 GOTO 50 y=y+2*x^2+1 c=0 20: c=c+3*y ΑΝ x mod 2 = 1 GOTO 30 n=n+1 GOTO 40 30: p=p+1 40: ΑΝ c <= y GOTO 20 Εκτύπωσε c x=x+1 GOTO 10 50: Εμφάνισε y,c |
Θέμα-Β (20 μονάδες)
Δίνεται το κάτωθι πρόγραμμα και υποπρόγραμμα:
ΠΡΟΓΡΑΜΜΑ Κύριο
ΜΕΤΑΒΛΗΤΕΣ
Ακέραιες: Ι, Ν
ΑΡΧΗ
Ι ← 1
ΟΣΟ Ι < 7 ΕΠΑΝΑΛΑΒΕ
ΔΙΑΒΑΣΕ Ν
ΓΡΑΨΕ Ι, Ν, Συν1(Ν)
Ι ← Ι + 3
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘save the whales’
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!- – – – – – – – – – – – – –
ΣΥΝΑΡΤΗΣΗ Συν1(x) : Ακέραια
ΜΕΤΑΒΛΗΤΕΣ
Ακέραιες: X, F, I
ΑΡΧΗ
F ← 1
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Χ
F ← F*I
ΓΡΑΨΕ I, F
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Συν1 ← F
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
1) Αν για είσοδο μας δίνονται οι τιμές: 4, 5, 6 τι θα εκτυπωθεί στην οθόνη.
2) Να ξαναγράψετε ισοδύναμα το ανωτέρω πρόγραμμα με αλγόριθμο.
Θέμα-Γ (20 μονάδες)
Το ελαιοτριβείο “ΕΛΑΙΑ” λειτουργεί για 30-ημέρες από την 1η Νοεμβρίου, κάθε χρόνο. Οι ελαιοπαραγωγοί μεταφέρουν σε αυτό φορτία καρπού ελιάς, σε 24ωρη βάση, για να βγάλουν το λάδι τους. Οι ποικιλίες ελιάς της περιοχής είναι “ΜΑΝΑΚΙ” και “ΛΑΔΟΕΛΙΑ”. Ένας ελαιοπαραγωγός μπορεί την ίδια μέρα να προσκομίσει στο λιοτρίβι μόνο ένα φορτίο καρπού ενώ κάποια μέρα μπορεί και καθόλου.
Να γραφεί πρόγραμμα το οποίο:
- Για κάθε μία μέρα από τις 30 θα διαβάζει το όνομα του ελαιοπαραγωγού, το φορτίο καρπού σε κιλά και την ποικιλία με έλεγχο ορθότητας μέχρι να δοθεί όνομα “ΤΕΛΟΣ”.
- Για κάθε ελαιοπαραγωγό:
- Θα υπολογίζει το παραγόμενο λάδι ως εξής: Το ΜΑΝΑΚΙ δίνει 1 κιλό λάδι ανά 5 κιλά ελιάς, ενώ η ΛΑΔΟΕΛΙΑ δίνει 1 κιλό λάδι ανά 3 κιλά ελιάς.
- Το λιοτρίβι χρεώνει 0.25€ ανά κιλό παραγόμενου λαδιού ή αν πληρώνεται σε λάδι τότε το λιοτρίβι κρατάει σαν δικαίωμα το 10% του παραγόμενου λαδιού.
- Να ρωτάει τον ελαιοπαραγωγό αν θέλει να δώσει λάδι για πληρωμή με αποδεκτή απάντηση ΝΑΙ/ΟΧΙ και ανάλογα να τον χρεώνει και να τυπώνει το ποσό ή το δικαίωμα σε λάδι. Δεν χρειάζεται έλεγχος ορθότητας.
- Στο τέλος της ημέρας να τυπώνει το όνομα του παραγωγού με το μεγαλύτερο φορτίο και από ποια ποικιλία ήταν.
- Για κάθε ελαιοπαραγωγό:
- Στο τέλος της περιόδου να υπολογίζει και να τυπώνει:
- Πόσα φορτία εξυπηρετήθηκαν από κάθε ποικιλία καθώς και τα συνολικά κιλά τους.
- Πόσα χρήματα εισέπραξε το λιοτρίβι και πόσα κιλά λάδι σαν δικαίωμα.
- Πόσες μέρες το λιοτρίβι δεν εισέπραξε καθόλου χρήματα.
- Ποια μέρα είχαμε το μεγαλύτερο φορτίο αν το λιοτρίβι άνοιξε ημέρα Σάββατο.
Θέμα-Δ (20 μονάδες)
100 μαθητές διαγωνίζονται σε ένα κουίζ (Σ)ωστό-(Λ)άθος-(Δ)εν ξέρω, 20 ερωτήσεων. Κάθε σωστή απάντηση παίρνει 2 βαθμούς κάθε λάθος -1 και το Δεν ξέρω 0.
Να γράψετε πρόγραμμα το οποίο:
Δ1. Θα καταγράφει σε έναν μονοδιάστατο πίνακα ΟΝ[100] τα ονόματα των μαθητών, Σε πίνακα ΑΠ[100,20] τις απαντήσεις των μαθητών σε κάθε ερώτηση με έλεγχο ορθότητας και σε πίνακα ΣΛ[20] τις σωστές απαντήσεις των 20-ερωτήσεων.
Δ2. Θα εκτυπώνει τα ονόματα των μαθητών που συγκέντρωσαν την μεγαλύτερη βαθμολογία.
Δ3. Θα εκτυπώνει τους αριθμούς των 5 – ερωτήσεων με τον μικρότερο βαθμό δυσκολίας.
Δ4. Θα διαβάζει το όνομα ενός μαθητή και αν αυτό υπάρχει να εκτυπώνει την βαθμολογία του, αν όχι κατάλληλο μήνυμα.
Δ5. Πόσες ερωτήσεις απαντήθηκαν λάθος από όλους τους μαθητές.
Μπάμπης Μπουλής
Master of Science in Computer Engineering