ΘΕΜΑ Γ
Στο πλαίσιο ενός τοπικού σχολικού πρωταθλήματος βόλεϊ συμμετέχουν 5 σχολεία, αριθμημένα από το 1 έως το 5. Κάθε σχολείο παίζει μία φορά με όλα τα υπόλοιπα. Άρα θα πραγματοποιηθούν συνολικά 10 αγώνες. Νικητής ενός αγώνα είναι το σχολείο που έχει κερδίσει 3 σετ. Ο νικητής παίρνει 2 βαθμούς και ο ηττημένος 1 βαθμό.
Κάθε αγώνας προσδιορίζεται από τα σχολεία που παίζουν μεταξύ τους και το αποτέλεσμα του αγώνα σε σετ. Για παράδειγμα, η σειρά των στοιχείων: 4, 5, 1, 3 σημαίνει ότι το σχολείο 4 έπαιξε με το σχολείο 5 και έχασε τον αγώνα με 1 σετ υπέρ και 3 κατά. Αυτό αντίστοιχα σημαίνει ότι το σχολείο 5 κέρδισε τον αγώνα με το σχολείο 4 με 3 σετ υπέρ και 1 σετ κατά.
Τα δεδομένα των αγώνων αποθηκεύονται σε έναν δισδιάστατο πίνακα Α[5,3], όπου κάθε γραμμή αντιστοιχεί σε ένα σχολείο. Η τελική μορφή του πίνακα Α θα περιέχει για κάθε σχολείο, στην πρώτη (1η) στήλη τη βαθμολογία του (το άθροισμα των βαθμών του), στη δεύτερη (2η) το άθροισμα των σετ υπέρ και στην τρίτη (3η) το άθροισμα των σετ κατά, από όλους τους αγώνες.
Να κατασκευάσετε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:
Γ1. α) Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων. (μονάδες 2)
β) Να διαβάζει τα ονόματα των 5 σχολείων και να τα καταχωρίζει στον πίνακα ΟΝ [5]. Η σειρά των σχολείων καθορίζει την αρίθμησή τους (1 έως 5). (μονάδες 2)
γ) Να αρχικοποιεί τον πίνακα Α[5,3]. (μονάδες 2)
Μονάδες 6
Γ2. Να διαβάζει για κάθε αγώνα τη σειρά των 4 στοιχείων που τον προσδιορίζουν και να ενημερώνει τον πίνακα Α και για τα δύο σχολεία όπως περιγράφεται παραπάνω.
Μονάδες 6
Γ3. Να κατατάσσει τα σχολεία σε φθίνουσα σειρά ανάλογα με τη βαθμολογία τους και σε περίπτωση ισοβαθμίας να προηγείται το σχολείο με τα περισσότερα σετ υπέρ.
Μονάδες 6
Γ4. Να εμφανίζει τα ονόματα των σχολείων, τη βαθμολογία τους, το άθροισμα των σετ υπέρ και το άθροισμα των σετ κατά, με βάση τη σειρά κατάταξής τους.
Μονάδες 2
Σημείωση: Θεωρείστε ότι δεν υπάρχει περίπτωση δύο σχολεία να έχουν και την ίδια βαθμολογία και τον ίδιο αριθμό σετ υπέρ.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΜΑΙΟΣ_2017_ΘΕΜΑ_Γ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: ΑΠ[5, 3], Ι, J, Κ, TEMP, Ο1, Ο2, Σ1, Σ2
ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[5], TEMP2
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΔΙΑΒΑΣΕ ΟΝ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 3
ΑΠ[Ι, J] <- 0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΔΙΑΒΑΣΕ Ο1, Ο2, Σ1, Σ2
ΑΝ Σ1 > Σ2 ΤΟΤΕ
ΑΠ[Ο1, 1] <- ΑΠ[Ο1, 1] + 2
ΑΠ[Ο2, 1] <- ΑΠ[Ο2, 1] + 1
ΑΛΛΙΩΣ
ΑΠ[Ο1, 1] <- ΑΠ[Ο1, 1] + 1
ΑΠ[Ο2, 1] <- ΑΠ[Ο2, 1] + 2
ΤΕΛΟΣ_ΑΝ
ΑΠ[Ο1, 2] <- - ΑΠ[Ο1, 2] + Σ1
ΑΠ[Ο1, 3] <- ΑΠ[Ο1, 3] + Σ2
ΑΠ[Ο2, 2] <- ΑΠ[Ο2, 2] + Σ2
ΑΠ[Ο2, 3] <- ΑΠ[Ο2, 3] + Σ1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Γ3 Α ΤΡΟΠΟΣ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 5
ΓΙΑ J ΑΠΟ 20 ΜΕΧΡΙ Ι ΜΕ ΒΗΜΑ -1
ΑΝ ΑΠ[J - 1, 1] < ΑΠ[J, 1] ΤΟΤΕ ! ΦΘΙΝΟΥΣΑ ΤΑΞΙΝΟΜΗΣΗ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 3
TEMP <- ΑΠ[J - 1, Κ]
ΑΠ[J - 1, Κ] <- ΑΠ[J, Κ]
ΑΠ[J, Κ] <- TEMP
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
TEMP2 <- ΟΝ[J - 1]
ΟΝ[J - 1] <- ΟΝ[J]
ΟΝ[J] <- TEMP2
ΑΛΛΙΩΣ_ΑΝ ΑΠ[J - 1, 1] = ΑΠ[J, 1] ΤΟΤΕ
ΑΝ ΑΠ[J - 1, 2] < ΑΠ[J, 2] ΤΟΤΕ !ΑΝ ΤΟ ΠΡΟΗΓΟΥΜΕΝΟ ΕΊΝΑΙ ΜΙΚΡΟΤΕΡΟ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 3
TEMP <- ΑΠ[J - 1, Κ]
ΑΠ[J - 1, Κ] <- ΑΠ[J, Κ]
ΑΠ[J, Κ] <- TEMP
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
TEMP2 <- ΟΝ[J - 1]
ΟΝ[J - 1] <- ΟΝ[J]
ΟΝ[J] <- TEMP2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 3
ΓΡΑΨΕ ΑΠ[Ι, J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ</code class="language-javascript">
!Γ3 Β ΤΡΟΠΟΣ
! ΠΡΩΤΑ ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΒΑΣΗ ΤΑ ΚΕΡΔΙΣΜΕΝΑ ΣΕΤ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 5
ΓΙΑ J ΑΠΟ 5 ΜΕΧΡΙ Ι ΜΕ ΒΗΜΑ -1
ΑΝ ΑΠ[J - 1, 2] < ΑΠ[J, 2] ΤΟΤΕ ! ΦΘΙΝΟΥΣΑ ΤΑΞΙΝΟΜΗΣΗ
! ΔΕΝ ΑΝΤΙΜΕΤΑΘΕΤΩ ΜΟΝΟ ΤΟ ΣΤΟΙΧΕΙΟ ΑΛΛΑ ΟΛΗ ΤΗΝ ΓΡΑΜΜΗ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 3
TEMP <- ΑΠ[J - 1, Κ]
ΑΠ[J - 1, Κ] <- ΑΠ[J, Κ]
ΑΠ[J, Κ] <- TEMP
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
TEMP2 <- ΟΝ[J - 1]
ΟΝ[J - 1] <- ΟΝ[J]
ΟΝ[J] <- TEMP2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! ΜΕΤΑ ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΒΑΣΗ ΤΗΝ ΒΑΘΜΟΛΟΓΙΑ
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 5
ΓΙΑ J ΑΠΟ 5 ΜΕΧΡΙ Ι ΜΕ ΒΗΜΑ -1
ΑΝ ΑΠ[J - 1, 1] < ΑΠ[J, 1] ΤΟΤΕ ! ΦΘΙΝΟΥΣΑ ΤΑΞΙΝΟΜΗΣΗ
! ΔΕΝ ΑΝΤΙΜΕΤΑΘΕΤΩ ΜΟΝΟ ΤΟ ΣΤΟΙΧΕΙΟ ΑΛΛΑ ΟΛΗ ΤΗΝ ΓΡΑΜΜΗ
ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 3
TEMP <- ΑΠ[J - 1, Κ]
ΑΠ[J - 1, Κ] <- ΑΠ[J, Κ]
ΑΠ[J, Κ] <- TEMP
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
TEMP2 <- ΟΝ[J - 1]
ΟΝ[J - 1] <- ΟΝ[J]
ΟΝ[J] <- TEMP2
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
</code class="language-javascript">
Πρόσφατα σχόλια