Παρασκευή, 19 Ιανουαρίου 2018

All Star Game

Βαθμός Δυσκολίας:
4/5
Εκφώνηση Ασκησης: 

Κάθε χρόνο στην Ελλάδα γίνεται μια εκδήλωση, το λεγόμενο All-Star Game, στην οποία συμμετέχουν 24 επιλεγμένοι καλαθοσφαιριστές. Οι αθλητές χωρίζονται σε δύο ομάδες όπου τις αποτελούν 12 Έλληνες την μία και 12 Ξένοι την άλλη. Θέλοντας να υπολογίσουν τα στατιστικά του αγώνα χρειάζονται έναν αλγόριθμο σε ΓΛΩΣΣΑ ο οποίος:

α) να καλεί υποπρόγραμμα, για κάθε ομάδα ξεχωριστά, το οποίο θα διαβάζει τα ονόματα, τους πόντους και τα ριμπάουντ κάθε παίκτη.

β) να καλεί υποπρόγραμμα, για κάθε ομάδα, το οποίο να βρίσκει το όνομα του παίκτη με τους περισσότερους πόντους.

γ) να καλεί υποπρόγραμμα το οποίο να υπολογίζει και να εμφανίζει τα ονόματα των 6 παικτών που είχαν τα περισσότερα ριμπάουντ και από τις δύο ομάδες μαζί. 

Η άσκηση συμμετέχει στο διαγωνισμό "Σας πάμε σινεμά"

Επιμέλεια: Τάσος Πλιάτσικας

Λύση Άσκησης: 
 
ΠΡΟΓΡΑΜΜΑ All_Star_Game
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: Ον1[12], Ον2[12], πρώτος_σκορερ1, πρώτος_σκορερ2
  ΑΚΕΡΑΙΕΣ: Ριμπ1[12], Ποντ1[12], Ριμπ2[12], Ποντ2[12] 
ΑΡΧΗ
 
!Ερώτημα α
  ΚΑΛΕΣΕ ΕΙΣ(Ον1, Ποντ1, Ριμπ1) 
  ΚΑΛΕΣΕ ΕΙΣ(Ον2, Ποντ2, Ριμπ2) 
 
!Ερώτημα β
  πρώτος_σκορερ1 <- ΕΥΡ_ΣΚΟΡΕΡ(Ον1, Ποντ1) 
  πρώτος_σκορερ2 <- ΕΥΡ_ΣΚΟΡΕΡ(Ον2, Ποντ2) 
  ΓΡΑΨΕ "Ο πρώτος σκόρερ της πρώτης ομάδας είναι ο ", πρώτος_σκορερ1
  ΓΡΑΨΕ "Ο πρώτος σκόρερ της δεύτερης ομαδας είναι ο ", πρώτος_σκορερ2
 
!Ερώτημα γ
  ΚΑΛΕΣΕ ΡΙΜΠΑΟΥΝΤΕΡΣ(Ον1, Ριμπ1, Ον2, Ριμπ2) 
 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 
!Η διαδικασία του α ερωτήματος
ΔΙΑΔΙΚΑΣΙΑ ΕΙΣ(Ον, Ποντ, Ριμπ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: Ον[12] 
  ΑΚΕΡΑΙΕΣ: Ριμπ[12], Ποντ[12], ι
 
ΑΡΧΗ
 
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 12
    ΓΡΑΨΕ "Δώσε το όνομα του ", ι, " παίκτη."
    ΔΙΑΒΑΣΕ Ον[ι] 
    ΓΡΑΨΕ "Δώσε τους πόντους του ", Ον[ι] 
    ΔΙΑΒΑΣΕ Ποντ[ι] 
    ΓΡΑΨΕ "Δώσε τα ριμπάουντ του ", Ον[ι] 
    ΔΙΑΒΑΣΕ Ριμπ[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 
!Η συνάρτηση του β ερωτήματος
ΣΥΝΑΡΤΗΣΗ ΕΥΡ_ΣΚΟΡΕΡ(Ον, Ποντ): ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, Ποντ[12], Μαχ
  ΧΑΡΑΚΤΗΡΕΣ: ον_σκορ, Ον[12] 
ΑΡΧΗ
  Μαχ <- Ποντ[1] 
  ον_σκορ <- Ον[1] 
  ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 12
    ΑΝ Ποντ[ι] > Μαχ ΤΟΤΕ
      Μαχ <- Ποντ[ι] 
      ον_σκορ <- Ον[ι] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΕΥΡ_ΣΚΟΡΕΡ <- ον_σκορ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 
!Η διαδικασία του γ ερωτήματος
ΔΙΑΔΙΚΑΣΙΑ ΡΙΜΠΑΟΥΝΤΕΡΣ(Ον1, Ριμπ1, Ον2, ΡιμΠ2) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, j, Ριμπ1[12], ΡιμΠ2[12], Ριμπ[12], tmp
  ΧΑΡΑΚΤΗΡΕΣ: Ον[12], Ον1[12], Ον2[12], tmp1
 
ΑΡΧΗ
 
!Συγχωνεύουμε τους δύο πίνακες με τα Ονόματα και τους δύο πίνακες με τα Ριμπάουντ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 24
    ΑΝ ι <= 12 ΤΟΤΕ
      Ον[ι] <- Ον1[ι] 
      Ριμπ[ι] <- Ριμπ1[ι] 
    ΑΛΛΙΩΣ
      Ον[ι] <- Ον1[ι - 12] 
      Ριμπ[ι] <- Ριμπ1[ι - 12] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Στη συνέχεια θα ταξινομήσουμε τα ονόματα με βάση τα ριμπάουντ κάθε παίκτη.
  ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 24
    ΓΙΑ j ΑΠΟ 24 ΜΕΧΡΙ ι ΜΕ_ΒΗΜΑ -1
      ΑΝ Ριμπ[j] > Ριμπ[j - 1] ΤΟΤΕ
        tmp <- Ριμπ[j] 
        Ριμπ[j] <- Ριμπ[j - 1] 
        Ριμπ[j - 1] <- tmp
        tmp1 <- Ον[j] 
        Ον[j] <- Ον[j - 1] 
        Ον[j - 1] <- tmp1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
  ΓΡΑΨΕ "Οι 6 παίκτες με τα περισσότερα ριμπάουντ είναι οι: "
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 6
    ΓΡΑΨΕ Ον[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ