Σε μια έκθεση αποδήμου ελληνισμού χρησιμοποιείται αίθουσα χωρητικότητας 1000 ατόμων. Στην αίθουσα εγκαταστάθηκε ηλεκτρονικό σύστημα διαχείρισης εισόδου-εξόδου επισκεπτών, το οποίο λειτουργεί ως εξής: Κάθε φορά που γίνεται είσοδος επισκεπτών εισάγεται η τιμή 1, ενώ κάθε φορά που γίνεται έξοδος επισκεπτών εισάγεται η τιμή 2. Για τον τερματισμό της λειτουργίας του συστήματος εισάγεται η τιμή 0. Η είσοδος πραγματοποιείται είτε μεμονωμένα είτε σε ομάδες. Προκειμένου να επιτραπεί η είσοδος, ζητείται ο αριθμός επισκεπτών που θέλουν να εισέλθουν και, εφόσον η ενδεχόμενη είσοδός τους δεν υπερβαίνει το όριο χωρητικότητας της αίθουσας, τότε επιτρέπεται· διαφορετικά, απορρίπτεται με κατάλληλο μήνυμα. Η έξοδος πραγματοποιείται μεμονωμένα, δηλαδή ένα άτομο κάθε φορά. Ο τερματισμός επιτρέπεται, όταν η αίθουσα είναι άδεια.
Για την υποστήριξη του συστήματος να αναπτύξετε πρόγραμμα το οποίο:
Γ 1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων.
Μονάδες 2
Γ2. Να διαβάζει τον κωδικό επιθυμητής λειτουργίας (1 για είσοδο, 2 για έξοδο και 0 για τερματισμό), μέχρι τον τερματισμό της λειτουργίας του συστήματος.
Μονάδες 4
Γ3. α. Στην περίπτωση που δοθεί ο κωδικός 1, να διαβάζει τον αριθμό των
ατόμων και με τη χρήση της λογικής συνάρτησης IN να ελέγχει αν επιτρέπεται η είσοδός τους. Αν η είσοδός τους επιτρέπεται, εισέρχονται στην αίθουσα· διαφορετικά, εμφανίζεται το μήνυμα ΔΟΚΙΜΑΣΤΕ ΑΡΓΟΤΕΡΑ. (μονάδες 4)
β. Στην περίπτωση που δοθεί ο κωδικός 2, θεωρείται ότι εξέρχεται ένα άτομο. Η εκτέλεση της συγκεκριμένης λειτουργίας να επιτρέπεται, όταν η αίθουσα δεν είναι κενή· διαφορετικά, να εμφανίζει το μήνυμα ΑΔΥΝΑΤΗ ΛΕΙΤΟΥΡΓΙΑ (μονάδες 2)
Μονάδες 6
Γ4. Μετά τον τερματισμό να εμφανίζει τον συνολικό αριθμό των επισκεπτών, καθώς και το πλήθος των ατόμων της μεγαλύτερης ομάδας που απορρίφθηκε, ή να εμφανίζει το μήνυμα ΔΕΝ ΑΠΟΡΡΙΦΘΗΚΕ ΚΑΜΙΑ ΟΜΑΔΑ.
Μονάδες 4
Γ5. Να αναπτύξετε τη λογική συνάρτηση ΙΝ.
Μονάδες 4
(Να θεωρήσετε ότι δεν απαιτείται έλεγχος εγκυρότητας για τις τιμές εισόδου και ότι η αίθουσα είναι αρχικά κενή).

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ ΘΕΜΑΓ_2017_ΕΠΑΝ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Κ, αρ_ατόμων, χωρ, επισκέπτες, max_out
  ΛΟΓΙΚΕΣ: είσοδος_οκ
ΑΡΧΗ

  χωρ <- 0
  επισκέπτες <- 0
  max_out <- 0

! διάβασμα έξω από την επανάληψη, σελ 39 παράρτημα
  ΔΙΑΒΑΣΕ Κ
  ΟΣΟ Κ <> 0 ΕΠΑΝΑΛΑΒΕ                                      ! τιμή φρουρός Κ = 0
    ΑΝ Κ = 1 ΤΟΤΕ                                      ! είσοδος ομάδας ή ατόμου
      ΔΙΑΒΑΣΕ αρ_ατόμων
      είσοδος_οκ <- ΙΝ(αρ_ατόμων, χωρ) 
      ΑΝ είσοδος_οκ = ΑΛΗΘΗΣ ΤΟΤΕ                          ! είσοδος επιτρέπεται
        χωρ <- χωρ + αρ_ατόμων
        επισκέπτες <- επισκέπτες + αρ_ατόμων
      ΑΛΛΙΩΣ                                           ! είσοδος ΔΕΝ επιτρέπεται
        ΑΝ αρ_ατόμων > 1 ΤΟΤΕ                         ! απορρίφθηκε ομάδα ατόμων
          ΑΝ max_out < αρ_ατόμων ΤΟΤΕ                        ! Υπ. max ομάδα έξω
            max_out <- αρ_ατόμων
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΑΝ
        ΓΡΑΨΕ 'ΔΟΚΙΜΑΣΤΕ ΑΡΓΟΤΕΡΑ'
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ                                                ! Κ = 2, έξοδος ατόμου
      ΑΝ χωρ > 0 ΤΟΤΕ
        χωρ <- χωρ - 1                          ! μόνο 1 άτομο βγαίνει κάθε φορά
      ΑΛΛΙΩΣ
        ΓΡΑΨΕ 'ΑΔΥΝΑΤΗ ΛΕΙΤΟΥΡΓΙΑ'
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ

! διάβασμα στο τέλος της επανάληψης
    ΔΙΑΒΑΣΕ Κ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ max_out <> 0 ΤΟΤΕ
    ΓΡΑΨΕ max_out
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'ΔΕΝ ΑΠΟΡΡΙΦΘΗΚΕ ΚΑΜΙΑ ΟΜΑΔΑ'
  ΤΕΛΟΣ_ΑΝ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΙΝ(άτομα, χωρητικότητα): ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: άτομα, χωρητικότητα
ΑΡΧΗ
  ΑΝ άτομα + χωρητικότητα <= 1000 ΤΟΤΕ
    ΙΝ <- ΑΛΗΘΗΣ
  ΑΛΛΙΩΣ
    ΙΝ <- ΨΕΥΔΗΣ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ</code class="language-javascript">
Share This