Σάββατο, 5 Μαΐου 2012

Φιλτράρισμα με χρήση πίνακα

Θεωρείστε τους πίνακες:
* ΟΝ[500], που περιέχει τα ονοματεπώνυμα των 500 μαθητών
                   ενός γενικού λυκείου
* ΤΑΞΗ[500], που περιέχει την τάξη φοίτησης των μαθητών
                  αυτών (Α ή Β ή Γ),
* ΜΟ[500], που περιέχει τους μέσους όρους βαθμολογίας
                  των μαθητών αυτών (στην κλίμακα 0-20)
Γράψτε αλγόριθμο που με δεδομένους τους παραπάνω
πίνακες, υπολογίζει και εμφανίζει:
α) το πλήθος των μαθητών της Α' τάξης,
β) το ποσοστό (%) (επί του συνόλου των μαθητών
    της Β' τάξης) των μαθητών της Β' τάξης που έχουν
    μέσο όρο μεγαλύτερο από 16,
γ) το πλήθος των μαθητών της Γ' τάξης που έχουν μέσο
    όρο τουλάχιστον 18,
δ) αν το πλήθος που βρήκατε στο ερώτημα γ) είναι
    μεγαλύτερο από το 25% του συνολικού αριθμού των
    μαθητών της Γ' τάξης, εμφανίζει τα ονόματα και τους
    μέσους όρους των μαθητών αυτών με κατάλληλα
    διαμορφωμένα μηνύματα.
Παρατήρηση : Θεωρείστε ότι σε κάθε τάξη φοιτά ένας
τουλάχιστον μαθητής.

Λύση

     Αλγόριθμος Λύκειο
     Δεδομένα // ΟΝ, ΤΑΞΗ, ΜΟ //
     Αταξ <-- 0
     Βταξ <-- 0
     Βταξ16 <-- 0
     Γταξ <-- 0
     Γταξ18 <-- 0
     Για κ από 1 μέχρι 500
           Αν ΤΑΞΗ[κ] = 'Α' τότε
                 Αταξ <-- Αταξ+1
           αλλιώς_αν ΤΑΞΗ[Κ] = 'Β' τότε
                 Βταξ <-- Βταξ+1
                 Αν ΜΟ[κ] > 16 τότε
                       Βταξ16 <-- Βταξ16+1
                 Τέλος_αν
           αλλιώς
                 Γταξ <-- Γταξ+1
                 Αν ΜΟ[κ] >= 18 τότε
                        Γταξ18 <-- Γταξ18+1
                        ΟΝ18[Γταξ18] <-- ΟΝ[κ]
                        ΜΟ18[Γταξ18] <-- ΜΟ[κ]
                 Τέλος_αν
           Τέλος_αν
     Τέλος_επανάληψης
     ΠοσΒ <-- 100*Βταξ16/Βταξ
     Εμφάνισε Αταξ, ΠοσΒ, Γταξ18
     ΠοσΓ <-- 100*Γταξ18/Γταξ
     Αν ΠοσΓ > 25 τότε
            Για κ από 1 μέχρι Γταξ18
                 Εμφάνισε ΟΝ18[κ], ΜΟ18[κ]
            Τέλος_επανάληψης
     Τέλος_αν
     Τέλος Λύκειο
   

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

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