Μάθημα : ΓΕΛ Γ - ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Κωδικός : 0754020319

G-GEL - ΔΗΜΗΤΡΙΟΣ ΜΑΣΣΑΣ

Ενότητες μαθήματος

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ-ΣΤΟΙΒΕΣ

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

Ένας χειριστής περονοφόρου τοποθετεί μεταλλικές πλάκες τη μια πάνω στην άλλη σε ένα ράφι το οποίο έχει μέγιστη αντοχή φόρτωσης 2000 κιλά. Η διαδικασία γίνεται με χρήση λογισμικού το οποίο υλοποιείται με στοίβα 50 θέσεων σε κάθε θέση της οποίας τοποθετείται το βάρος της μεταλλικής πλάκας σε κιλά.

Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:

Α. Περιέχει κατάλληλο τμήμα δηλώσεων.

Β. Εμφανίζει το παρακάτω μενού επιλογών με έλεγχο εγκυρότητας:

  1. Φόρτωση ραφιού
  2. Εξαγωγή από το ράφι
  3. Έξοδος

Γ. Στη περίπτωση της φόρτωσης υλοποιεί την διαδικασία της ώθησης ως εξής:

    Διαβάζει το βάρος της μεταλλικής πλάκας που ζητείται να τοποθετηθεί στο ράφι.

    Αν το συνολικό βάρος του ραφιού μετά την ώθηση δεν ξεπερνά την αντοχή φόρτωσης του ραφιού τότε εισάγει το βάρος της νέας μεταλλικής πλάκας στην κορυφή της στοίβας.

Εμφανίζει το συνολικό βάρος των περιεχομένων του ραφιού μετά την ώθηση.

Θεωρείστε ότι αρχικά το ράφι είναι άδειο.

Δ. Στην περίπτωση της εξαγωγής από το ράφι υλοποιεί την διαδικασία της απώθησης ως εξής:

     Διαβάζει το επιθυμητό βάρος των μεταλλικών πλακών που θα βγουν από το ράφι.

     Απωθεί τόσα στοιχεία από την κορυφή της στοίβας ώστε το συνολικό τους βάρος να είναι μικρότερο ή ίσο με το προς εξαγωγή βάρος.

     Εμφανίζει το συνολικό βάρος των περιεχομένων του ραφιού μετά τις απωθήσεις.

 

ΠΡΟΓΡΑΜΜΑ στοιβα_ραφι
ΣΤΑΘΕΡΕΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΣΤ[50], ΕΠΙΛΟΓΗ, ΦΟΡΤΙΟ, ΒΑΡΟΣ, TOP, SUM
ΑΡΧΗ
  TOP <- 0
  ΦΟΡΤΙΟ <- 0
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ "1. Φόρτωση ραφιού"
      ΓΡΑΨΕ "2. Εξαγωγή από το ράφι"
      ΓΡΑΨΕ "3. Έξοδος"
      ΔΙΑΒΑΣΕ ΕΠΙΛΟΓΗ
    ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ >= 1 ΚΑΙ ΕΠΙΛΟΓΗ <= 3
    ΕΠΙΛΕΞΕ ΕΠΙΛΟΓΗ
      ΠΕΡΙΠΤΩΣΗ 1
        ΔΙΑΒΑΣΕ ΒΑΡΟΣ
        ΑΝ TOP <= 50 ΚΑΙ ΦΟΡΤΙΟ + ΒΑΡΟΣ <= 2000 ΤΟΤΕ
          TOP <- TOP + 1
          ΣΤ[TOP] <- ΒΑΡΟΣ
          ΦΟΡΤΙΟ <- ΦΟΡΤΙΟ + ΒΑΡΟΣ
          ΓΡΑΨΕ ΦΟΡΤΙΟ
        ΑΛΛΙΩΣ
          ΓΡΑΨΕ "Αδύνατη η φόρτωση"
        ΤΕΛΟΣ_ΑΝ
      ΠΕΡΙΠΤΩΣΗ 2
        ΑΝ TOP >= 1 ΤΟΤΕ
          ΔΙΑΒΑΣΕ ΒΑΡΟΣ
          ΑΝ ΒΑΡΟΣ <= ΦΟΡΤΙΟ ΤΟΤΕ
            SUM <- 0
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
              SUM <- SUM + ΣΤ[TOP] 
              ΑΝ SUM <= ΒΑΡΟΣ ΚΑΙ TOP >= 1 ΤΟΤΕ
                ΦΟΡΤΙΟ <- ΦΟΡΤΙΟ - ΣΤ[TOP] 
                TOP <- TOP - 1
                ΓΡΑΨΕ ΦΟΡΤΙΟ
              ΤΕΛΟΣ_ΑΝ
            ΜΕΧΡΙΣ_ΟΤΟΥ SUM >= ΒΑΡΟΣ
          ΤΕΛΟΣ_ΑΝ
        ΑΛΛΙΩΣ
          ΓΡΑΨΕ "Ράφι άδειο"
        ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ = 3
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ