Δευτέρα, 19 Ιανουαρίου 2015

Ταξινόμηση με πολλαπλά κριτήρια

Θεωρήστε τους πίνακες ΟΝ[300], ΕΠΩΝ[300], ΑΜ[300] που
περιέχουν τα ονόματα, τα επώνυμα και τους αριθμούς
μητρώου των 300 μαθητών ενός γενικού λυκείου.
Γράψτε αλγόριθμο που εμφανίζει τους αριθμούς μητρώου,
τα ονόματα και τα επώνυμα των μαθητών κατά αλφαβητική
σειρά των επωνύμων. Σε περίπτωση που δύο ή περισσότεροι
μαθητές έχουν το ίδιο επίθετο, ακολουθείται η αλφαβητική
σειρά των ονομάτων. Όταν και τα ονόματα συμπίπτουν
προηγούνται στη σειρά εμφάνισης οι μαθητές με το
μικρότερο αριθμό μητρώου.

Λύση

Αλγόριθμος Λίστα
Δεδομένα // ΟΝ, ΕΠΩΝ, ΑΜ //
Για κ από 2 μέχρι 300
    Για λ από 300 μέχρι κ με_βήμα -1
        Αν ΕΠΩΝ[λ-1] > ΕΠΩΝ[λ] τότε
            Αντιμετάθεσε ΕΠΩΝ[λ-1], ΕΠΩΝ[λ]
            Αντιμετάθεσε ΟΝ[λ-1], ΟΝ[λ]
            Αντιμετάθεσε ΑΜ[λ-1], ΑΜ[λ]
        αλλιώς_αν (ΕΠΩΝ[λ-1] = ΕΠΩΝ[λ]) ΚΑΙ
                           (ΟΝ[λ-1] > ΟΝ[λ]) τότε
            Αντιμετάθεσε ΟΝ[λ-1], ΟΝ[λ]
            Αντιμετάθεσε ΑΜ[λ-1], ΑΜ[λ]
        αλλιώς
             Αν (ΕΠΩΝ[λ-1] = ΕΠΩΝ[λ]) ΚΑΙ
                   (ΟΝ[λ-1] = ΟΝ[λ]) ΚΑΙ
                   (ΑΜ[λ-1] > ΑΜ[λ])  τότε
                    Αντιμετάθεσε ΑΜ[λ-1], ΑΜ[λ]
             Τέλος_αν
        Τέλος_αν
    Τέλος_επανάληψης
Τέλος_επανάληψης
Για κ από 1 μέχρι 300
     Εμφάνισε ΟΝ[κ], ΕΠΩΝ[κ], ΑΜ[κ]
Τέλος_επανάληψης
Τέλος Λίστα

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου