Μετάβαση στο κύριο περιεχόμενο

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #23

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

23η επαναληπτική άσκηση για το μάθημα της Πληροφορικής

23η Επαναληπτική Άσκηση

Τίτλος: Αντιμετάθεση ποτηριών
Κατηγορία: Διαδικασίες

Έστω ότι έχουμε δέκα ποτήρια. Από αυτά, τα πέντε πρώτα είναι γεμάτα και τα πέντε επόμενα άδεια. Θέλουμε να αντιμεταθέσουμε δύο γεμάτα ποτήρια με δύο άδεια έτσι ώστε τα άδεια και τα γεμάτα ποτήρια να εναλλάσσονται.

Να γραφεί πρόγραμμα το οποίο:
α) Θα καταχωρεί σε μονοδιάστατο πίνακα την αρχική τοποθέτηση των ποτηριών (θεωρείστε ότι αν υπάρχει η τιμή 1 σημαίνει ότι το ποτήρι είναι γεμάτο ενώ αν υπάρχει η τιμή 0 σημαίνει ότι το ποτήρι είναι άδειο),
β) Θα ζητάει από το χρήστη να κάνει δύο αντιμεταθέσεις ποτηριών (σε κάθε αντιμετάθεση ο χρήστης θα δίνει τις θέσεις των δύο ποτηριών στον πίνακα) και
γ) Θα αποφαίνεται αν ο χρήστης κατάφερε να τοποθετήσει τα ποτήρια ώστε τα γεμάτα και τα άδεια ποτήρια να εναλλάσσονται.

Παρατήρηση: Να γίνει διαδικασία που να κάνει αντιμετάθεση δύο στοιχείων ενός πίνακα και να καλείται κάθε φορά που πρέπει να γίνει αντιμετάθεση δύο στοιχείων του πίνακα.

Λύση 23ης επαναληπτικής άσκησης

ΠΡΟΓΡΑΜΜΑ Αντιμετάθεση_Ποτηριών
ΜΕΤΑΒΛΗΤΕΣ 
  ΑΚΕΡΑΙΕΣ: Ι, ΠΟΤ[10], ΠΟΤ_1, ΠΟΤ_2
  ΛΟΓΙΚΕΣ: ΕΝΑΛΛ
ΑΡΧΗ 
 
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
    ΠΟΤ[Ι] <- 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ Ι ΑΠΟ 6 ΜΕΧΡΙ 10
    ΠΟΤ[Ι] <- 0
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Πρώτη αντιμετάθεση.'
  ΓΡΑΨΕ 'Πρώτο ποτήρι: '
  ΔΙΑΒΑΣΕ ΠΟΤ_1
  ΓΡΑΨΕ 'Δεύτερο ποτήρι: '
  ΔΙΑΒΑΣΕ ΠΟΤ_2

  ΚΑΛΕΣΕ Αντιμετάθεση(ΠΟΤ[ΠΟΤ_1], ΠΟΤ[ΠΟΤ_2]) 

  ΓΡΑΨΕ 'Δεύτερη αντιμετάθεση.'
  ΓΡΑΨΕ 'Πρώτο ποτήρι: '
  ΔΙΑΒΑΣΕ ΠΟΤ_1
  ΓΡΑΨΕ 'Δεύτερο ποτήρι: '
  ΔΙΑΒΑΣΕ ΠΟΤ_2

  ΚΑΛΕΣΕ Αντιμετάθεση(ΠΟΤ[ΠΟΤ_1], ΠΟΤ[ΠΟΤ_2]) 

  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ ΠΟΤ[Ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΕΝΑΛΛ <- ΑΛΗΘΗΣ
  Ι <- 2
  ΟΣΟ Ι <= 10 ΚΑΙ ΕΝΑΛΛ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΠΟΤ[Ι] = ΠΟΤ[Ι - 1] ΤΟΤΕ
      ΕΝΑΛΛ <- ΨΕΥΔΗΣ
    ΑΛΛΙΩΣ
      Ι <- Ι + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ ΕΝΑΛΛ = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'Μπράβο! Τα κατάφερες.'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Προσπάθησε ξανά.'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αντιμετάθεση_Ποτηριών

ΔΙΑΔΙΚΑΣΙΑ Αντιμετάθεση(α, β) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, β, γ
ΑΡΧΗ
  γ <- α
  α <- β
  β <- γ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Όλες τις επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) μπορείτε να τις βρείτε στο παρακάτω άρθρο:

Σχόλια

Δημοσίευση σχολίου

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

30 επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής της Γ' Λυκείου

10 Επαναληπτικές Ασκήσεις στην Πληροφορική (2021)

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #6 (2021)