Παρασκευή, 21 Μαΐου 2010

Άσκηση : Φιλτράρισμα πίνακα

Σε μια επιχείρηση εργάζονται 50 υπάλληλοι. Γράψτε αλγόριθμο
ο οποίος:
α) διαβάζει τα ονοματεπώνυμα των 50 υπαλλήλων και τα καταχωρεί
    στον πίνακα ΟΝΟΜ[50],
β) διαβάζει τους αριθμούς φορολογικού μητρώου των υπαλλήλων
    αυτών και τους καταχωρεί στον πίνακα ΑΦΜ[50],
γ) διαβάζει την οικογενειακή κατάσταση (έγγαμος ή άγαμος ή
    διαζευγμένος ή χήρος) των υπαλλήλων αυτών  και την
    καταχωρεί  στον πίνακα ΟΙΚ[50],
δ) υπολογίζει και εμφανίζει:
    * το πλήθος των έγγαμων υπαλλήλων,
    * το ποσοστό (%) των διαζευγμένων υπαλλήλων,
ε) εμφανίζει τα ονοματεπώνυμα και τους αριθμούς φορολογικού
    μητρώου των υπαλλήλων που είναι άγαμοι, κατά αλφαβητική
    σειρά των ονοματεπωνύμων τους.
Παρατηρήσεις
1) Δεν απαιτείται κανένας έλεγχος για την εγκυρότητα των
    εισερχόμενων δεδομένων.
 2) Θεωρείστε ότι υπάρχει τουλάχιστον ένας άγαμος
     υπάλληλος.

Λύση
    
     Αλγόριθμος Υπ
     Για λ από 1 μέχρι 50
          Διάβασε ΟΝΟΜ[λ]
          Διάβασε ΑΦΜ[λ]
          Διάβασε ΟΙΚ[λ]
     Τέλος_επανάληψης
     'Εγγαμοι <-- 0
      Διαζευμένοι <-- 0
      'Αγαμοι <-- 0
      Για λ από 1 μέχρι 50
           Αν ΟΙΚ[λ] = 'έγγαμος' τότε
                 Έγγαμοι <-- Έγγαμοι+1
           αλλιώς_αν ΟΙΚ[λ] = 'διαζευγμένος' τότε
                 Διαζευγμένοι <-- Διαζευγμένοι+1
           αλλιώς
                 Αν ΟΙΚ[λ] = 'άγαμος' τότε
                       Άγαμοι <-- Άγαμοι+1
                       ΟΝΑΓ[Άγαμοι] <-- ΟΝΟΜ[λ]
                       ΑΦΜΑΓ[Άγαμοι] <-- ΑΦΜ[λ]
                 Τέλος_αν
            Τέλος_αν
      Τέλος_επανάληψης
      Ποσοστό <-- 100*Διαζευγμένοι/50
      Γράψε Έγγαμοι, Ποσοστό
      Για λ από 2 μέχρι Άγαμοι
          Για μ από Άγαμοι μέχρι λ με_βήμα -1
               Αν ΟΝΑΓ[μ-1] > ΟΝΑΓ[μ] τότε
                    Βοηθ <-- ΟΝΑΓ[μ-1]
                    ΟΝΑΓ[μ-1] <-- ΟΝΑΓ[μ]
                    ΟΝΑΓ[μ] <-- Βοηθ
                    ΤΕΜΡ <-- ΑΦΜΑΓ[μ-1]
                    ΑΦΜΑΓ[μ-1] <-- ΑΜΑΓ[μ]
                    ΑΦΜΑΓ[μ] <-- ΤΕΜΡ
               Τέλος_αν
          Τέλος_επανάληψης
      Τέλος_επανάληψης
      Για λ από 1 μέχρι Άγαμοι
          Γράψε ΟΝΑΓ[λ], ΑΦΜΑΓ[λ]
      Τέλος_επανάληψης 
      Τέλος Υπ   

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

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