Κυριακή, 17 Ιουνίου 2018

Γ' Λυκείου 5ήμερη

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

 

Η Τρίτη λυκείου θα πάει 5ημερη και μιας κάνει το μάθημα Ανάπτυξη Εφαρμογών είπε φέτος να κάνει τη ψηφοφορία για τους 10 διαφορετικούς προορισμούς ηλεκτρονικά. Οπότε σε αυτή τη προσπάθεια θα χρειαστεί να γράψετε αλγόριθμο σε "ΓΛΩΣΣΑ" ο οποίος:

Α) να διαβάζει σε ένα πίνακα ΠΡΟΟΡ[10] τα ονόματα των 10 προορισμών

B) σε ένα πίνακα ΟΝ[200] τα ονόματα των 200 μαθητών του σχολείου

Γ) και σε ένα πίνακα ΨΗΦ[10,200] τη προτίμηση κάθε μαθητή για καθένα απο τους προορισμούς. Όταν προτιμά το μέρος βάζει 1 και 0 όταν όχι. (να γίνει έλεγχος εγκυρότητας ώστε να αποθηκεύονται μονο 0 η 1). Κάθε μαθητής έχει το πολύ 5 ψήφους.

Δ) να υπολογίζει και να εμφανίζει τον προορισμό ή τους προορισμούς με τις περισσότερους ψήφους. 

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

ΣΤ) να εμφανίζει τους προορισμούς που ψήφισε θετικά ο μαθητής "mstamos.gr" (θεωρήστε ότι υπάρχει ένας τέτοιος μαθητής σίγουρα)

 

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

 

Λύση Άσκησης: 
 
ΠΡΟΓΡΑΜΜΑ ΓΛυκείου_5ήμερη
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΠΡΟΟΡ[10], ΟΝ[200], πρ_αν
  ΑΚΕΡΑΙΕΣ: ΨΗΦ[10, 200], θεση, ι, j, βρέθηκε, πλ_ψήφων, ΣΨ[10], ΜΑΧ
 
ΑΡΧΗ
 
!Ερώτημα Α
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΓΡΑΨΕ "Δώσε το όνομα του ", ι, " προορισμού."
    ΔΙΑΒΑΣΕ ΠΡΟΟΡ[ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Ερώτημα Β
  ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 200
    ΓΡΑΨΕ "Δώσε το όνομα του ", j, " μαθητή."
    ΔΙΑΒΑΣΕ ΟΝ[j] 
 
!Ερώτημα Γ
    πλ_ψήφων <- 0
    ι <- 1
    ΟΣΟ ι <= 10 ΚΑΙ πλ_ψήφων <= 5 ΕΠΑΝΑΛΑΒΕ
      ΓΡΑΨΕ "Δώσε την ψήφο σου για τον προορισμό ", ΠΡΟΟΡ[ι] 
      ΔΙΑΒΑΣΕ ΨΗΦ[ι, j] 
      ΟΣΟ ΨΗΦ[ι, j] <> 1 ΚΑΙ ΨΗΦ[ι, j] <> 0 ΕΠΑΝΑΛΑΒΕ
        ΓΡΑΨΕ "Λάθος τιμή. Δώσε 0 ή 1."
        ΔΙΑΒΑΣΕ ΨΗΦ[ι, j] 
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ ΨΗΦ[ι, j] = 1 ΤΟΤΕ
        πλ_ψήφων <- πλ_ψήφων + 1
      ΤΕΛΟΣ_ΑΝ
      ι <- ι + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Ερώτημα Δ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΣΨ[ι] <- 0
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 200
      ΣΨ[ι] <- ΣΨ[ι] + ΨΗΦ[ι, j] 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
  ΜΑΧ <- ΣΨ[1] 
  ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ 10
    ΑΝ ΣΨ[ι] > ΜΑΧ ΤΟΤΕ
      ΣΨ[ι] <- ΜΑΧ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
  ΓΡΑΨΕ "Ο προορισμός/οι με τις περισσότερες ψήφους είναι: "
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΑΝ ΣΨ[ι] = ΜΑΧ ΤΟΤΕ
      ΓΡΑΨΕ ΠΡΟΟΡ[ι] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
!Ερώτημα Ε
  ΓΡΑΨΕ "Δώσε τον προορισμό που θέλεις να ψάξεις."
  ΔΙΑΒΑΣΕ πρ_αν
 
  βρέθηκε <- 0
  ι <- 1
  ΟΣΟ ι <= 10 ΚΑΙ βρέθηκε = 0 ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΠΡΟΟΡ[ι] = πρ_αν ΤΟΤΕ
      ΓΡΑΨΕ "Ο προορισμός που ψάχνετε έλαβε ", ΣΨ[ι], " ψήφους."
      βρέθηκε <- ι
    ΑΛΛΙΩΣ
      ι <- ι + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ θεση = 0 ΤΟΤΕ
    ΓΡΑΨΕ "Ο προορισμός που δώσατε δεν υπάρχει"
  ΤΕΛΟΣ_ΑΝ
 
!Ερώτημα ΣΤ
  θεση <- 0
  ι <- 1
  ΟΣΟ ι <= 200 ΚΑΙ θεση = 0 ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΟΝ[ι] = "mstamos.gr" ΤΟΤΕ
      θεση <- ι
    ΑΛΛΙΩΣ
      ι <- ι + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
  ΓΡΑΨΕ "Ο mstamos.gr ψήφισε τους προορισμούς"
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΑΝ ΨΗΦ[ι, θεση] = 1 ΤΟΤΕ
      ΓΡΑΨΕ ΠΡΟΟΡ[ι] 
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ