Να γραφεί πρόγραμμα σε «ΓΛΩΣΣΑ», το οποίο να περιγράφει τη λειτουργία ενός συγκεκριμένου ασανσέρ. Ο θάλαμος του ασανσέρ χωράει μέχρι 8 άτομα με το μέγιστο συνολικά επιτρεπτό ωφέλιμο βάρος των ατόμων να είναι 900 κιλά. Το ασανσέρ ξεκινά όταν το σύνολο των ατόμων στον θάλαμο δεν ξεπερνά τους οκτώ ή όταν το συνολικό βάρος των ατόμων δεν υπερβαίνει τα 900 κιλά ή όταν δεν υπάρχει άλλο άτομο να εισέλθει σε αυτό από τον κάθε όροφο που έχει σταματήσει. Το ασανσέρ κάνει συνολικά 8 στάσεις (μία σε κάθε όροφο). Σε κάθε στάση, εκτός της τελευταίας, το πρόγραμμα εμφανίζει το μήνυμα «Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)». Αν η απάντηση είναι «ΝΑΙ» τότε «εισάγεται» το βάρος του ατόμου και έτσι σηματοδοτείται η πρόθεσή του να εισέλθει στο ασανσέρ. Η παραπάνω διαδικασία επαναλαμβάνεται μέχρι να δοθεί η απάντηση «ΟΧΙ».
Επίσης, σε κάθε στάση, εκτός από την πρώτη, το πρόγραμμα εμφανίζει το μήνυμα «Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)», αν η απάντηση είναι «ΝΑΙ» τότε «εξάγεται» το βάρος του ατόμου κι έτσι σηματοδοτείται η έξοδός του από το ασανσέρ. Η παραπάνω διαδικασία επαναλαμβάνεται μέχρι να δοθεί η απάντηση «ΟΧΙ».
Το πρόγραμμα υπολογίζει και τυπώνει:
– το σύνολο των ατόμων που εισέρχονται στον θάλαμο του ασανσέρ σε κάθε στάση (εκτός της τελευταίας στάσης),
– το σύνολο των ατόμων που εξέρχονται από κάθε στάση (εκτός της πρώτης στάσης),
– σε όλες τις στάσεις, πλην της 8ης, το πλήθος των ατόμων που βρίσκονται στον θάλαμο αμέσως πριν την εκκίνηση του ασανσέρ για την επόμενη στάση.
– σε όλες τις στάσεις, πλην της 8ης,το συνολικό βάρος των ατόμων που βρίσκονται στον θάλαμο αμέσως πριν την εκκίνηση του ασανσέρ για την επόμενη στάση.
Σημειώνεται ότι:
– η λειτουργία του ασανσέρ επιτρέπει μία μόνο μετάβαση από την 1η μέχρι και την 8η στάση
– στην 1η στάση επιτρέπεται μόνο η είσοδος και όχι η έξοδος από τον θάλαμο,
– στην 8η στάση εξέρχονται όλοι από τον θάλαμο χωρίς να επιτρέπεται νέα είσοδος
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΑΝΣΕΡ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΣΤΑΣΗ, ΑΤΟΜΑ_ΕΙΣ, ΑΤΟΜΑ_ΕΞ, ΑΤΟΜΑ_ΘΑ, ΣΒΑΡΟΣ, ΒΑΡΟΣ_ΕΙΣ, ΒΑΡΟΣ_ΕΞ
ΧΑΡΑΚΤΗΡΕΣ: ΑΠΑΝΤΗΣΗ
ΑΡΧΗ
ΑΤΟΜΑ_ΘΑ <- 0 ! ΑΤΟΜΑ ΣΤΟΝ ΘΑΛΑΜΟ
ΣΒΑΡΟΣ <- 0 ! ΒΑΡΟΣ ΑΤΟΜΩΝ ΣΤΟΝ ΘΑΛΑΜΟ
! ΤΟ ΑΣΑΝΣΕΡ ΚΙΝΕΙΤΑΙ 1 ΦΟΡΑ ΑΠΟ ΤΟΝ 1 ΣΤΟΝ 8 ΟΡΟΦΟ
ΓΙΑ ΣΤΑΣΗ ΑΠΟ 1 ΜΕΧΡΙ 8
ΓΡΑΨΕ 'ΣΤΑΣΗ ', ΣΤΑΣΗ
ΑΝ ΣΤΑΣΗ <> 1 ΤΟΤΕ
!ΑΠΟΒΙΒΑΣΗ
ΑΝ ΑΤΟΜΑ_ΘΑ <> 0 ΤΟΤΕ ! ΥΠΑΡΧΟΥΝ ΑΤΟΜΑ ΣΤΟΝ ΘΑΛΑΜΟ
ΑΤΟΜΑ_ΕΞ <- 0 ! ΑΤΟΜΑ ΠΟΥ ΕΞΕΡΧΟΝΤΑΙ ΣΤΗ ΣΤΑΣΗ
! 1 ΔΙΑΒΑΣΜΑ ΕΞΩ ΑΠΟ ΤΗΝ ΕΠΑΝΑΛΗΨΗ
ΓΡΑΨΕ 'Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)'
ΔΙΑΒΑΣΕ ΑΠΑΝΤΗΣΗ
ΟΣΟ ΑΠΑΝΤΗΣΗ <> 'ΟΧΙ' ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ 'ΒΑΡΟΣ ΕΞΕΡΧΟΜΕΝΟΥ'
ΔΙΑΒΑΣΕ ΒΑΡΟΣ_ΕΞ
ΣΒΑΡΟΣ <- ΣΒΑΡΟΣ - ΒΑΡΟΣ_ΕΞ !ΑΦΑΙΡΕΙΤΑΙ ΑΠΟ ΤΟ ΣΥΝΟΛΙΚΟ
ΑΤΟΜΑ_ΘΑ <- ΑΤΟΜΑ_ΘΑ - 1 ! ΑΦΑΙΡ ΑΠΟ ΤΟ ΑΤΟΜΑ ΘΑΛΑΜΟΥ
ΑΤΟΜΑ_ΕΞ <- ΑΤΟΜΑ_ΕΞ + 1 ! ΠΡΟΣΜΕΤΡΑΤΑΙ ΣΕ ΟΣΟΥΣ ΑΠΟΒΙΒΑΖΟΝΤΑΙ
! 1 ΔΙΑΒΑΣΜΑ ΣΤΟ ΤΕΛΟΣ ΤΗΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Υπάρχει άτομο να εξέλθει; (ΝΑΙ ή ΟΧΙ)'
ΔΙΑΒΑΣΕ ΑΠΑΝΤΗΣΗ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΑΤΟΜΑ ΕΞΗΛΘΑΝ ', ΑΤΟΜΑ_ΕΞ ! ΕΡΩΤ1
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Ο ΘΑΛΑΜΟΣ ΕΙΝΑΙ ΑΔΕΙΟΣ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΑΝ ΣΤΑΣΗ <> 8 ΤΟΤΕ
! ΕΠΙΒΙΒΑΣΗ
ΑΤΟΜΑ_ΕΙΣ <- 0 ! ΑΤΟΜΑ ΠΟΥ ΕΙΣΕΡΧΟΝΤΑΙ ΣΤΗ ΣΤΑΣΗ
! 1 ΔΙΑΒΑΣΜΑ ΕΞΩ ΑΠΟ ΤΗΝ ΕΠΑΝΑΛΗΨΗ
ΓΡΑΨΕ 'Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)'
ΔΙΑΒΑΣΕ ΑΠΑΝΤΗΣΗ
ΟΣΟ ΑΠΑΝΤΗΣΗ <> 'ΟΧΙ' ΕΠΑΝΑΛΑΒΕ
ΑΝ ΑΤΟΜΑ_ΘΑ < 8 ΤΟΤΕ
ΓΡΑΨΕ 'ΒΑΡΟΣ ΕΙΣΕΡΧΟΜΕΝΟΥ'
ΔΙΑΒΑΣΕ ΒΑΡΟΣ_ΕΙΣ
ΑΝ ΣΒΑΡΟΣ + ΒΑΡΟΣ_ΕΙΣ >= 800 ΤΟΤΕ
ΓΡΑΨΕ '>ΜΕΓΙΣΤΟ ΒΑΡΟΣ'
ΑΛΛΙΩΣ
ΣΒΑΡΟΣ <- ΣΒΑΡΟΣ + ΒΑΡΟΣ_ΕΙΣ
ΑΤΟΜΑ_ΘΑ <- ΑΤΟΜΑ_ΘΑ + 1
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ΓΡΑΨΕ '>ΜΕΓΙΣΤΟ ΑΤΟΜΩΝ'
ΤΕΛΟΣ_ΑΝ
! 1 ΔΙΑΒΑΣΜΑ ΣΤΟ ΤΕΛΟΣ ΤΗΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Υπάρχει άτομο να εισέλθει; (ΝΑΙ ή ΟΧΙ)'
ΔΙΑΒΑΣΕ ΑΠΑΝΤΗΣΗ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'ΑΤΟΜΑ ΕΙΣΗΛΘΑΝ ', ΑΤΟΜΑ_ΕΙΣ ! ΕΡΩΤ1
ΓΡΑΨΕ 'ΑΤΟΜΑ ΣΤΟ ΘΑΛΑΜΟ ΣΤΗΝ ΕΚΚΙΝΗΣΗ', ΑΤΟΜΑ_ΘΑ ! ΕΡΩΤ3
ΓΡΑΨΕ 'ΒΑΡΟΣ ΣΤΗΝ ΕΚΚΙΝΗΣΗ ', ΣΒΑΡΟΣ ! ΕΡΩΤ4
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! ΣΤΑΣΕΙΣ 1-8
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Πρόσφατα σχόλια