Δευτέρα 10 Ιανουαρίου 2011

Άσκηση : δυσδιάστατος πίνακας (ιδιαίτερο διάβασμα+μέσοι όροι ανά στήλη)

15 κορυφαίοι προπονητές του κόσμου καλούνται από
μεγάλο τηλεοπτικό κανάλι προκειμένου να αξιολογήσουν
ο ένας τον άλλο. Στη διαδικασία αυτή μπαίνουν οι
ακόλουθοι κανόνες:
* η βαθμολογία είναι στην ακέραια κλίμακα 50-100,
* κανένας προπονητής δεν μπορεί να βαθμολογήσει
   τον εαυτό του,
* κάθε προπονητής πρέπει να βαθμολογήσει 6 από τους
   14 συναδέλφους του (οι υπόλοιποι βαθμολογούνται με
   0).
Γράψτε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:
α) διαβάζει τα ονοματεπώνυμα των προπονητών και τα
     καταχωρεί σε κατάλληλο πίνακα,
β) διαβάζει τη βαθμολογία των προπονητών και την
    καταχωρεί σε κατάλληλο πίνακα,
γ) υπολογίζει τη συνολική βαθμολογία που συγκέντρωσε
    κάθε προπονητής,
δ) εμφανίζει το ονοματεπώνυμο του προπονητή ή των
    προπονητών που συγκέντρωσαν τη μεγαλύτερη
    συνολική βαθμολογία.
ΠΑΡΑΤΗΡΗΣΗ : Το πρόγραμμα πρέπει να διασφαλίζει την
εγκυρότητα όλων των εισερχόμενων δεδομένων.

Λύση


       ΠΡΟΓΡΑΜΜΑ ΠΡΟΠΟΝ
       ΜΕΤΑΒΛΗΤΕΣ
             ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[15]
             ΑΚΕΡΑΙΕΣ: Β[15, 15], Κ, Λ, Σ, ΑΘΡ[15], Πλήθος,
                                   ΜΑΧ
             ΛΟΓΙΚΕΣ: ΕΝΤ
       ΑΡΧΗ
             ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 15
                  ΔΙΑΒΑΣΕ ΟΝ[Κ]
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 15
                  ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 15
                         Β[Κ, Λ] <-- 0
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                  Πλήθος <-- 0
                  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                        ΕΝΤ <-- ΨΕΥΔΗΣ
                        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ      
                             ΔΙΑΒΑΣΕ Λ
                             ΑΝ (Λ < 1) Ή (Λ > 15) ΤΟΤΕ
                                ΓΡΑΨΕ 'Η επιλογή σας είναι εκτός ορίων'
                             ΑΛΛΙΩΣ_ΑΝ Β[Κ, Λ] < > 0 ΤΟΤΕ
                                ΓΡΑΨΕ 'Ο προπονητής αυτός έχει ήδη βαθμό'
                             ΑΛΛΙΩΣ_ΑΝ Κ = Λ ΤΟΤΕ
                                ΓΡΑΨΕ 'Δεν επιτρέπεται αυτοαξιολόγηση'
                             ΑΛΛΙΩΣ
                                 ΕΝΤ <-- ΑΛΗΘΗΣ
                             ΤΕΛΟΣ_ΑΝ
                        ΜΕΧΡΙΣ_ΟΤΟΥ ΕΝΤ = ΑΛΗΘΗΣ
                        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
                             ΔΙΑΒΑΣΕ Β[Κ, Λ]
                       ΜΕΧΡΙΣ_ΟΤΟΥ (Β[Κ, Λ] >= 50) ΚΑΙ
                                                   (Β[Κ, Λ] <= 100) 
                       Πλήθος <-- Πλήθος+1
                  ΜΕΧΡΙΣ_ΟΤΟΥ Πλήθος = 6
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
              ΓΙΑ Λ ΑΠΟ ΜΕΧΡΙ 15
                  Σ <-- 0
                  ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                         Σ <-- Σ+Β[Κ, Λ] 
                  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                  ΑΘΡ[Λ] <-- Σ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΜΑΧ <-- ΑΘΡ[1]
             ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 15
                  ΑΝ ΑΘΡ[Κ] > ΜΑΧ ΤΟΤΕ
                        ΜΑΧ <-- ΑΘΡ[Κ]
                  ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
             ΓΙΑ Κ ΑΠΟ ΜΕΧΡΙ 15
                  ΑΝ ΑΘΡ[Κ] = ΜΑΧ ΤΟΤΕ
                        ΓΡΑΨΕ ΟΝ[Κ]
                  ΤΕΛΟΣ_ΑΝ
             ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ          
       ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

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

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