Σε μια έκθεση αποδήμου ελληνισμού χρησιμοποιείται αίθουσα χωρητικότητας 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">
Πρόσφατα σχόλια