Θέμα Α, Ερώτημα 1
Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα, τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη.
- Η επίλυση της δευτεροβάθμιας εξίσωσης αποτελεί ένα αδόμητο πρόβλημα.
- Η εντολή Αρχή_επανάληψης .. Μέχρις_ότου εκτελείται οπωσδήποτε μία φορά.
- Τα στοιχεία των στατικών δομών δεδομένων αποθηκεύονται σε μη συνεχόμενες θέσεις μνήμης.
- Οι μεταβλητές που χρησιμοποιούνται σ’ ένα πρόγραμμα αντιστοιχούνται από το μεταγλωττιστή σε συγκεκριμένες θέσεις μνήμης του υπολογιστή.
- Η ακολουθιακή δομή εντολών χρησιμοποιείται, όταν είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών.
Μονάδες 10
Θέμα Α, Ερώτημα 2
Να αναφέρετε επιγραμματικά πέντε από τα πλεονεκτήματα του δομημένου προγραμματισμού.
Μονάδες 10
ΑΠΑΝΤΗΣΗ (5 από τα παρακάτω 6)
- Δημιουργία απλούστερων προγραμμάτων.
- Άμεση μεταφορά των αλγορίθμων σε προγράμματα.
- Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.
- Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.
- Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.
- Ευκολότερη διόρθωση και συντήρηση.
Θέμα Α, Ερώτημα 3
Δίνεται το παρακάτω τμήμα αλγορίθμου:
Αν x > 0 ή y > 0 τότε Εμφάνισε “Ένας τουλάχιστον θετικός αριθμός” Αλλιώς_αν x < 0 και y < 0 τότε Εμφάνισε “Δύο αρνητικοί αριθμοί” Τέλος_αν
Να γράψετε στο τετράδιό σας τμήμα αλγορίθμου το οποίο να παράγει το ίδιο αποτέλεσμα με το παραπάνω, χρησιμοποιώντας μόνο τις λογικές συνθήκες x > 0, x < 0, y > 0, y < 0 και χωρίς να χρησιμοποιήσετε λογικούς τελεστές.
Μονάδες 7
ΛΥΣΗ
Αν x > 0 τότε Εμφάνισε 'Ένας τουλάχιστον θετικός αριθμός' Αλλιώς_αν y > 0 τότε Εμφάνισε 'Ένας τουλάχιστον θετικός αριθμός' Αλλιώς Αν x < 0 Αν y < 0 Εμφάνισε 'Δύο αρνητικοί αριθμοί' Τέλος_αν Τέλος_αν Τέλος_αν
Θέμα Α, Ερώτημα 4
Να γράψετε συμπληρωμένο κατάλληλα στο τετράδιό σας το παρακάτω τμήμα αλγορίθμου, ώστε να εμφανίζει διαδοχικά τις τιμές: 2, 4, 8, 10, 14.
Για Ι από ……… μέχρι ……… με_βήμα ……… Αν ……… και ……… τότε Εμφάνισε Ι Τέλος_αν Τέλος_επανάληψης
Μονάδες 5
ΛΥΣΗ
Για Ι από …2… μέχρι …14… με_βήμα …2… Αν …Ι MOD 2 = 0… και …I MOD 3 <> 0… τότε Εμφάνισε Ι Τέλος_αν Τέλος_επανάληψης
Θέμα Α, Ερώτημα 5
Στήλη Α | Στήλη Β |
1. X DIV 1000 = 0 | α. Βρίσκει την τιμή του ψηφίου των χιλιάδων. |
2. X DIV 1000 MOD 10 | β. Ελέγχει αν ο αριθμός έχει τουλάχιστον τρία ψηφία. |
3. X DIV 100 <> 0 | γ. Βρίσκει την τιμή του ψηφίου των εκατοντάδων. |
4. X MOD 1000 DIV 100 | δ. Ελέγχει αν ο αριθμός έχει το πολύ τρία ψηφία. |
Μονάδες 8
ΛΥΣΗ
01 | ΔΙΑΒΑΣΕ X |
02 | ΠΛ<– 0 |
03 | ΑΡ <– 1 |
04 | ΔΕ <– 12 |
05 | Β <– ΨΕΥΔΗΣ |
ΟΣΟ Β = ΨΕΥΔΗΣ ΚΑΙ ΑΡ <= ΔΕ ΕΠΑΝΑΛΑΒΕ | |
06 | Μ <– (ΑΡ + ΔΕ) DIV 2 |
AN A[M] = X TOTE | |
07 | B <– ΑΛΗΘΗΣ |
ΑΛΛΙΩΣ_ΑΝ Α[Μ] < Χ ΤΟΤΕ | |
08 | ΑΡ <– Μ + 1 |
ΑΛΛΙΩΣ | |
09 | ΔΕ <– Μ – 1 |
ΤΕΛΟΣ ΑΝ | |
10 | ΠΛ <– ΠΛ + 1 |
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | |
ΑΝ Β = ΑΛΗΘΗΣ ΤΟΤΕ | |
11 | ΕΜΦΑΝΙΣΕ Μ |
ΑΛΛΙΩΣ | |
12 | ΕΜΦΑΝΙΣΕ “ΔΕΝ ΒΡΕΘΗΚΕ”, ΠΛ |
ΤΕΛΟΣ_ΑΝ |
Για την παρακολούθηση της εκτέλεσης του τμήματος αλγορίθμου με τιμή εισόδου Χ = 35 και με δεδομένο τον πίνακα
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
Α | 3 | 10 | 18 | 20 | 26 | 32 | 35 | 48 | 55 | 60 | 75 | 90 |
- Στη στήλη με τίτλο «Αρ. Γρ.» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.
- Στη στήλη με τίτλο «Έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται είναι εντολή εξόδου.
- Οι υπόλοιπες στήλες του πίνακα τμήματος του αλγορίθμου αντιστοιχούν στις μεταβλητές του τμήματος του αλγορίθμου.
Αρ.Γρ. | Χ | ΠΛ | ΑΡ | ΔΕ | Β | Μ | Έξοδος |
01 | 35 | ||||||
02 | 0 | ||||||
03 | 1 | ||||||
04 | 12 | ||||||
05 | ΨΕΥΔΗΣ | ||||||
… | …… |
Να μεταφέρετε τον πίνακα τιμών στο τετράδιό σας και να προσθέσετε τις γραμμές που χρειάζονται, συνεχίζοντας την εκτέλεση του τμήματος αλγορίθμου ως εξής: για κάθε αριθμημένη εντολή που εκτελείται, να γράψετε τον αριθμό της γραμμής της εντολής σε νέα γραμμή του πίνακα και το αποτέλεσμα της εκτέλεσης της εντολής στην αντίστοιχη στήλη.
Μονάδες 10
ΛΥΣΗ
Αρ.Γρ. | Χ | ΠΛ | ΑΡ | ΔΕ | Β | Μ | Έξοδος |
01 | 35 | ||||||
02 | 0 | ||||||
03 | 1 | ||||||
04 | 12 | ||||||
05 | ΨΕΥΔΗΣ | ||||||
06 | 6 | ||||||
08 | 7 | ||||||
10 | 1 | ||||||
06 | 9 | ||||||
09 | 8 | ||||||
10 | 2 | ||||||
06 | 7 | ||||||
07 | ΑΛΗΘΗΣ | ||||||
10 | 3 | ||||||
11 | 7 |
Θέμα Β, Ερώτημα 2
Δίνεται ο πίνακας αριθμών Χ[50], ταξινομημένος κατά φθίνουσα σειρά, και ο πίνακας Υ[100], ταξινομημένος κατά αύξουσα σειρά. Να θεωρήσετε ότι οι τιμές κάθε πίνακα είναι διαφορετικές μεταξύ τους και ότι οι δύο πίνακες δεν έχουν κοινές τιμές.
Το παρακάτω ημιτελές τμήμα αλγορίθμου δημιουργεί ένα νέο πίνακα Ζ[10], ταξινομημένο σε φθίνουσα σειρά, με τις δέκα μεγαλύτερες τιμές από τις εκατόν πενήντα (150) τιμές των δύο πινάκων.
i <--…(1)… j <-- …(2)… Για k από 1 μέχρι 10 Αν Χ[ i ] …(3)… Υ[ j ] τότε Ζ[ k ] <-- Χ[ i ] i <-- i …(4)… 1 Αλλιώς Ζ[ k ] <-- Υ[ j ] j <-- j …(5)… 1 Τέλος_αν Τέλος_επανάληψης
Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (5), που αντιστοιχούν στα κενά του αλγορίθμου, και, δίπλα σε κάθε αριθμό, ό,τι πρέπει να συμπληρωθεί, ώστε το τμήμα αλγορίθμου να επιτελεί τη λειτουργία που περιγράφεται.
Μονάδες 10
ΛΥΣΗ
i ← 1 j ← 100 Για k από 1 μέχρι 10 Αν Χ[i] > Υ[j] τότε Ζ[k] ← Χ[i] i ← i + 1 Αλλιώς Ζ[k] ← Υ[j] j ← j - 1 Τέλος_αν Τέλος_επανάληψης
ΘΕΜΑ Γ.
Ένας μαθητής αγόρασε έναν εξωτερικό δίσκο χωρητικότητας 1000 GB, προκειμένου να αποθηκεύσει σε αυτόν ψηφιακά αρχεία.
Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο:
Γ1.
α. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων. (μονάδες 2)
β. Για κάθε ψηφιακό αρχείο που θέλει να αποθηκεύσει ο μαθητής στον εξωτερικό δίσκο, να διαβάζει το όνομά του και το μέγεθός του (σε GB) και να ελέγχει, αν επαρκεί η διαθέσιμη χωρητικότητα του εξωτερικού δίσκου. Εφόσον επαρκεί, να εμφανίζει το μήνυμα «Επιτρεπτή αποθήκευση» και να υπολογίζει τη νέα διαθέσιμη χωρητικότητα του εξωτερικού δίσκου. Να τερματίζει τον έλεγχο της αποθήκευσης ψηφιακών αρχείων στον εξωτερικό δίσκο, όταν το μέγεθος του αρχείου που θέλει να αποθηκεύσει ο μαθητής είναι μεγαλύτερο από τη διαθέσιμη χωρητικότητα του εξωτερικού δίσκου. (μονάδες 6)
Μονάδες 8
Γ2. Να υπολογίζει και να εμφανίζει το ποσοστό του αριθμού των αρχείων που αποθηκεύτηκαν και έχουν μέγεθος μεγαλύτερο των 10 GB.
Μονάδες 4
Γ3. Να βρίσκει και να εμφανίζει τα ονόματα των δύο μικρότερων σε μέγεθος αρχείων που αποθηκεύτηκαν στον εξωτερικό δίσκο.
Μονάδες 8
Να θεωρήσετε ότι:
α) θα αποθηκευτούν τουλάχιστον δύο αρχεία στον εξωτερικό δίσκο,
β) τα μεγέθη όλων των αρχείων που αποθηκεύονται, είναι διαφορετικά μεταξύ τους.
ΛΥΣΗ
Η άσκηση στηρίζεται στη λογική της ΔΣ3 κεφάλαιο 2.
ΠΡΟΓΡΑΜΜΑ G16ImerisiaPalaio ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Χωρητικότητα, Μέγεθος, Πλήθος_Αρχείων, Πλήθος_10Άνω, Min1, Min2 ΠΡΑΓΜΑΤΙΚΕΣ: Ποσοστό ΧΑΡΑΚΤΗΡΕΣ: Όνομα, Όνομα_Min1, Όνομα_Min2 ΛΟΓΙΚΕΣ: Τέλος_Αποθήκευσης ΑΡΧΗ ! Γ1 Πλήθος_Αρχείων <-- 0 Πλήθος_10Άνω <-- 0 Χωρητικότητα <-- 1000 Τέλος_Αποθήκευσης <-- ΨΕΥΔΗΣ Min1 <-- 1001 ! Βλέπε παράδειγμα 3, Κεφάλαιο 2 Min2 <-- 1002 Όνομα_Min1 <-- 'ΤΥΧΑΙΟ' ! Σημαντική Λεπτομέρεια που δυστυχώς παραλείπεται συχνά ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'ΔΩΣΤΕ ΟΝΟΜΑ ΑΡΧΕΙΟΥ: ' ΔΙΑΒΑΣΕ Όνομα ΓΡΑΨΕ 'ΔΩΣΤΕ ΜΕΓΕΘΟΣ ΑΡΧΕΙΟΥ: ' ΔΙΑΒΑΣΕ Μέγεθος ΑΝ Χωρητικότητα - Μέγεθος > 0 ΤΟΤΕ Χωρητικότητα <-- Χωρητικότητα - Μέγεθος Πλήθος_Αρχείων <-- Πλήθος_Αρχείων + 1 ! Γ2 ΓΡΑΨΕ 'Επιτρεπτή αποθήκευση' ΑΝ Μέγεθος > 10 ΤΟΤΕ ! Γ2 Πλήθος_10Άνω <-- Πλήθος_10Άνω + 1 ΤΕΛΟΣ_ΑΝ ! Γ3 ΑΝ Μέγεθος < Min2 ΤΟΤΕ ΑΝ Μέγεθος < Min1 ΤΟΤΕ Min2 <-- Min1 Όνομα_Min2 <-- Όνομα_Min1 Min1 <-- Μέγεθος Όνομα_Min1 <-- Όνομα ΑΛΛΙΩΣ Min2 <-- Μέγεθος Όνομα_Min2 <-- Όνομα ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΑΛΛΙΩΣ Τέλος_Αποθήκευσης <-- ΑΛΗΘΗΣ ΤΕΛΟΣ_ΑΝ ΜΕΧΡΙΣ_ΟΤΟΥ (Τέλος_Αποθήκευσης = ΑΛΗΘΗΣ) ! Γ2 Ποσοστό <-- Πλήθος_10Άνω / Πλήθος_Αρχείων * 100 ΓΡΑΨΕ 'Ποσοστό Αρχείων Άνω των 10GB: ', Ποσοστό ! Γ3 ΓΡΑΨΕ 'Μικρότερο Αρχείο 1: ', Όνομα_Min1, ' Χωρητικότητα: ', Min1 ΓΡΑΨΕ 'Μικρότερο Αρχείο 2: ', Όνομα_Min2, ' Χωρητικότητα: ', Min2 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΘΕΜΑ Δ.
Μια περιβαλλοντική οργάνωση έχει εκπαιδεύσει δέκα (10) εθελοντές οι οποίοι θα ενημερώσουν το κοινό σε θέματα που αφορούν την προστασία του περιβάλλοντος.
Να γράψετε πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο:
Δ1.
α. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων. (μονάδα 1)
β. Για κάθε εθελοντή, να διαβάζει το όνομά του και τον αριθμό των ατόμων που ενημέρωσε κάθε μήνα, στη διάρκεια του προηγούμενου έτους (δεν απαιτείται έλεγχος εγκυρότητας). (μονάδες 2)
Μονάδες 3
Δ2. Για κάθε μήνα, να εμφανίζει το συνολικό αριθμό ατόμων που ενημέρωσαν οι δέκα (10) εθελοντές. Ο υπολογισμός του συνολικού αριθμού ατόμων, που ενημέρωσαν κάθε μήνα, να γίνει με κλήση κατάλληλης συνάρτησης.
Μονάδες 3
Δ3. Να εμφανίζει τα ονόματα των τριών εθελοντών που ενημέρωσαν τα περισσότερα άτομα, κατά τη διάρκεια του προηγούμενου έτους. Να θεωρήσετε ότι κάθε εθελοντής ενημέρωσε διαφορετικό συνολικό αριθμό ατόμων κατά τη διάρκεια του έτους.
Μονάδες 9
Δ4. Να κατασκευάσετε τη συνάρτηση του ερωτήματος Δ2.
Μονάδες 5
Να θεωρήσετε ότι κάθε άτομο ενημερώνεται μόνο από έναν εθελοντή.
ΛΥΣΗ
Αρχείο Δεδομένων (Γλωσσομάθεια)
ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ_16_ΗΜ_ΠΑΛ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: i, j, ΑΤΟΜΑ[10,12], Πλήθος, temp, Σύνολο_Έτους[10] ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[10], temp2 ΑΡΧΗ ! Δ1 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ 'ΔΩΣΤΕ ΟΝΟΜΑ ΕΘΕΛΟΝΤΗ' ΔΙΑΒΑΣΕ ΟΝ[i] ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 ΓΡΑΨΕ 'ΔΩΣΤΕ ΑΡΙΘΜΟ ΕΝΗΜΕΡΩΣΕΩΝ', ' ΜΗΝΑ ', j ΔΙΑΒΑΣΕ ΑΤΟΜΑ[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Δ2 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 Πλήθος <-- πλήθος_ενημερώσεων_μήνα(ΑΤΟΜΑ, j) ΓΡΑΨΕ 'Αριθμών ατόμων που ενημερώθηκαν τον μήνα ', j,' :', Πλήθος ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Δ3 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ! Αρχικοποίηση πίνακα μετρητή Σύνολο_Έτους[i] <-- 0 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 Σύνολο_Έτους[i] <-- Σύνολο_Έτους[i] + ΑΤΟΜΑ[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Ταξινόμηση φυσσαλίδας ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 10 ΜΕΧΡΙ i με βήμα -1 ΑΝ Σύνολο_Έτους[j-1] < Σύνολο_Έτους[j] ΤΟΤΕ !Φθίνουσα ταξ. του Σύνολο_έτους temp <-- Σύνολο_Έτους[j] Σύνολο_Έτους[j] <-- Σύνολο_Έτους[j-1] Σύνολο_Έτους[j-1] <-- temp temp2 <-- ΟΝ[j] ! Παράλληλη ταξινόμηση του ΟΝ ΟΝ[j] <-- ΟΝ[j-1] ΟΝ[j-1] <-- temp2 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'ΟΙ 3 ΕΘΕΛΟΝΤΕΣ ΜΕ ΤΙΣ ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΝΗΜΕΡΩΣΕΙΣ ΣΤΟ ΕΤΟΣ:' ΓΡΑΨΕ ΟΝ[1] ΓΡΑΨΕ ΟΝ[2] ΓΡΑΨΕ ΟΝ[3] ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ! Δ4 ΣΥΝΑΡΤΗΣΗ πλήθος_ενημερώσεων_μήνα(άτομα, μήνας): ΑΚΕΡΑΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: i, μήνας, άτομα[10,12], Sum ΑΡΧΗ Sum <-- 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 Sum <-- Sum + άτομα[i,μήνας] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ πλήθος_ενημερώσεων_μήνα <-- Sum ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ