Επιλογή Σελίδας

Σ’ ένα ασανσέρ επιτρέπεται να επιβιβασθούν 8 άτομα και το μέγιστο επιτρεπτό ωφέλιμο βάρος στο ασανσέρ είναι 900 κιλά. Το ασανσέρ ξεκινά όταν γεμίσει (όταν το σύνολο των ατόμων δεν ξεπερνά τα 8 άτομα ή αν το συνολικό βάρος δεν υπερβαίνει τα 900 κιλά) ή όταν δεν υπάρχει άλλο άτομο για να επιβιβασθεί στον όροφο που έχει σταματήσει. Το ασανσέρ κάνει συνολικά 8 στάσεις. Σε κάθε στάση, εκτός της τελευταίας, το πρόγραμμα εμφανίζει το μήνυμα «Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)». Αν η απάντηση είναι «ΝΑΙ» εισάγεται το βάρος του ατόμου και έτσι σηματοδοτείται η επιβίβασή του στο ασανσέρ. Η παραπάνω διαδικασία επαναλαμβάνεται μέχρι να δοθεί η απάντηση «ΟΧΙ» και να σταματήσει η επιβίβαση.
Επίσης σε κάθε στάση, εκτός από την πρώτη, το πρόγραμμα εμφανίζει το μήνυμα «Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)», αν η απάντηση είναι «ΝΑΙ» εισάγεται το βάρος του ατόμου και έτσι* σηματοδοτείται η επιβίβαση αποβίβαση στο ασανσέρ. Η πα­ραπάνω διαδικασία επαναλαμβάνεται μέχρι να δοθεί η απάντηση «ΟΧΙ».
Να γραφεί πρόγραμμα που να περιγράφει την παραπάνω λειτουργία του ασανσέρ και στο τέλος να τυπώνει το σύνολο των ατόμων που εισείλθαν στο ασανσέρ στη 1η στάση και το σύνολο των ατόμων που αποβιβάστηκαν στην 8η στάση.
Παρατήρηση*: Απαραίτητη προσθήκη στην αρχική άσκηση, για να λυθεί χωρίς τη βοήθεια πινάκων.

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ ΑΣΚ14_ΠΑΡ_Α_ΙΕΠ_2017
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: στάση, άτομα , Επιβαίνοντες1ης, βάρος_ολ, βάρος_ατ 
  ΛΟΓΙΚΕΣ: επιβιβάζονται, αποβιβάζονται
  ΧΑΡΑΚΤΗΡΕΣ: απάντηση     

ΑΡΧΗ 
  άτομα <-- 0
  βάρος_ολ <-- 0

  ΓΙΑ στάση ΑΠΟ 1 ΜΕΧΡΙ 8
    ΓΡΑΨΕ 'ΣΤΑΣΗ ', στάση

    ΓΡΑΨΕ 'ΕΠΙΒΙΒΑΣΗ'
    επιβιβάζονται <-- ΑΛΗΘΗΣ
    ΟΣΟ επιβιβάζονται = ΑΛΗΘΗΣ ΚΑΙ βάρος_ολ < 900 ΚΑΙ άτομα < 8 ΚΑΙ στάση <> 8 ΕΠΑΝΑΛΑΒΕ
      
      ΓΡΑΨΕ 'Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)'
      ΔΙΑΒΑΣΕ απάντηση
      ΑΝ απάντηση = 'ΝΑΙ' ΤΟΤΕ
        ΓΡΑΨΕ 'ΒΑΡΟΣ: '
        ΔΙΑΒΑΣΕ βάρος_ατ
        ΑΝ βάρος_ολ + βαρος_ατ <=900 ΤΟΤΕ
          βάρος_ολ <-- βάρος_ολ + βάρος_ατ
          άτομα <-- άτομα + 1
        ΑΛΛΙΩΣ   
          ΓΡΑΨΕ 'ΑΔΥΝΑΤΟ - ΥΠΕΡΒΑΣΗ ΒΑΡΟΥΣ'
        ΤΕΛΟΣ_ΑΝ
      ΑΛΛΙΩΣ_ΑΝ απάντηση = 'ΟΧΙ' ΤΟΤΕ
        επιβιβάζονται <-- ΨΕΥΔΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ στάση = 1 ΤΟΤΕ
      Επιβαίνοντες1ης <-- άτομα
    ΤΕΛΟΣ_ΑΝ

    ΓΡΑΨΕ 'ΑΠΟΒΙΒΑΣΗ' 
    αποβιβάζονται <-- ΑΛΗΘΗΣ
    ΟΣΟ αποβιβάζονται = ΑΛΗΘΗΣ ΚΑΙ άτομα > 0 ΚΑΙ στάση <> 1 ΕΠΑΝΑΛΑΒΕ

      ΓΡΑΨΕ 'Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)'
      ΔΙΑΒΑΣΕ απάντηση
      ΑΝ απάντηση = 'ΝΑΙ' ΤΟΤΕ
        ΓΡΑΨΕ 'ΒΑΡΟΣ: '
        ΔΙΑΒΑΣΕ βάρος_ατ         ! Δεν περιλαμβάνεται στην εκφώνηση, βλ.Παρατήρηση
        βάρος_ολ <-- βάρος_ολ - βάρος_ατ
        άτομα <-- ατομα - 1
      ΑΛΛΙΩΣ_ΑΝ απάντηση = 'ΟΧΙ' ΤΟΤΕ
        αποβιβάζονται <-- ΨΕΥΔΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Εισήλθαν στην 1η στάση', Επιβαίνοντες1ης
  ΓΡΑΨΕ 'Εξήλθαν στην 8η στάση', άτομα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

Share This