ΕΠΕΞΕΡΓΑΣΙΑ ΟΥΡΑΣ ΜΕ ΤΟΝ ΤΡΟΠΟ ΠΡΟΣΠΕΛΑΣΗΣ FIFO

!ΑΣΚΗΣΗ 1
!Στο κέντρο αιμοδοσίας του νοσοκομείου «Άγιος Ανδρέας», εφαρμόζεται ένα σύστημα ουράς για την εξυπηρέτηση εθελοντών αιμοδοτών.
!Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να εμφανίζει το παρακάτω μενού επιλογών επαναληπτικά:
!Παρακαλώ επιλέξτε:
!1.Νέα εγγραφή εθελοντή αιμοδότη
!2.Εξυπηρέτηση αιμοδοσίας (ένας αιμοδότης)
!3.Τέλος – Στατιστικά ημέρας
!Αν η επιλογή είναι 1, να διαβάζεται το ονοματεπώνυμο του αιμοδότη και να προστίθεται στο τέλος της ουράς.
!Αν η ουρά είναι γεμάτη (μέγιστο 40 άτομα), να εμφανίζεται μήνυμα:
!«Η ουρά είναι γεμάτη. Παρακαλώ περιμένετε!»
!Αν η επιλογή είναι 2, να εξυπηρετείται ο πρώτος εθελοντής της ουράς και να εμφανίζεται το μήνυμα:
!«Ο αιμοδότης [ονοματεπώνυμο] εξυπηρετήθηκε.»
!Αν η ουρά είναι άδεια, να εμφανίζεται το μήνυμα:
!«Δεν υπάρχουν αιμοδότες σε αναμονή.»

!Αν η επιλογή είναι 3, το πρόγραμμα να τερματίζει και να εμφανίζει:

!Πόσοι αιμοδότες εγγράφηκαν
!Πόσοι αιμοδότες εξυπηρετήθηκαν
!Πόσοι δεν μπόρεσαν να εγγραφούν λόγω γεμάτης ουράς

!Δεν απαιτείται έλεγχος εγκυρότητας δεδομένων.

!Λύση
ΠΡΟΓΡΑΜΜΑ ΑΙΜΟΔΟΣΙΑ
ΜΕΤΑΒΛΗΤΕΣ
 
ΑΚΕΡΑΙΕΣ: front, rear, επιλογη
 
ΑΚΕΡΑΙΕΣ: εγγραφες, εξυπηρετηθηκαν, απορριψεις
 
ΧΑΡΑΚΤΗΡΕΣ: Α[40], ονομα
ΑΡΧΗ
  front 
<- 0
  rear 
<- 0
  εγγραφες 
<- 0
  εξυπηρετηθηκαν 
<- 0
  απορριψεις 
<- 0

 
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
   
ΓΡΑΨΕ ‘Παρακαλώ επιλέξτε:’
   
ΓΡΑΨΕ ‘1. Νέα εγγραφή’
   
ΓΡΑΨΕ ‘2. Εξυπηρέτηση’
   
ΓΡΑΨΕ ‘3. Τέλος’
   
ΔΙΑΒΑΣΕ επιλογη

   
ΑΝ επιλογη = 1 ΤΟΤΕ
       
ΓΡΑΨΕ ‘Δώσε ονοματεπώνυμο:’
       
ΔΙΑΒΑΣΕ ονομα
       
ΑΝ rear = 40 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Η ουρά είναι γεμάτη. Παρακαλώ περιμένετε!’
            απορριψεις 
<- απορριψεις + 1
       
ΑΛΛΙΩΣ_ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
            front 
<- 1
            rear 
<- 1
            Α
[rear] <- ονομα
            εγγραφες 
<- εγγραφες + 1
       
ΑΛΛΙΩΣ
            rear 
<- rear + 1
            Α
[rear] <- ονομα
            εγγραφες 
<- εγγραφες + 1
       
ΤΕΛΟΣ_ΑΝ

   
ΑΛΛΙΩΣ_ΑΝ επιλογη = 2 ΤΟΤΕ
       
ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Δεν υπάρχουν αιμοδότες σε αναμονή.’
       
ΑΛΛΙΩΣ_ΑΝ front = rear ΤΟΤΕ
           
ΓΡΑΨΕ ‘Ο αιμοδότης ‘, Α[front], ‘ εξυπηρετήθηκε.’
            front 
<- 0
            rear 
<- 0
            εξυπηρετηθηκαν 
<- εξυπηρετηθηκαν + 1
       
ΑΛΛΙΩΣ
           
ΓΡΑΨΕ ‘Ο αιμοδότης ‘, Α[front], ‘ εξυπηρετήθηκε.’
            front 
<- front + 1
            εξυπηρετηθηκαν 
<- εξυπηρετηθηκαν + 1
       
ΤΕΛΟΣ_ΑΝ
   
ΤΕΛΟΣ_ΑΝ

 
ΜΕΧΡΙΣ_ΟΤΟΥ επιλογη = 3

 
ΓΡΑΨΕ εγγραφες
 
ΓΡΑΨΕ εξυπηρετηθηκαν
 
ΓΡΑΨΕ απορριψεις
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!ΑΣΚΗΣΗ 2

!Στο δημοτικό ιατρείο της Νέας Μηχανιώνας, οι πολίτες προσέρχονται για δωρεάν εμβολιασμό κατά της γρίπης. Για την ομαλή εξυπηρέτηση, εφαρμόζεται σύστημα ουράς.

!Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να εμφανίζει το παρακάτω μενού επιλογών επαναληπτικά:

!Παρακαλώ επιλέξτε:
!1. Καταχώρηση πολίτη για εμβολιασμό
!2. Εξυπηρέτηση – Εμβολιασμός ενός πολίτη
!3. Τέλος – Προβολή συνολικών στοιχείων

!Αν η επιλογή είναι 1, να διαβάζεται το ΑΜΚΑ του πολίτη και να προστίθεται στην ουρά.
!Αν η ουρά έχει ήδη 30 πολίτες, να εμφανίζεται το μήνυμα:
!«Η ουρά είναι πλήρης. Παρακαλώ δοκιμάστε αργότερα.»

!Αν η επιλογή είναι 2, να εξυπηρετείται ο πρώτος πολίτης της ουράς και να εμφανίζεται το μήνυμα:
!«Ο πολίτης με ΑΜΚΑ ______ εμβολιάστηκε.»
!Αν δεν υπάρχουν πολίτες σε αναμονή, να εμφανίζεται το μήνυμα:
!«Κανένας πολίτης δεν περιμένει για εμβολιασμό.»

!Αν η επιλογή είναι 3, το πρόγραμμα να τερματίζει και να εμφανίζει:

!Πόσοι πολίτες καταχωρήθηκαν

!Πόσοι πολίτες εμβολιάστηκαν

!Πόσοι δεν μπόρεσαν να μπουν στην ουρά λόγω πληρότητας

!Λύση
ΠΡΟΓΡΑΜΜΑ ΕΜΒΟΛΙΑΣΜΟΣ
ΜΕΤΑΒΛΗΤΕΣ
 
ΑΚΕΡΑΙΕΣ: front, rear, επιλογη
 
ΑΚΕΡΑΙΕΣ: καταχωρηθηκαν, εμβολιαστηκαν, απορριψεις
 
ΧΑΡΑΚΤΗΡΕΣ: Α[30], αμκα
ΑΡΧΗ
  front 
<- 0
  rear 
<- 0
  καταχωρηθηκαν 
<- 0
  εμβολιαστηκαν 
<- 0
  απορριψεις 
<- 0

 
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
   
ΓΡΑΨΕ ‘1. Καταχώρηση πολίτη’
   
ΓΡΑΨΕ ‘2. Εμβολιασμός’
   
ΓΡΑΨΕ ‘3. Τέλος’
   
ΔΙΑΒΑΣΕ επιλογη

   
ΑΝ επιλογη = 1 ΤΟΤΕ
       
ΓΡΑΨΕ ‘Δώσε ΑΜΚΑ:’
       
ΔΙΑΒΑΣΕ αμκα
       
ΑΝ rear = 30 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Η ουρά είναι πλήρης.’
            απορριψεις 
<- απορριψεις + 1
       
ΑΛΛΙΩΣ_ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
            front 
<- 1
            rear 
<- 1
            Α
[rear] <- αμκα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΑΛΛΙΩΣ
            rear 
<- rear + 1
            Α
[rear] <- αμκα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΤΕΛΟΣ_ΑΝ

   
ΑΛΛΙΩΣ_ΑΝ επιλογη = 2 ΤΟΤΕ
       
ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Κανένας πολίτης δεν περιμένει.’
       
ΑΛΛΙΩΣ_ΑΝ front = rear ΤΟΤΕ
           
ΓΡΑΨΕ ‘Ο πολίτης με ΑΜΚΑ ‘, Α[front], ‘ εμβολιάστηκε.’
            front 
<- 0
            rear 
<- 0
            εμβολιαστηκαν 
<- εμβολιαστηκαν + 1
       
ΑΛΛΙΩΣ
           
ΓΡΑΨΕ ‘Ο πολίτης με ΑΜΚΑ ‘, Α[front], ‘ εμβολιάστηκε.’
            front 
<- front + 1
            εμβολιαστηκαν 
<- εμβολιαστηκαν + 1
       
ΤΕΛΟΣ_ΑΝ
   
ΤΕΛΟΣ_ΑΝ

 
ΜΕΧΡΙΣ_ΟΤΟΥ επιλογη = 3

 
ΓΡΑΨΕ καταχωρηθηκαν
 
ΓΡΑΨΕ εμβολιαστηκαν
 
ΓΡΑΨΕ απορριψεις
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

!ΑΣΚΗΣΗ 3

!Στον θερινό κινηματογράφο «Σινεμά με Θέα», υπάρχει περιορισμένος αριθμός θέσεων και εφαρμόζεται σύστημα ουράς για την αγορά εισιτηρίων. Η ουρά μπορεί να εξυπηρετήσει έως και 25 θεατές.

!Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να εμφανίζει επαναληπτικά το παρακάτω μενού επιλογών:

!Παρακαλώ επιλέξτε:

!Προσθήκη θεατή στην ουρά αναμονής

!Εξυπηρέτηση – Αγορά εισιτηρίου

!Τέλος – Προβολή αναφορών

!Αν η επιλογή είναι 1, να διαβάζεται το όνομα του θεατή και να προστίθεται στο τέλος της ουράς.
!Αν η ουρά έχει ήδη 25 άτομα, να εμφανίζεται το μήνυμα:
!«Δεν υπάρχουν διαθέσιμες θέσεις αναμονής.»

!Αν η επιλογή είναι 2, να εξυπηρετείται ο πρώτος θεατής της ουράς και να εμφανίζεται το μήνυμα:
!«Ο θεατής [όνομα] αγόρασε εισιτήριο.»
!Αν η ουρά είναι άδεια, να εμφανίζεται το μήνυμα:
!«Δεν υπάρχουν θεατές στην αναμονή.»

!Αν η επιλογή είναι 3, το πρόγραμμα να τερματίζει και να εμφανίζει:

!Πόσοι θεατές καταχωρήθηκαν
!Πόσοι θεατές εξυπηρετήθηκαν
!Πόσοι δεν κατάφεραν να μπουν στην ουρά λόγω πληρότητας

!Δεν απαιτείται έλεγχος εγκυρότητας δεδομένων.

!Λύση
ΠΡΟΓΡΑΜΜΑ ΣΙΝΕΜΑ
ΜΕΤΑΒΛΗΤΕΣ
 
ΑΚΕΡΑΙΕΣ: front, rear, επιλογη
 
ΑΚΕΡΑΙΕΣ: καταχωρηθηκαν, εξυπηρετηθηκαν, απορριψεις
 
ΧΑΡΑΚΤΗΡΕΣ: Α[25], ονομα
ΑΡΧΗ
  front 
<- 0
  rear 
<- 0
  καταχωρηθηκαν 
<- 0
  εξυπηρετηθηκαν 
<- 0
  απορριψεις 
<- 0

 
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
   
ΓΡΑΨΕ ‘Παρακαλώ επιλέξτε:’
   
ΓΡΑΨΕ ‘1. Προσθήκη θεατή’
   
ΓΡΑΨΕ ‘2. Αγορά εισιτηρίου’
   
ΓΡΑΨΕ ‘3. Τέλος’
   
ΔΙΑΒΑΣΕ επιλογη

   
ΑΝ επιλογη = 1 ΤΟΤΕ
       
ΓΡΑΨΕ ‘Δώσε όνομα θεατή:’
       
ΔΙΑΒΑΣΕ ονομα
       
ΑΝ rear = 25 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Δεν υπάρχουν διαθέσιμες θέσεις αναμονής.’
            απορριψεις 
<- απορριψεις + 1
       
ΑΛΛΙΩΣ_ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
            front 
<- 1
            rear 
<- 1
            Α
[rear] <- ονομα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΑΛΛΙΩΣ
            rear 
<- rear + 1
            Α
[rear] <- ονομα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΤΕΛΟΣ_ΑΝ

   
ΑΛΛΙΩΣ_ΑΝ επιλογη = 2 ΤΟΤΕ
       
ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Δεν υπάρχουν θεατές στην αναμονή.’
       
ΑΛΛΙΩΣ_ΑΝ front = rear ΤΟΤΕ
           
ΓΡΑΨΕ ‘Ο θεατής ‘, Α[front], ‘ αγόρασε εισιτήριο.’
            front 
<- 0
            rear 
<- 0
            εξυπηρετηθηκαν 
<- εξυπηρετηθηκαν + 1
       
ΑΛΛΙΩΣ
           
ΓΡΑΨΕ ‘Ο θεατής ‘, Α[front], ‘ αγόρασε εισιτήριο.’
            front 
<- front + 1
            εξυπηρετηθηκαν 
<- εξυπηρετηθηκαν + 1
       
ΤΕΛΟΣ_ΑΝ
   
ΤΕΛΟΣ_ΑΝ

 
ΜΕΧΡΙΣ_ΟΤΟΥ επιλογη = 3

 
ΓΡΑΨΕ ‘Θεατές που καταχωρήθηκαν: ‘, καταχωρηθηκαν
 
ΓΡΑΨΕ ‘Θεατές που εξυπηρετήθηκαν: ‘, εξυπηρετηθηκαν
 
ΓΡΑΨΕ ‘Απορρίψεις λόγω πληρότητας: ‘, απορριψεις
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!ΑΣΚΗΣΗ 4
!Στο θεματικό πάρκο Disneyland Paris, οι επισκέπτες περιμένουν σε ουρά για να επιβιβαστούν στο δημοφιλές παιχνίδι "Hyperspace Mountain". Για λόγους ασφαλείας και άνεσης, η ουρά έχει περιορισμένο μήκος 35 ατόμων.

!Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να εμφανίζει επαναληπτικά το παρακάτω μενού επιλογών:

!Καλωσορίσατε στο Hyperspace Mountain!
!Παρακαλώ επιλέξτε:

!Προσθήκη επισκέπτη στην ουρά

!Επιβίβαση ενός επισκέπτη στο παιχνίδι

!Τέλος – Αναφορά εξυπηρέτησης

!Αν η επιλογή είναι 1, να διαβάζεται το όνομα επισκέπτη και να προστίθεται στο τέλος της ουράς.
!Αν η ουρά είναι γεμάτη (μέγιστο 35 άτομα), να εμφανίζεται το μήνυμα:
!«Η ουρά για το Hyperspace Mountain είναι πλήρης!»

!Αν η επιλογή είναι 2, να επιβιβάζεται ο πρώτος επισκέπτης στην ουρά και να εμφανίζεται:
!«Ο επισκέπτης [όνομα] επιβιβάστηκε στο Hyperspace Mountain!»
!Αν δεν υπάρχει κανένας σε αναμονή, να εμφανίζεται:
!«Δεν υπάρχουν επισκέπτες στην ουρά.»

!Αν η επιλογή είναι 3, το πρόγραμμα να τερματίζει και να εμφανίζει:

!Πόσοι επισκέπτες καταχωρήθηκαν
!Πόσοι επισκέπτες επιβιβάστηκαν
!Πόσοι δεν μπόρεσαν να περιμένουν λόγω πληρότητας

!Δεν απαιτείται έλεγχος εγκυρότητας δεδομένων.

!Λύση
ΠΡΟΓΡΑΜΜΑ DISNEY
ΜΕΤΑΒΛΗΤΕΣ
 
ΑΚΕΡΑΙΕΣ: front, rear, επιλογη
 
ΑΚΕΡΑΙΕΣ: καταχωρηθηκαν, επιβιβαστηκαν, απορριψεις
 
ΧΑΡΑΚΤΗΡΕΣ: Α[35], ονομα
ΑΡΧΗ
  front 
<- 0
  rear 
<- 0
  καταχωρηθηκαν 
<- 0
  επιβιβαστηκαν 
<- 0
  απορριψεις 
<- 0

 
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
   
ΓΡΑΨΕ ‘Καλωσορίσατε στο Hyperspace Mountain!’
   
ΓΡΑΨΕ ‘1. Προσθήκη επισκέπτη’
   
ΓΡΑΨΕ ‘2. Επιβίβαση’
   
ΓΡΑΨΕ ‘3. Τέλος’
   
ΔΙΑΒΑΣΕ επιλογη

   
ΑΝ επιλογη = 1 ΤΟΤΕ
       
ΓΡΑΨΕ ‘Δώσε όνομα επισκέπτη:’
       
ΔΙΑΒΑΣΕ ονομα
       
ΑΝ rear = 35 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Η ουρά για το Hyperspace Mountain είναι πλήρης!’
            απορριψεις 
<- απορριψεις + 1
       
ΑΛΛΙΩΣ_ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
            front 
<- 1
            rear 
<- 1
            Α
[rear] <- ονομα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΑΛΛΙΩΣ
            rear 
<- rear + 1
            Α
[rear] <- ονομα
            καταχωρηθηκαν 
<- καταχωρηθηκαν + 1
       
ΤΕΛΟΣ_ΑΝ

   
ΑΛΛΙΩΣ_ΑΝ επιλογη = 2 ΤΟΤΕ
       
ΑΝ front = 0 ΚΑΙ rear = 0 ΤΟΤΕ
           
ΓΡΑΨΕ ‘Δεν υπάρχουν επισκέπτες στην ουρά.’
       
ΑΛΛΙΩΣ_ΑΝ front = rear ΤΟΤΕ
           
ΓΡΑΨΕ ‘Ο επισκέπτης ‘, Α[front], ‘ επιβιβάστηκε στο Hyperspace Mountain!’
            front 
<- 0
            rear 
<- 0
            επιβιβαστηκαν 
<- επιβιβαστηκαν + 1
       
ΑΛΛΙΩΣ
           
ΓΡΑΨΕ ‘Ο επισκέπτης ‘, Α[front], ‘ επιβιβάστηκε στο Hyperspace Mountain!’
            front 
<- front + 1
            επιβιβαστηκαν 
<- επιβιβαστηκαν + 1
       
ΤΕΛΟΣ_ΑΝ
   
ΤΕΛΟΣ_ΑΝ

 
ΜΕΧΡΙΣ_ΟΤΟΥ επιλογη = 3

 
ΓΡΑΨΕ ‘Επισκέπτες που καταχωρήθηκαν: ‘, καταχωρηθηκαν
 
ΓΡΑΨΕ ‘Επισκέπτες που επιβιβάστηκαν: ‘, επιβιβαστηκαν
 
ΓΡΑΨΕ ‘Απορρίψεις λόγω πληρότητας: ‘, απορριψεις
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ FIFO

You cannot copy content of this page

Ασκήσεις ΑΕΠΠ με Λύσεις – Θέματα Γ & Δ για Πανελλήνιες | infoclass.gr