Επιλογή Σελίδας

Να ξαναγράψεις την άσκηση ΔΣ6 του κεφαλαίου 9, τα αποτελέσματα των αγώνων ομίλου του EuroBasket, χρησιμοποιώντας διαδικασίες και συναρτήσεις.

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ Πρωτάθλημα ! Έστω 5 ομάδες στον όμιλο
ΜΕΤΑΒΛΗΤΕΣ 
ΧΑΡΑΚΤΗΡΕΣ : Σ1[5, 5], ΟΜΑΔΑ[5], βοηθητική1  
ΑΚΕΡΑΙΕΣ : Π1[5, 5], ΒΑΘΜΟΙ[5], ΔΙΑΦΟΡΑ[5], i, j, βοηθητική2 
ΑΡΧΗ  
ΚΑΛΕΣΕ Αρχικοποίηση_Πίνακα_Ακεραίων(ΒΑΘΜΟΙ)
ΚΑΛΕΣΕ Αρχικοποίηση_Πίνακα_Ακεραίων(ΔΙΑΦΟΡΑ)
ΚΑΛΕΣΕ Εισαγωγή_Δεδομένων(ΟΜΑΔΑ, Π1, Σ1)
ΚΑΛΕΣΕ Υπολογισμός_Βαθμών_Διαφοράς(Π1, Σ1, ΒΑΘΜΟΙ, ΔΙΑΦΟΡΑ)
ΚΑΛΕΣΕ Ταξινόμηση_Φθιν_Πίνακα(ΒΑΘΜΟΙ, ΔΙΑΦΟΡΑ, ΟΜΑΔΑ)
ΚΑΛΕΣΕ Εμφάνιση_αποτελεσμάτων(ΒΑΘΜΟΙ, ΔΙΑΦΟΡΑ, ΟΜΑΔΑ)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ Αρχικοποίηση_Πίνακα_Ακεραίων(πίνακας)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: πίνακας[5], Ι
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
    πίνακας[Ι]<--0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Εισαγωγή_Δεδομένων(ΟΜΑΔΑ, Π1, Σ1)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Π1[5,5], i, j
ΧΑΡΑΚΤΗΡΕΣ: ΟΜΑΔΑ[5], Σ1[5,5]
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
    ΓΡΑΨΕ 'ΔΩΣΕ ΟΝΟΜΑ ΟΜΑΔΑΣ ', i 
    ΔΙΑΒΑΣΕ ΟΜΑΔΑ[i] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΓΡΑΨΕ 'Δώστε Nίκη (Ν) /Ήττα (H)' 
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
    ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ 5 
! Άνω τριγωνικός 
        ΓΡΑΨΕ 'Ομάδα ', ΟΜΑΔΑ [i], 'εναντίον ομάδας ', ΟΜΑΔΑ[j] 
        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 
            ΔΙΑΒΑΣΕ Σ1[i, j] 
        ΜΕΧΡΙΣ_ΟΤΟΥ (Σ1[i, j] = 'Ν') Η (Σ1[i, j] = 'Η')  
        ΓΡΑΨΕ 'Διαφορά πόντων για τον αγώνα αυτό' 
        ΔΙΑΒΑΣΕ Π1[i, j] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Υπολογισμός_Βαθμών_Διαφοράς(π1, σ1, βαθμοί, διαφορά)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, j, π1[5,5], βαθμοί[5], διαφορά[5]
ΧΑΡΑΚΤΗΡΕΣ: σ1[5,5]
ΑΡΧΗ
! Οι ομάδες, που συμμετέχουν, σε ένα αγώνα, βαθμολογούνται με 
!    α. δύο βαθμούς (2), στη περίπτωση νίκης
!    β. ένα βαθμό (1), στη περίπτωση ήττας.
! H διαφορά πόντων προσμετράται μόνο στον νικητή.
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
    ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ 5 
        ΑΝ (σ1[i, j] = 'N') ΤΟΤΕ 
            βαθμοί[i] <-- βαθμοί[i] + 2 
            βαθμοί[j] <-- βαθμοί[j] + 1 
            διαφορά[i] <-- διαφορά[i] + π1[i, j] 
        ΑΛΛΙΩΣ 
            βαθμοί[i] <-- βαθμοί[i] + 1 
            βαθμοί[j] <-- βαθμοί[j] + 2 
            διαφορά[j] <-- διαφορά[j] + π1[i, j] 
         ΤΕΛΟΣ_ΑΝ 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση_Φθιν_Πίνακα(βαθμοί, διαφορά, ομάδα)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, j, βαθμοί[5], διαφορά[5], βοηθητική2
ΧΑΡΑΚΤΗΡΕΣ: ομάδα[5], βοηθητική1
ΑΡΧΗ
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 5 
     ΓΙΑ j ΑΠΟ 5 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1 
         ΑΝ (ΒΑΘΜΟΙ[j-1] < ΒΑΘΜΟΙ[j]) ΤΟΤΕ 
 ! φθίνουσα ταξινόμηση ως προς τη βαθμολογία 
   ! αντιμετάθεση πίνακα βαθμολογίας 
             βοηθητική2 <-- βαθμοί[j-1] 
             βαθμοί[j-1] <-- βαθμοί[j] 
             βαθμοί[j] <-- βοηθητική2 
   ! ταυτόχρονη αντιμετάθεση πίνακα διαφορών 
             βοηθητική2 <-- διαφορά[j-1] 
             διαφορά[j-1] <-- διαφορά[j] 
             διαφορά[j] <-- βοηθητική2 
   ! ταυτόχρονη αντιμετάθεση πίνακα ονομάτων 
             βοηθητική1 <-- ομάδα[j-1] 
             ομάδα[j-1] <-- ομάδα[j] 
             ομάδα[j] <-- βοηθητική1 
         ΑΛΛΙΩΣ_ΑΝ (ΒΑΘΜΟΙ[j-1] = ΒΑΘΜΟΙ[j]) ΤΟΤΕ !σε περίπτωση ισοβαθμίας 
!φθίνουσα ταξινόμηση ως προς τη διαφορά πόντων 
   ! αντιμετάθεση πίνακα διαφορών
                ΑΝ (διαφορά[j-1] < διαφορά[j]) ΤΟΤΕ 
                    βοηθητική2 <-- διαφορά[j-1] 
                    διαφορά[j-1] <-- διαφορά[j] 
                    διαφορά[j] <-- βοηθητική2 
   !ταυτόχρονη αντιμετάθεση πίνακα ονομάτων 
                    βοηθητική1 <-- ομάδα[j-1] 
                    ομάδα[j-1] <-- ομάδα[j] 
                    ομάδα[j] <-- βοηθητική1 
                ΤΕΛΟΣ_ΑΝ 
         ΤΕΛΟΣ_ΑΝ 
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ Εμφάνιση_αποτελεσμάτων(βαθμοί, διαφορά, ομάδα)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i, βαθμοί[5], διαφορά[5]
ΧΑΡΑΚΤΗΡΕΣ: ομάδα[5]
ΑΡΧΗ
ΓΡΑΨΕ 'ΤΕΛΙΚΗ ΚΑΤΑΤΑΞΗ:'
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5
    ΓΡΑΨΕ ομάδα[i], ' ΒΑΘΜΟΙ ', βαθμοί[i], 'ΔΙΑΦΟΡΑ ΠΟΝΤΩΝ ', διαφορά[i] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Share This