Σάββατο 6 Νοεμβρίου 2010

Άσκηση : Μονοδιάστατοι πίνακες (Φιλτράρισμα+Ταξινόμηση)

Γράψτε αλγόριθμο που διαβάζει τα ονοματεπώνυμα, τους
αριθμούς φορολογικού μητρώου και την φορολογική
ενημερότητα (1- δεν έχει καμία οφειλή, 2 - έχει οφειλές)
20 ελεύθερων επαγγελματιών, καταχωρώντας τα δεδομένα
αυτά σε κατάλληλους μονοδιάστατους πίνακες. Στη συνέχεια
υπολογίζει και εμφανίζει :
α) πόσοι ελεύθεροι επαγγελματίες δεν έχουν καμία οφειλή
    στην εφορία,
β) πόσοι ελεύθεροι επαγγελματίες έχουν οφειλές στην εφορία,
γ) τα ονοματεπώνυμα και τους αριθμούς φορολογικού μητρώου
    των ελεύθερων επαγγελματιών που δεν έχουν καμία οφειλή
    στην εφορία, κατά αλφαβητική σειρά των ονοματεπωνύμων
    τους (αγνοείστε την περίπτωση της συνωνυμίας).

Λύση

     Αλγόριθμος Επαγγελματίες
     Για λ από 1 μέχρι 20
           Διάβασε ΟΝ[λ], ΑΦΜ[λ], Ενημ[λ]
     Τέλος_επανάληψης
     ΜεΟφ <-- 0
     ΧωρΟφ <-- 0
     Για λ από μέχρι 20
           Αν Ενημ[λ] = 1 τότε
                ΧωρΟφ <-- ΧωρΟφ+1
                ΟΝΧωρΟφ[ΧωρΟφ] <-- ΟΝ[λ]
                ΑΦΜΧωρΟφ[ΧωρΟφ] <-- ΑΦΜ[λ]
           αλλιώς
                ΜεΟφ <-- ΜεΟφ+1
           Τέλος_αν
     Τέλος_επανάληψης
     Εμφάνισε ΧωρΟφ, ΜεΟφ
     Για κ από 2 μέχρι ΧωρΟφ
          Για λ από ΧωρΟφ μέχρι κ με_βήμα -1
                Αν ΟΝΧωρΟφ[λ-1] > ΟΝΧωρΟφ[λ] τότε
                       Βοηθ <-- ΟΝΧωρΟφ[λ-1]
                       ΟΝΧωρΟφ[λ-1] <-- ΟΝΧωρΟφ[λ]
                       ΟΝΧωρΟφ[λ] <-- Βοηθ
                       ΤΕΜΡ <-- ΑΦΜΧωρΟφ[λ-1]
                       ΑΦΜΧωρΟφ[λ-1] <-- ΑΦΜΧωρΟφ[λ]
                       ΑΦΜΧωρΟφ[λ] <-- ΤΕΜΡ
                Τέλος_αν
          Τέλος_επανάληψης
     Τέλος_επανάληψης
     Για κ από 1 μέχρι ΧωρΟφ
           Εμφάνισε ΟΝΧωρΟφ[κ], ΑΦΜΧωρΟφ[κ]
     Τέλος_επανάληψης
     Τέλος Επαγγελματίες

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

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