Λύσεις επαναληπτικών Θεμάτων 2021 Ημερήσιων / Εσπερινών Λυκείων

Θέμα Α

Α1

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

Α2

α) Βλ. ενότητα 1 “ΠΛΗΡΟΦΟΡΙΚΗ” Βιβλίου Μαθητή σελ. 13 και σελ. 23.
β) Βλ. κεφάλαιο 1 “Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον” Βιβλίου Μαθητή σελ. 25.

Α3

  1. Α mod 3 = 0 KAI OXI(A mod 5 = 0)
    
  2. Α <- Α - Α mod 10
    
  3. ΑΝ ΟΧΙ (Α = 0 Η Α = 1) ΤΟΤΕ
      ΓΡΑΨΕ "Λάθος δεδομένα"
    ΤΕΛΟΣ_ΑΝ
    
  4. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Α^3
      ΓΡΑΨΕ i
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    

Α4

Ας το δούμε με δύο διαφορετικούς τρόπους:
α) Γράφοντας τις εντολές εσωτερικά της ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ...ΜΕΧΡΙΣ_ΟΤΟΥ μία φορά πριν την ΟΣΟ:

S <- 0
ΔΙΑΒΑΣΕ Χ
S <- S + X
ΔΙΑΒΑΣΕ Χ
ΟΣΟ ΟΧΙ(Α_Μ(Χ) <> Χ Η Χ = 0) ΕΠΑΝΑΛΑΒΕ
  S <- S + X
  ΔΙΑΒΑΣΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

β) Βάζοντας την ΟΣΟ να εκτελεστεί μία τουλάχιστον φορά:

S <- 0
ΔΙΑΒΑΣΕ Χ
επαναλήψεις <- 0
ΟΣΟ επαναλήψεις = 0 Η ΟΧΙ(Α_Μ(Χ) <> Χ Η Χ = 0) ΕΠΑΝΑΛΑΒΕ
  S <- S + X
  ΔΙΑΒΑΣΕ Χ
  επαναλήψεις <- επαναλήψεις + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Α5

ΔΙΑΒΑΣΕ Χ
ΑΝ Χ < = 5 ΤΟΤΕ
  ΓΡΑΨΕ ' * '
  ΓΡΑΨΕ ' # '
ΑΛΛΙΩΣ_ΑΝ Χ > 5 ΚΑΙ Χ < = 10 ΤΟΤΕ
  ΓΡΑΨΕ ' # '
ΑΛΛΙΩΣ
  ΓΡΑΨΕ ' @ '
TEΛΟΣ_ΑΝ

Θέμα Β

Β1

Θέμα Β1

Β2

i <- 1
ΟΣΟ i < 100 ΚΑΙ X[i] <> 2021 ΕΠΑΝΑΛΑΒΕ
  i <- i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ X[i] = 2021 ΤΟΤΕ
  ΓΡΑΨΕ i
ΑΛΛΙΩΣ
  ΓΡΑΨΕ 'ΔΕ ΒΡΕΘΗΚΕ'
ΤΕΛΟΣ_ΑΝ

Θέμα Γ

ΠΡΟΓΡΑΜΜΑ ΘέμαΓ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: προσέλευση, άνδρες, πλ, ηλικία, πλΚ18, πλ19_50, πλΑ51, ώρες, λεπτά, αποχώρηση, minΗλ
  ΠΡΑΓΜΑΤΙΚΕΣ: ποσΑνδρών
  ΧΑΡΑΚΤΗΡΕΣ: φύλο, τύπος
ΑΡΧΗ
  ΔΙΑΒΑΣΕ προσέλευση
  ! Γ2
  άνδρες <- 0
  ! Γ3
  πλ <- 0
  minΗλ <- 999
  ! Γ4
  πλΚ18 <- 0
  πλ19_50 <- 0
  πλΑ51 <- 0
  
  ΟΣΟ προσέλευση <> 9999 ΕΠΑΝΑΛΑΒΕ
    ΔΙΑΒΑΣΕ ηλικία, φύλο, τύπος
    
    ! Γ2
    πλ <- πλ + 1
    ΑΝ φύλο = 'Α' ΤΟΤΕ
      άνδρες <- άνδρες + 1
    ΤΕΛΟΣ_ΑΝ
    
    ! Γ3
    ΑΝ ηλικία > 50 ΚΑΙ φύλο = 'Γ' ΚΑΙ τύπος = 'Μ' ΚΑΙ ηλικία < minΗλ ΤΟΤΕ
      minΗλ <- ηλικία
    ΤΕΛΟΣ_ΑΝ
    
    ! Γ4
    ΑΝ ηλικία <= 18 ΤΟΤΕ
      πλΚ18 <- πλΚ18 + 1
    ΑΛΛΙΩΣ_ΑΝ ηλικία > 18 ΚΑΙ ηλικία <= 50 ΤΟΤΕ
      πλ19_50 <- πλ19_50 + 1
    ΑΛΛΙΩΣ
      πλΑ51 <- πλΑ51 + 1
    ΤΕΛΟΣ_ΑΝ
    
    ! Γ5
    ώρες <- προσέλευση div 100
    λεπτά <- προσέλευση mod 100
    ΑΝ λεπτά >= 30 ΤΟΤΕ
      αποχώρηση <- (ώρες + 1) * 100 + λεπτά mod 30
    ΑΛΛΙΩΣ
      αποχώρηση <- προσέλευση + 30
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ αποχώρηση
    
    ΔΙΑΒΑΣΕ προσέλευση
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  
  ! Γ2
  ΑΝ πλ > 0 ΤΟΤΕ
    ποσΑνδρών <- άνδρες / πλ * 100
    ΓΡΑΨΕ ποσΑνδρών
  ΤΕΛΟΣ_ΑΝ
  
  ! Γ3
  ΑΝ minΗλ = 999 ΤΟΤΕ
    ΓΡΑΨΕ 'Δεν προσήλθε γυναίκα άνω των 50 που έκανε μονοδοσικό εμβόλιο'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ minΗλ
  ΤΕΛΟΣ_ΑΝ
  
  ! Γ4
  ΓΡΑΨΕ πλΚ18, πλ19_50, πλΑ51
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Θέμα Δ

ΠΡΟΓΡΑΜΜΑ ΘέμαΔ
ΜΕΤΑΒΛΗΤΕΣ ! Δ1α
  ΑΚΕΡΑΙΕΣ: i, j, πλΔ, maxπλΣΔ
  ΧΑΡΑΚΤΗΡΕΣ: Ξ[10,30]
  ΛΟΓΙΚΕΣ: βρέθηκε
ΑΡΧΗ
  ! Δ2
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 30
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΔΙΑΒΑΣΕ Ξ[i, j]
      ΜΕΧΡΙΣ_ΟΤΟΥ Ξ[i, j] = 'Μ' Η Ξ[i, j] = 'Δ' Η Ξ[i, j] = 'T'
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΚΑΛΕΣΕ ΣΥΝΟΛΟ(Ξ)
  
  ! Δ3
  πλΔ <- 0
  maxπλΣΔ <- 0 ! μέγιστο πλήθος συνεχόμενων δίκλινων
  ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 30
    ΑΝ Ξ[3, j] = 'Δ' ΤΟΤΕ
      πλΔ <- πλΔ + 1
    ΑΛΛΙΩΣ
      πλΔ <- 0
    ΤΕΛΟΣ_ΑΝ
    ΑΝ πλΔ > maxπλΣΔ ΤΟΤΕ
      maxπλΣΔ <- πλΔ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ maxπλΣΔ
  
  ! Δ4
  j <- 1
  ΟΣΟ j <= 30 ΚΑΙ βρέθηκε = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    ! εκτελούμε επανάληψη για όσο το j δωμάτιο σε κάθε όροφο είναι ίδιο με του πρώτου
    i <- 2
    ΟΣΟ i < 10 ΚΑΙ Ξ[i, j] = Ξ[1, j] ΕΠΑΝΑΛΑΒΕ
      i <- i + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ! Αν από την προηγούμενη επανάληψη καταφέραμε να φτάσουμε μέχρι τον 10ο όροφο και το δωμάτιο του 10ου είναι ίδιο με το πρώτο
    ΑΝ i = 10 ΚΑΙ Ξ[i, j] = Ξ[1, j] ΤΟΤΕ
      βρέθηκε <- ΑΛΗΘΗΣ
      ΓΡΑΨΕ "Το δωμάτιο με αριθμό ", j, " είναι ιδίου τύπου σε όλους τους ορόφους"
    ΤΕΛΟΣ_ΑΝ
    j <- j + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ βρέθηκε = ΨΕΥΔΗΣ ΤΟΤΕ
    ΓΡΑΨΕ "Δεν βρέθηκε αριθμός δωμάτιου με ίδιο τύπο σε όλους τους ορόφους"
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΣΥΝΟΛΟ(Ξ, κλίνες)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, κλίνες
  ΧΑΡΑΚΤΗΡΕΣ: Ξ[10,30]
ΑΡΧΗ
  κλίνες <- 0
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 30
      ΑΝ Ξ[i, j] = 'M' ΤΟΤΕ 
        κλίνες <- κλίνες + 1
      ΑΛΛΙΩΣ_ΑΝ Ξ[i, j] = 'Δ' ΤΟΤΕ
        κλίνες <- κλίνες + 2
      ΑΛΛΙΩΣ
        κλίνες <- κλίνες + 3
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ κλίνες
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ