Σάββατο, 21 Οκτωβρίου 2017

Τι είδος μουσικής ακούτε;

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

Η στατιστική υπηρεσία "I hate maths" θέλησε να μετρήσει και να βγάλει στατιστικά για τα είδη της μουσικής που ακούνε οι μαθητές ενός σχολείου. Γι' αυτή την προσπάθεια θα χρειαστεί ένα πρόγραμμα το οποίο θα κάνει τα εξής:

 

Α) Θα διαβάζει και θα αποθηκεύει σε ένα πίνακα ΟΝΕΠ[150] το όνομα του μαθητή και στο πίνακα ΗΛ[150] την ηλικία του.

 

Β) Θα καλεί υποπρόγραμμα ΕΙΣ για να γεμίσει τον πίνακα ΕΙΔ_Μ[150] με τος είδος της μουσικής που ακούει ο κάθε μαθητής. Στο υποπρόγραμμα θα βγαίνει το εξής μενού:

"ΜΕΝΟΥ ΕΠΙΛΟΓΩΝ

1. ROCK

2. METAL

3. Έντεχνο

4. POP

Πληκτρολόγησε τον αριθμό ανάλογα με το είδος της μουσικής που ακούς."

 

και στη συνέχεια ο μαθητής θα επιλέγει ένα από αυτά πατώντας τον κατάλληλο αριθμό. Ο αριθμός αυτός θα αποθηκεύεται στον πίνακα. Σε περίπτωση που πληκτρολογήσει λάθος αριθμό να του βγαίνει κατάλληλο μήνυμα. 

 

Γ) Θα καλεί συνάρτηση Υπ_Ειδ η οποία θα υπολογίζει για κάθε είδος το πλήθος των μαθητών που το ακούνε.

 

Δ) Να αποθηκεύει στον πίνακα ΕΙΔΗ[4] το σύνολο των μαθητών που ακούνε κάθε είδος.

 

Ε) Να εμφανίζει το πλήθος των μαθητών που είναι κάτω από 15 χρονών και ακούνε το είδος με την μεγαλύτερη απήχηση . 

Επιμέλεια: mstamos.gr

Λύση Άσκησης: 

 

ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΕΠ[200] 
  ΑΚΕΡΑΙΕΣ: ΗΛ[200], ΕΙΔ_Μ[200], ΕΙΔΗ[4], ΜΑΧ, ειδ_ΜΑΧ, πλ_μαθ, ι
 
ΑΡΧΗ
 
!Ερώτημα Α
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 200
    ΓΡΑΨΕ "Δώσε το όνομα του/της μαθητή/τριας"
    ΔΙΑΒΑΣΕ ΟΝΕΠ[ι] 
    ΓΡΑΨΕ "Δώσε την ηλικία για τον/την ", ΟΝΕΠ[ι] 
    ΔΙΑΒΑΣΕ ΗΛ[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Ερώτημα Β
!Θα χρησιμοποιήσουμε διαδικασία γιατί θα πρέπει να επιστρέψουμε πάνω από μία τιμή στο κυρίως πρόγραμμα μας.
  ΚΑΛΕΣΕ ΕΙΣ(ΟΝΕΠ, ΕΙΔ_Μ) 
 
!Ερώτημα Γ
!Θα καλέσουμε τη συνάρτηση για κάθε διαφορετικό είδος μουσικής.
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 4
!Ερώτημα Δ
    ΕΙΔΗ[ι] <- Υπ_Ειδ(ΕΙΔ_Μ, ι) 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Ερώτημα Ε
!Αρχικά θα βρούμε το είδος της μουσικής με την μεγαλύτερη απήχηση στους μαθητές. Είναι η τεχνική της εύρεσης μεγίστου σε μονοδιάστατο πίνακα.
  ΜΑΧ <- ΕΙΔΗ[1] 
  ειδ_ΜΑΧ <- 1
  ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 4
    ΑΝ ΕΙΔΗ[ι] > ΜΑΧ ΤΟΤΕ
      ΜΑΧ <- ΕΙΔΗ[ι] 
      ειδ_ΜΑΧ <- ι
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Αφού βρήκαμε το είδος με την μεγαλύτερη απήχηση τώρα θα πάμε να βρούμε το πλήθος των μαθητών που ακούν αυτό το είδος και είναι κάτω από 15 χρονών.
  πλ_μαθ <- 0
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 200
    ΑΝ ΕΙΔ_Μ[ι] = ειδ_ΜΑΧ ΚΑΙ ΗΛ[ι] < 15 ΤΟΤΕ
      πλ_μαθ <- πλ_μαθ + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ "Το πλήθος των μαθητών που ακούνε ", ΕΙΔΗ[ειδ_ΜΑΧ], " και είναι κάτω από 15 χρονών είναι ", πλ_μαθ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
 
!Η διαδικασία του Β ερωτήματος
ΔΙΑΔΙΚΑΣΙΑ ΕΙΣ(ΟΝΕΠ, ΕΙΔ_Μ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΟΝΕΠ[200] 
  ΑΚΕΡΑΙΕΣ: ΕΙΔ_Μ[200], ι
ΑΡΧΗ
 
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 200
    ΓΡΑΨΕ "ΜΕΝΟΥ ΕΠΙΛΟΓΩΝ"
    ΓΡΑΨΕ " 1. ROCK "
    ΓΡΑΨΕ " 2. METAL "
    ΓΡΑΨΕ " 3. Έντεχνο"
    ΓΡΑΨΕ " 4. POP"
    ΓΡΑΨΕ ΟΝΕΠ[ι], " Πληκτρολόγησε τον αριθμό ανάλογα με το είδος της μουσικής που ακούς."
    ΔΙΑΒΑΣΕ ΕΙΔ_Μ[ι] 
    ΟΣΟ ΕΙΔ_Μ[ι] <> 1 ΚΑΙ ΕΙΔ_Μ[ι] <> 2 ΚΑΙ ΕΙΔ_Μ[ι] <> 3 ΚΑΙ ΕΙΔ_Μ[ι] <> 4 ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ "Λάθος αριθμός. Διάλεξε έναν αριθμό με το είδος της μουσικής που ακούς."
      ΔΙΑΒΑΣΕ ΕΙΔ_Μ[ι] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 
!Η συνάρτηση του Γ ερωτήματος
ΣΥΝΑΡΤΗΣΗ Υπ_Ειδ(ΕΙΔ_Μ, ι): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΕΙΔ_Μ[200], ι, κ, πλ_ειδ
ΑΡΧΗ
 
  πλ_ειδ <- 0
  ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 200
    ΑΝ ΕΙΔ_Μ[κ] = ι ΤΟΤΕ
      πλ_ειδ <- πλ_ειδ + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  Υπ_Ειδ <- πλ_ειδ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ