Procedures - Άσκηση 3 - Κλήση διαδικασίας μέσα σε δομή επανάληψης

Να δημιουργήσετε πρόγραμμα το οποίο για τους 100 υπαλλήλους μιας εταιρείας πραγματοποιεί τα παρακάτω:
Α. Διαβάζει τα ονόματα των υπαλλήλων σε πίνακα ΟΝ[100], επίσης διαβάζει τους μισθούς των υπαλλήλων ανά μήνα και τους αποθηκεύει σε πίνακα ΜΙΣ[100,12].
Β. Βρίσκει τη μέση μισθοδοσία όλων των υπαλλήλων ανά μήνα.
Γ.  Εμφανίζει για κάθε μήνα το πλήθος των υπαλλήλων που είχαν μισθοδοσία μεγαλύτερη από τη μέση μισθοδοσία του μήνα.
Δ. Δίνει τη δυνατότητα στην επιχείρηση να ελέγχει αν η ετήσια μισθοδοσία κάθε υπαλλήλου ξεπέρασε ένα συγκεκριμένο όριο ως εξής: Διαβάζει το όριο και για κάθε υπάλληλο καλεί διαδικασία που δέχεται τον αριθμό γραμμής του πίνακα ΜΙΣ όπου βρίσκονται οι μηνιαίες μισθοδοσίες του υπαλλήλου, τον πίνακα ΜΙΣ και το όριο και επιστρέφει στο πρόγραμμα την τιμή «αληθής» αν η ετήσια μισθοδοσία του υπαλλήλου ξεπέρασε το όριο ή την τιμή «Ψευδής» στην αντίθετη περίπτωση. Το πρόγραμμα εμφανίζει για κάθε υπάλληλο το όνομά του και δίπλα το μήνυμα «ξεπέρασε το όριο» ή το μήνυμα  «δε ξεπέρασε το όριο».
 
Λύση: 
ΠΡΟΓΡΑΜΜΑ ΜΙΣΘΟΔΟΣΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: I, J, ΠΛ
ΛΟΓΙΚΕΣ: ΑΠΟΤ
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΙΣ[100, 12], MO[12], S, ΟΡΙΟ
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[100]
ΑΡΧΗ
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ ΟΝ[I]
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 12
ΔΙΑΒΑΣΕ ΜΙΣ[I, J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 12
S ← 0
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 100
S ← S + ΜΙΣ[I, J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
MO[J] S/100
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 12
ΠΛ ← 0
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 100
ΑΝ ΜΙΣ[I, J] > MO[J] ΤΟΤΕ
ΠΛ ← ΠΛ + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Τον', J, 'μήνα', 'οι υπάλληλοι που είχαν μισθοδοσία μεγαλύτερο από τη μέση μισθοδοσία του μήνα & είναι', ΠΛ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΟΡΙΟ
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 100
ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ (I, ΜΙΣ, ΟΡΙΟ, ΑΠΟΤ)
ΑΝ ΑΠΟΤ = ΑΛΗΘΗΣ ΤΟΤΕ
ΓΡΑΨΕ 'Ο', ΟΝ[I] , 'ξεπέρασε το όριο'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Ο', ΟΝ[I] , 'δε ξεπέρασε το όριο'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 
-----------------------------------------------------------------------------------------------------
ΔΙΑΔΙΚΑΣΙΑ ΕΛΕΓΧΟΣ (I, ΜΙΣ, ΟΡΙΟ, ΑΠΟΤ)
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: S, ΟΡΙΟ, ΜΙΣ[100, 12]
ΛΟΓΙΚΕΣ: ΑΠΟΤ
ΑΚΕΡΑΙΕΣ: I, J
ΑΡΧΗ
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 12
S ← S + ΜΙΣ[I, J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ S > ΟΡΙΟ ΤΟΤΕ
ΑΠΟΤ ← ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
ΑΠΟΤ ← ΨΕΥΔΗΣ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ