Πέμπτη, 19 Απριλίου 2018

Τα Στρουμφάκια και ο Δρακουμέλ

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

 Η online κοινότητα "We love smurfs" θέλει να τους γράψουμε έναν αλγόριθμο. Ο αλγόριθμος να κάνει τα εξής:  

α)  να διαβάζει και να αποθηκεύει τα ονόματα στον πίνακα ΣΤΡΟΥΜΦ[40], τις ώρες ύπνου στον πίνακα ΥΠ[40], τις ώρες φαγητού στον πίνακα ΦΑΓ[40] και τις ώρες παιχνιδιού στον πίνακα ΠΑΙΧΝ[40] για καθένα από τα 40 στρουμφάκια.   

β) να βρίσκει και να εμφανίζει τις ώρες ύπνου του ΧΟΥΖΟΥΡΗ (το στρουμφάκι με τις περισσότερες ώρες ύπνου!).

γ)  να βρίσκει και να εμφανίζει τις ώρες φαγητού του ΛΙΧΟΥΔΗ (το στρουμφάκι με τις περισσότερες ώρες φαγητού!).

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

ε) να βρίσκει και να εμφανίζει τις ώρες παιχνιδιού του ΠΑΠΑΣΤΡΟΥΜΦ (το στρουμφάκι με τις λιγότερες ώρες παιχνιδιού) και του ΣΠΙΡΤΟΥΛΗ (το δεύτερο σε σειρά στρουμφάκι με τις λιγότερες ώρες παιχνιδιού).

στ) ο ΔΡΑΚΟΥΜΕΛ στην προσπάθεια του να βρει ένα στρουμφάκι θα χρειαστεί ο αλγόριθμος να διαβάζει ένα όνομα και να ψάχνει στα ονόματα να δει αν υπάρχει. Αν το στρουμφάκι βρεθεί τότε να βγάζει το μήνυμα "Σε έπιασα!" αλλιώς το μήνυμα "Μια μέρα θα σας πιάσω καταραμένα στρουμφάκια!"

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

Επιμέλεια: Παναγιώτης Παπαδόπουλος

 

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

 

Αλγόριθμος Στρουμφάκια
 
!Ερώτημα α
Για ι από 1 μέχρι 40
  Εμφάνισε "Δώσε το όνομα από το στρουμφάκι!"
  Διάβασε ΣΤΡΟΥΜΦ[ι] 
  Εμφάνισε "Δώσε τις ώρες ύπνου για το ", ι, " στρουμφάκι."
  Διάβασε ΥΠΝ[ι] 
  Εμφάνισε "Δώσε τις ώρες φαγητού για το ", ι, " στρουμφάκι."
  Διάβασε ΦΑΓ[ι] 
  Εμφάνισε "Δώσε τις ώρες παιχνιδιού για το ", ι, " στρουμφάκι."
  Διάβασε ΠΑΙΧΝ[ι] 
Τέλος_επανάληψης
 
!Ερώτημα β
!Για το ερώτημα β θα πρέπει να βρούμε τη μέγιστη καταχώρηση στον πίνακα ΥΠΝ
ΜΑΧ ← ΥΠΝ[1] 
 
Για ι από 2 μέχρι 40
  Αν ΥΠΝ[ι] > ΜΑΧ τότε
    ΜΑΧ ← ΥΠΝ[ι] 
 
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε "Ο ΧΟΥΖΟΥΡΗΣ κοιμόταν ", ΜΑΧ, " ώρες!!!"
 
!Ερώτημα γ
!Θα πρέπει να βρούμε τη μέγιστη τιμή από τον πίνακα ΦΑΓ.
ΜΑΧ ← ΦΑΓ[1] 
 
Για ι από 2 μέχρι 40
  Αν ΦΑΓ[ι] > ΜΑΧ τότε
    ΜΑΧ ← ΦΑΓ[ι] 
 
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε "Ο ΛΙΧΟΥΔΗΣ έτρωγε ", ΜΑΧ, " ώρες!"
 
 
!Ερώτημα δ
!Θα πρέπει να ταξινομήσουμε τον πίνακα ΣΤΡΟΥΜΦ με βάση τις ώρες παιχνιδιού κατά φθίνουσα σειρά.
 
Για ι από 2 μέχρι 40
  Για j από 40 μέχρι ι με_βήμα -1
    Αν ΠΑΙΧΝ[j] > ΠΑΙΧΝ[j - 1] τότε
      Αντιμετάθεσε ΠΑΙΧΝ[j], ΠΑΙΧΝ[j - 1] 
      Αντιμετάθεσε ΣΤΡΟΥΜΦ[j], ΣΤΡΟΥΜΦ[j - 1] 
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
Εμφάνισε "Τα 10 στρουμφάκια με τις περισσότερες ώρες παιχνιδιού είναι: "
Για ι από 1 μέχρι 10
  Εμφάνισε ΣΤΡΟΥΜΦ[ι] 
Τέλος_επανάληψης
 
!Ερώτημα ε
Εμφάνισε "Ο ΠΑΠΑΣΤΡΟΥΜΦ έπαιξε ", ΠΑΙΧΝ[40], " ώρες!"
Εμφάνισε "Ο ΣΠΙΡΤΟΥΛΗΣ έπαιξε ", ΠΑΙΧΝ[39], " ώρες!"
 
!Ερώτημα στ
!Θα χρησιμοποιήσουμε την σειριακή αναζήτηση για να βρούμε το στρουμφάκι.
Εμφάνισε "Δώσε Δρακουμελ το όνομα από το στρουμφάκι που ψάχνεις."
Διάβασε στρουμ
θέση ← 0
ι ← 1
Όσο ι ≤ 40 και θέση = 0 επανάλαβε
  Αν στρουμ = ΣΤΡΟΥΜΦ[ι] τότε
    θέση ← ι
  Τέλος_αν
  ι ← ι + 1
Τέλος_επανάληψης
Αν θέση = 0 τότε
  Εμφάνισε "Μια μέρα θα σας πιάσω καταραμένα στρουμφακια!"
αλλιώς
  Εμφάνισε "Σε τσάκωσα!"
Τέλος_αν
 
Τέλος Στρουμφάκια