Υποπρογράμματα - Άσκηση 4 - Ταξινόμηση με υποπρόγραμμα

 
Να δημιουργηθεί πρόγραμμα το οποίο διαβάζει τα ονόματα και τους μισθούς 100 υπαλλήλων μιας επιχείρησης και με την βοήθεια της Διαδικασίας TAX πραγματοποιεί αύξουσα ταξινόμηση των στοιχείων με βάση το μισθό, αν ο μισθός είναι ίδιος τότε κάνει αλφαβητική ταξινόμηση με βάση το όνομα του υπαλλήλου. Το πρόγραμμα εμφανίζει τα ονόματα των υπαλλήλων με τους 2 μεγαλύτερους μισθούς.
 
Λύση: 
ΠΡΟΓΡΑΜΜΑ Ζ2
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ : ΟΝ[100]
ΠΡΑΓΜΑΤΙΚΕΣ : ΜΙΣΘΟΣ[100]
ΑΚΕΡΑΙΕΣ
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΓΡΑΨΕ ΄ΔΩΣΕ ΤΟ ΟΝΟΜΑ ΚΑΙ ΤΟ ΜΙΣΘΟ ΤΟΥ΄,Ι,΄ΥΠΑΛΛΗΛΟΥ΄
ΔΙΑΒΑΣΕ ΟΝ[Ι], ΜΙΣΘΟΣ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΤΑΧ(ΟΝ,ΜΙΣΘΟΣ)
ΓΡΑΨΕ ΄ΤΟΥΣ 2 ΚΑΛΥΤΕΡΟΥΣ ΜΙΣΘΟΥΣ ΤΟΥΣ ΕΧΟΥΝ ΟΙ:΄, ΟΝ[100], ΟΝ[99]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 
-----------------------------------------------------------------------------------------------
 
ΔΙΑΔΙΚΑΣΙΑ ΤΑΧ(Ο,Μ)
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ : Ο[100], Z
ΠΡΑΓΜΑΤΙΚΕΣ : Μ[100], C
ΑΚΕΡΑΙΕΣ : Ι,J
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 100
ΓΙΑ ΑΠΟ 100 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
ΑΝ Μ[J-1] > M [J] TOTE
C ← M[J-1]
M[J-1] ← M[J]
M[J] ← C
Z ← O[J-1]
O[J-1] ← O[J]
O[J] ← Z
ΤΕΛΟΣ_ΑΝ
ΑΝ Μ[J-1] = M [J] TOTE
ΑΝ Ο[J-1] > O[J] TOTE
Z ← O[J-1]
O[J-1] ← O[J]
O[J] ← Z
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ