e-ΜΑΘΗΜΑΤΑ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό περιβάλλον

Λύσεις ασκήσεων από τον Οδηγό Μελέτης Μαθητών


ΠΡΟΓΡΑΜΜΑ Ανελκυστήρας
! ΑΕΠΠ - Οδηγός Μελέτης Μαθητή
! Μη λυμένες ασκήσεις 3.6.14
!
! 14. Σ’ ένα ασανσέρ επιτρέπεται να επιβιβασθούν 8 άτομα και το μέγιστο επιτρεπτό
! ωφέλιμο βάρος στο ασανσέρ είναι 900 κιλά. Το ασανσέρ ξεκινά όταν γεμίσει (όταν
! το σύνολο των ατόμων δεν ξεπερνά τα 8 άτομα ή αν το συνολικό βάρος δεν
! υπερβαίνει τα 900 κιλά) ή όταν δεν υπάρχει άλλο άτομο για να επιβιβασθεί στον
! όροφο που έχει σταματήσει. Το ασανσέρ κάνει συνολικά 8 στάσεις . Σε κάθε στάση,
! εκτός της τελευταίας, το πρόγραμμα εμφανίζει το μήνυμα "Υπάρχει άτομο να
! εισέλθει; (ΝΑΙ ή ΟΧΙ)".
! Αν η απάντηση είναι "ΝΑΙ" εισάγεται το βάρος του ατόμου και έτσι σηματοδοτείται
! η επιβίβασή του στο ασανσέρ. Η παραπάνω διαδικασία επαναλαμβάνεται μέχρι να
! δοθεί η απάντηση "ΟΧΙ" και να σταματήσει η επιβίβαση.
! Επίσης σε κάθε στάση, εκτός από την πρώτη, το πρόγραμμα εμφανίζει το μήνυμα
! "Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)", αν η απάντηση είναι "ΝΑΙ"
! σηματοδοτείται η επιβίβαση στο ασανσέρ. Η παραπάνω διαδικασία επαναλαμβάνεται
! μέχρι να δοθεί η απάντηση "ΟΧΙ".
! Να γραφεί πρόγραμμα που να περιγράφει την παραπάνω λειτουργία του ασανσέρ και
! στο τέλος να τυπώνει το σύνολο των ατόμων που εισήλθαν στο ασανσέρ στη 1η
! στάση και το σύνολο των ατόμων που αποβιβάστηκαν στην 8η στάση.

ΣΤΑΘΕΡΕΣ
  μέγιστο_βάρος = 900
  μέγιστο_πλήθος = 8
  αριθμός_ορόφων = 8

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, πλήθος_επιβατών, όροφος
  ΠΡΑΓΜΑΤΙΚΕΣ: συνολικό_βάρος, βάρος
  ΛΟΓΙΚΕΣ: τέλος_αποβίβασης, τέλος_επιβίβασης
  ΧΑΡΑΚΤΗΡΕΣ: απάντηση
  ΑΚΕΡΑΙΕΣ: άτομα_πρώτης_στάσης, άτομα_τελευταίας_στάσης

ΑΡΧΗ
! αρχικοποιήσεις

  όροφος <- 1
  πλήθος_επιβατών <- 0
  συνολικό_βάρος <- 0
  άτομα_τελευταίας_στάσης <- 0

  ΟΣΟ όροφος <= αριθμός_ορόφων ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Όροφος ', όροφος

!   αποβίβαση
    τέλος_αποβίβασης <- ΨΕΥΔΗΣ
    ΟΣΟ όροφος <> 1 ΚΑΙ πλήθος_επιβατών > 0 ΚΑΙ ΟΧΙ τέλος_αποβίβασης ΕΠΑΝΑΛΑΒΕ

      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)'
        ΔΙΑΒΑΣΕ απάντηση
      ΜΕΧΡΙΣ_ΟΤΟΥ απάντηση = 'ΝΑΙ' Η απάντηση = 'ΟΧΙ'
      ΑΝ απάντηση = 'ΝΑΙ' ΤΟΤΕ
        πλήθος_επιβατών <- πλήθος_επιβατών - 1
        ΑΝ όροφος = αριθμός_ορόφων ΤΟΤΕ
          άτομα_τελευταίας_στάσης <- άτομα_τελευταίας_στάσης + 1
        ΤΕΛΟΣ_ΑΝ

        ΓΡΑΨΕ 'Δώστε βάρος επιβάτη που εξέρχεται : '
        ΔΙΑΒΑΣΕ βάρος
        συνολικό_βάρος <- συνολικό_βάρος - βάρος
        ΑΝ συνολικό_βάρος < 0 ΤΟΤΕ
          συνολικό_βάρος <- 0
        ΤΕΛΟΣ_ΑΝ

      ΑΛΛΙΩΣ
        τέλος_αποβίβασης <- ΑΛΗΘΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ



!   επιβίβαση
    τέλος_επιβίβασης <- ΨΕΥΔΗΣ
    ΟΣΟ όροφος <> αριθμός_ορόφων ΚΑΙ πλήθος_επιβατών < μέγιστο_πλήθος ΚΑΙ ΟΧΙ τέλος_επιβίβασης ΕΠΑΝΑΛΑΒΕ
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)'
        ΔΙΑΒΑΣΕ απάντηση
      ΜΕΧΡΙΣ_ΟΤΟΥ απάντηση = 'ΝΑΙ' Η απάντηση = 'ΟΧΙ'
      ΑΝ απάντηση = 'ΝΑΙ' ΤΟΤΕ
        ΓΡΑΨΕ 'Δώστε βάρος επιβάτη που θέλει να εισέλθει : '
        ΔΙΑΒΑΣΕ βάρος
        ΑΝ συνολικό_βάρος + βάρος < μέγιστο_βάρος ΤΟΤΕ
          συνολικό_βάρος <- συνολικό_βάρος + βάρος
          πλήθος_επιβατών <- πλήθος_επιβατών + 1
        ΑΛΛΙΩΣ
          ΓΡΑΨΕ 'ΥΠΕΡΦΟΡΤΩΜΕΝΟ!'
        ΤΕΛΟΣ_ΑΝ

      ΑΛΛΙΩΣ
        τέλος_επιβίβασης <- ΑΛΗΘΗΣ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ όροφος = 1 ΤΟΤΕ
      άτομα_πρώτης_στάσης <- πλήθος_επιβατών
    ΤΕΛΟΣ_ΑΝ


    όροφος <- όροφος + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Σύνολο ατόμων που εισήλθαν στην 1η στάση : ', άτομα_πρώτης_στάσης
  ΓΡΑΨΕ 'Σύνολο ατόμων που αποβιβάστηκαν στην τελευταία στάση : ', άτομα_τελευταίας_στάσης
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

© 2016 - 2ο Γενικό Λύκειο Γέρακα - Βασίλειος Αναστόπουλος