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