Θέματα 2021, Ιουνίου, Ημερήσια & Εσπερινά

Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1 έως 5 και δίπλα τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη.

  1. Ο μεταγλωττιστής εντοπίζει τα λογικά λάθη.
  2. Η μέθοδος επεξεργασίας ‘Τελευταίο Μέσα, Πρώτο Έξω’ (LIFO) εφαρμόζεται στη στοίβα.
  3. Η «Δυαδική αναζήτηση» είναι ένας αλγόριθμος που ακολουθεί τη φιλοσοφία της μεθόδου «Διαίρει και Βασίλευε».
  4. Οι εντολές που βρίσκονται στον βρόχο μιας εντολής ΓΙΑ εκτελούνται τουλάχιστον μία φορά.
  5. Σε έναν αλγόριθμο στον οποίο υπάρχει μόνο η δομή ακολουθίας κάθε εντολή εκτελείται ακριβώς μια φορά.

Μονάδες 10

Απάντηση

  1. ΛΑΘΟΣ
  2. ΣΩΣΤΟ
  3. ΣΩΣΤΟ
  4. ΛΑΘΟΣ
  5. ΣΩΣΤΟ

Α2.
α) Τι ονομάζεται αντικείμενο πρόγραμμα;
(μονάδες 2)
β) Να δώσετε τον ορισμό της διαδικασίας και τον ορισμό της συνάρτησης.
(μονάδες 4)
γ) Να αναφέρετε ονομαστικά τα κριτήρια που πρέπει απαραίτητα να ικανοποιεί κάθε αλγόριθμος.
(μονάδες 5)
Μονάδες 11

Απάντηση
α) Το πρόγραμμα που παράγεται από τον μεταγλωττιστή. Σελ. 121
β) σελ. 175
Η διαδικασία είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος.
Η συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μόνο μια τιμή με το όνομα της
γ) Είσοδος, Έξοδος, Καθοριστικότητα, Περατότητα, Αποτελεσματικότητα, σελ 33

Α3.
Δίνεται το παρακάτω πρόγραμμα σε ΓΛΩΣΣΑ:

ΔΙΑΒΑΣΕ α 
β <- 1 
OΣΟ α<=5 EΠΑΝΑΛΑΒΕ 
β <- β + α  
ΔΙΑΒΑΣΕ α 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να μετατραπεί σε ισοδύναμο με χρήση της εντολής ΜΕΧΡΙΣ_ΟΤΟΥ.
Μονάδες 7

Λύση

ΔΙΑΒΑΣΕ α 
β <- 1 
ΑΝ α<=5 ΤΟΤΕ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 
β <- β + α  
ΔΙΑΒΑΣΕ α 
ΜΕΧΡΙΣ_ΟΤΟΥ α > 5
ΤΕΛΟΣ_ΑΝ

Α4.
Δίνεται το παρακάτω πρόγραμμα σε ΓΛΩΣΣΑ:

ΠΡΟΓΡΑΜΜΑ Α4 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ: χ 
ΑΡΧΗ 
ΓΡΑΨΕ ‘Δώσε μονοψήφιο αριθμό: ’ 
ΔΙΑΒΑΣΕ χ 
ΑΝ (χ=2) Ή (χ=4) Ή (χ=6) Ή (χ=8) ΤΟΤΕ 
ΓΡΑΨΕ ‘Άρτιος’ 
ΑΛΛΙΩΣ_ΑΝ (χ=1) Ή (χ=3) Ή (χ=5) Ή (χ=7) Ή (χ=9) ΤΟΤΕ 
ΓΡΑΨΕ ‘Περιττός’ 
ΑΛΛΙΩΣ_ΑΝ χ=0 ΤΟΤΕ 
ΓΡΑΨΕ ‘Μηδέν’ 
ΑΛΛΙΩΣ 
ΓΡΑΨΕ ‘Ο αριθμός δεν είναι μονοψήφιος…’ 
ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Να μετατραπεί σε ισοδύναμο με χρήση της εντολής πολλαπλής επιλογής ΕΠΙΛΕΞΕ.
Μονάδες 6

Λύση

ΠΡΟΓΡΑΜΜΑ Α4 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ: χ 
ΑΡΧΗ 
ΓΡΑΨΕ ‘Δώσε μονοψήφιο αριθμό: ’ 
ΔΙΑΒΑΣΕ χ 
ΕΠΙΛΕΞΕ Χ
ΠΕΡΙΠΤΩΣΗ 2,4,6,8
ΓΡΑΨΕ ‘Άρτιος’ 
ΠΕΡΙΠΤΩΣΗ 1,3,5,7,9 
ΓΡΑΨΕ ‘Περιττός’ 
ΠΕΡΙΠΤΩΣΗ 0
ΓΡΑΨΕ ‘Μηδέν’ 
ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ 
ΓΡΑΨΕ ‘Ο αριθμός δεν είναι μονοψήφιος…’ 
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Α5.
Δίνεται το παρακάτω τμήμα αλγορίθμου:

ΓΙΑ Χ ΑΠΟ 5 ΜΕΧΡΙ .…(1).… ΜΕ_ΒΗΜΑ ….(2)….
   ΓΙΑ ….(3)….ΑΠΟ ….(4)…. ΜΕΧΡΙ ….(5)…. ΜΕ_ΒΗΜΑ ….(6)….
       ΓΡΑΨΕ Ψ
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (6) που αντιστοιχούν στα κενά του τμήματος αλγορίθμου και δίπλα σε κάθε αριθμό, ό,τι πρέπει να συμπληρωθεί, ώστε μετά την εκτέλεσή του να εμφανίζονται διαδοχικά οι τιμές: 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3
Μονάδες 6

Λύση
1. 3
2. -1
3. Ψ
4. 1
5. Χ
6. 1

Β1. Να γράψετε υποπρόγραμμα, το οποίο να διαβάζει 1000 ακέραιους αριθμούς με έλεγχο εγκυρότητας, ώστε να είναι θετικοί. Το υποπρόγραμμα να επιστρέφει το πλήθος των αριθμών που είναι πολλαπλάσια του 3 και το άθροισμα των τριψήφιων.
Μονάδες 12
ΛΥΣΗ

ΔΙΑΔΙΚΑΣΙΑ Β1(π3, αθ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: αρ, ι, π3, αθ
ΑΡΧΗ
π3 <- 0
αθ <- 0
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 1000
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ αρ
ΜΕΧΡΙΣ_ΟΤΟΥ αρ > 0 

ΑΝ αρ mod = 3 TOTE
π3 <- π3 + 1
ΤΕΛΟΣ_ΑΝ
ΑΝ αρ >= 100 ΚΑΙ αρ <= 999 ΤΟΤΕ
αθ <- αθ + αρ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

Εναλλακτικά μπορεί να λυθεί και με χρήση μονοδιάστατου πίνακα 1000 θέσεων.

Β2. Το παρακάτω τμήμα αλγορίθμου υλοποιεί τη λειτουργία της εξαγωγής στοιχείου από ουρά με χρήση μονοδιάστατου πίνακα Α. Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (4) που αντιστοιχούν στα κενά του τμήματος αλγορίθμου και δίπλα σε κάθε αριθμό ό,τι χρειάζεται να συμπληρωθεί, ώστε να επιτελείται η ζητούμενη λειτουργία.

ΑΝ …(1)… ΚΑΙ …(2)…ΤΟΤΕ 
ΓΡΑΨΕ ‘Άδεια ουρά’ 
ΑΛΛΙΩΣ_ΑΝ …(3)… ΤΟΤΕ 
ΓΡΑΨΕ ‘Εξάγεται το στοιχείο:’, Α[front] 
front <- 0 
rear <- 0 
AΛΛΙΩΣ 
ΓΡΑΨΕ ‘Εξάγεται το στοιχείο:’, Α[front] 
…(4)… 
TEΛΟΣ_ΑΝ

Μονάδες 8

ΛΥΣΗ
1.front=0
2.rear=0
3.front=rear
4.front<-front+1

ΘΕΜΑ Γ

Ένα πλοίο μεταφέρει δέματα από λιμάνια της Ελλάδας στην Ιταλία. Σε κάθε λιμάνι που καταπλέει για φόρτωση δηλώνει το βάρος που έχει ήδη φορτωμένο , καθώς και το μέγιστο βάρος που μπορεί να μεταφέρει (όριο βάρους). Η διαδικασία φόρτωσης ελέγχεται από αρμόδιο υπάλληλο.

Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο να υποστηρίζει τη διαδικασία φόρτωσης σε ένα λιμάνι. Το πρόγραμμα:

Γ1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων.
Μονάδες 2

Γ2. Να διαβάζει:

  • το όριο βάρους του πλοίου (μονάδα 1),
  • το βάρος δεμάτων που έχει ήδη φορτωμένα, ελέγχοντας ότι η τιμή του είναι μικρότερη από το όριο βάρους, διαφορετικά να το ξαναζητά (μονάδες 2).

Μονάδες 3

Γ3. Για τη διαδικασία φόρτωσης:
α)

  • να εμφανίζει το βάρος που μπορεί ακόμα να φορτωθεί στο πλοίο,
  • να εμφανίζει το μήνυμα: «ΝΑ ΦΟΡΤΩΘΕΙ ΔΕΜΑ; (ΝΑΙ/ΟΧΙ)»,
  • να διαβάζει την απάντηση του αρμόδιου υπαλλήλου (χωρίς έλεγχο εγκυρότητας).

(μονάδες 3)

β) Αν η απάντηση είναι «ΝΑΙ»

  • να διαβάζει το βάρος του δέματος, να ελέγχει ότι δεν παραβιάζεται το όριο βάρους και να επιτρέπει τη φόρτωσή του, διαφορετικά να εμφανίζει το μήνυμα «ΤΟ ΔΕΜΑ ΔΕΝ ΧΩΡΑΕΙ», (μονάδες 2)
  • εφόσον επιτραπεί η φόρτωσή του, να υπολογίζει και να εμφανίζει το κόστος μεταφοράς του κλιμακωτά, με βάση το βάρος του, ως εξής:
    • τα πρώτα 500 κιλά χρεώνονται 0,5 € / κιλό,
    • τα επόμενα 1000 κιλά χρεώνονται 0,3 € / κιλό,
    • τα υπόλοιπα χρεώνονται 0,1 € / κιλό. (μονάδες 4)

Η παραπάνω διαδικασία φόρτωσης επαναλαμβάνεται μέχρι να δοθεί ως απάντηση από τον αρμόδιο υπάλληλο η λέξη «ΟΧΙ». (μονάδες 2)
Μονάδες 11

Γ4. Μετά το τέλος φόρτωσης να εμφανίζει:

  • πόσα από τα δέματα που ελέγχθηκαν δεν φορτώθηκαν λόγω υπέρβασης του ορίου βάρους (μονάδα 1),
  • το συνολικό ποσό που εισπράχθηκε (μονάδα 1),
  • το πλήθος των δεμάτων που φορτώθηκαν και είχαν βάρος που ξεπερνούσε τα 1000 κιλά (μονάδες 2).

Μονάδες 4

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ Θέμα_Γ
!Γ1 (2Μ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: χ, πλ, πλμαξ
  ΠΡΑΓΜΑΤΙΚΕΣ: βκ, οκ, Μβ, Μο, Σβ, Σο, μαξ, μβκ
ΑΡΧΗ
!Γ2 (4Μ)
!2μ
  ΓΡΑΨΕ 'Δώσε το μέγιστο συνολικό βάρος'
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ Μβ
  ΜΕΧΡΙΣ_ΟΤΟΥ Μβ >= 5000
!2μ
  ΓΡΑΨΕ 'Δώσε το μέγιστο συνολικό όγκο'
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΔΙΑΒΑΣΕ Μο
  ΜΕΧΡΙΣ_ΟΤΟΥ Μο >= 300
! Γ3 (6Μ)
!1μ
  πλ <- 0
  Σβ <- 0
!1μ
  μαξ <- -1
!Γ3α (2Μ)
  ΓΡΑΨΕ 'Δώσε βάρος κιβωτίου'
  ΔΙΑΒΑΣΕ βκ
  ΓΡΑΨΕ 'Δώσε όγκο κιβωτίου'
  ΔΙΑΒΑΣΕ οκ
!Γ3β (2Μ)
!1μ
  ΟΣΟ βκ <= Μβ ΚΑΙ οκ <= Μο ΕΠΑΝΑΛΑΒΕ
!1μ
    Μβ <- Μβ - βκ
    Μο <- Μο - οκ
!Γ4α
!1μ
    Σβ <- Σβ + βκ
    πλ <- πλ + 1
!2μ
    ΑΝ βκ > μαξ ΤΟΤΕ
      μαξ <- βκ
      πλμαξ <- 1
    ΑΛΛΙΩΣ_ΑΝ βκ = μαξ ΤΟΤΕ
      πλμαξ <- πλμαξ + 1
    ΤΕΛΟΣ_ΑΝ
!1μ
    ΓΡΑΨΕ 'Δώσε βάρος κιβωτίου'
    ΔΙΑΒΑΣΕ βκ
    ΓΡΑΨΕ 'Δώσε όγκο κιβωτίου'
    ΔΙΑΒΑΣΕ οκ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!1μ
  μβκ <- Σβ/πλ
!1μ
  ΓΡΑΨΕ 'το συνολικό πλήθος των κιβωτίων είναι ', πλ
  ΓΡΑΨΕ 'το μέσο βάρος των κιβωτίων είναι ', μβκ
!1μ
  ΓΡΑΨΕ 'το μέγιστο βάρος κιβωτίου είναι ', μαξ
  ΓΡΑΨΕ 'το πλήθος κιβωτίων με το ίδιο μέγιστο βάρος είναι ', πλμαξ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΘΕΜΑ Δ
Σε ένα πρωτάθλημα στίβου, στο αγώνισμα του άλματος εις μήκος συμμετέχουν 20 αθλητές, οι οποίοι κάνουν 6 άλματα ο καθένας.
Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο:
Δ1. α) Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων (2 μονάδες).
β) Να διαβάζει και να αποθηκεύει τα ονόματα των 20 αθλητών σε μονοδιάστατο πίνακα (1 μονάδα).
γ) Να διαβάζει και να αποθηκεύει σε δισδιάστατο πίνακα τις επιδόσεις του κάθε αθλητή στα 6 άλματα (δεν απαιτείται έλεγχος εγκυρότητας) (1 μονάδα).
Μονάδες 4
Δ2. Να εμφανίζει τη μεγαλύτερη επίδοση που σημειώθηκε στο αγώνισμα και τον αριθμό του άλματος στο οποίο σημειώθηκε. Να θεωρήσετε ότι η μεγαλύτερη επίδοση σημειώθηκε από έναν μόνο αθλητή και σε ένα μόνο άλμα.
Μονάδες 5
Δ3. Να εμφανίζει τα ονόματα των αθλητών που σημείωσαν τουλάχιστον δύο (2) άκυρα άλματα. Στα άκυρα άλματα έχει καταχωριστεί ως επίδοση η τιμή 0.
Μονάδες 5
Δ4. Να εμφανίζει για κάθε αθλητή το όνομά του και τις επιδόσεις του, ταξινομημένες από τη μεγαλύτερη προς τη μικρότερη.
Μονάδες 6

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ
!Δ1α (2Μ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, ξ, αρ_αλμ, πλ0, κ
  ΠΡΑΓΜΑΤΙΚΕΣ: επ[20, 6], μαξεπ, τεμπ
  ΧΑΡΑΚΤΗΡΕΣ: ον[20] 
ΑΡΧΗ
!Δ1β (1Μ)
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20
    ΔΙΑΒΑΣΕ ον[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Δ1γ (1Μ)
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20
    ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 6
      ΔΙΑΒΑΣΕ επ[ι, ξ] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!Δ2 (5Μ)
!1Μ
  μαξεπ <- επ[1, 1] 
  αρ_αλμ <- 1 !1Μ ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20 ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 6 !2Μ ΑΝ επ[ι, ξ] > μαξεπ ΤΟΤΕ
        μαξεπ <- επ[ι, ξ] 
        αρ_αλμ <- ξ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!1Μ
  ΓΡΑΨΕ μαξεπ, αρ_αλμ

!Δ3 (5Μ)
!1Μ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20
    πλ0 <- 0
    ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 6
!2Μ
      ΑΝ επ[ι, ξ] = 0 ΤΟΤΕ
!1Μ
        πλ0 <- πλ0 + 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ πλ0 >= 2 ΤΟΤΕ
!1Μ
      ΓΡΑΨΕ ον[ι] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!Δ4 (6Μ)
!1Μ
  ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 20
!1Μ
    ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 6
      ΓΙΑ ξ ΑΠΟ 6 ΜΕΧΡΙ ι ΜΕ_ΒΗΜΑ -1
!2Μ
        ΑΝ επ[κ, ξ] > επ[κ, ξ - 1] ΤΟΤΕ
        ! 1Μ
          τεμπ <- επ[κ, ξ] 
          επ[κ, ξ] <- επ[κ, ξ - 1] 
          επ[κ, ξ - 1] <- τεμπ
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!1Μ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 20
    ΓΡΑΨΕ ον[ι] 
    ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 6
      ΓΡΑΨΕ επ[ι, ξ] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ