Παρασκευή, 20 Απριλίου 2018

Ο διαιτολόγος, κος Φαταούλας

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

Ο διαιτολόγος της γειτονιάς σας, κος Φαταούλας, ζητάει τη βοήθειά σας για τον εύκολο υπολογισμό των θερμίδων που κατανάλωσαν οι πελάτες του στη διάρκεια μιας ημέρας. Το πρόγραμμα θα περιέχει τα εξής:

α) τμήμα δηλώσεων μεταβλητών

β) θα διαβάζει και θα αποθηκεύει σε ένα πίνακα ΜΕΝΟΥ[300] τα γεύματα που προτείνει στους πελάτες του και σε ένα πίνακα ΘΕΡΜ[300] τις θερμίδες που έχει κάθε γεύμα.

γ) ο πελάτης θα πληκτρολογεί συνεχόμενα τα ονόματα των γευμάτων που κατανάλωσε μέσα στην ημέρα. Η διαδικασία θα τερματίζει όταν δοθεί σαν όνομα γεύματος η έκφραση "Μασαμπούκα Τέλος". 

1) στη συνέχεια θα καλεί υποπρόγραμμα ΑΝΑΖ το οποίο θα επιστρέφει την τιμή 0 αν το γεύμα αυτό δεν υπάρχει στη λίστα, αλλιώς τις θερμίδες του γεύματος

δ) αν το γεύμα δεν υπάρχει να του εμφανίζει το μήνυμα "Πάλι έκανες του κεφαλιού σου".

ε) να υπολογίζει και να εμφανίζει τις συνολικές θερμίδες που κατανάλωσε ο πελάτης.

Επιμέλεια: FM

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

 

ΠΡΟΓΡΑΜΜΑ Φαταούλας
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: ΜΕΝΟΥ[300], γευμ
ΑΚΕΡΑΙΕΣ: ι, ΘΕΡΜ[300], θερ, συν_θερμ


ΑΡΧΗ

!Ερώτημα β
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 300
ΓΡΑΨΕ "Δώσε το όνομα του γεύματος"
ΔΙΑΒΑΣΕ ΜΕΝΟΥ[ι]
ΓΡΑΨΕ "Δώσε τις θερμίδες του γεύματος"
ΔΙΑΒΑΣΕ ΘΕΡΜ[ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!Ερώτημα γ,δ
!Η μεθοδολογία από εδώ και κάτω συνεχίζει σαν εκείνη της Τιμής Φρουρό
ΓΡΑΨΕ "Δώσε το όνομα του γεύματος που κατανάλωσες"
ΔΙΑΒΑΣΕ γευμ

!Μηδενισμός της μεταβλητής που θα αποθηκεύονται οι συνολικές θερμίδες
συν_θερμ <- 0

ΟΣΟ γευμ <> "Μασαμπούκα Τέλος" ΕΠΑΝΑΛΑΒΕ

!Καλώ την συνάρτηση ΑΝΑΖ η οποία θα μου επιστρέψει τις θερμίδες του γεύματος, αν αυτό υπάρχει στον πίνακα.
!Χρησιμοποιούμε συνάρτηση γιατί θέλουμε να επιστρέψουμε μόνο ένα αποτέλεσμα στο κυρίως πρόγραμμα.
θερ <- ΑΝΑΖ(γευμ, ΜΕΝΟΥ, ΘΕΡΜ)
ΑΝ θερ = 0 ΤΟΤΕ
ΓΡΑΨΕ "Πάλι έκανες του κεφαλιού σου?!"
ΑΛΛΙΩΣ
συν_θερμ <- συν_θερμ + θερ
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ "Δώσε το όνομα του γεύματος που κατανάλωσες"
ΔΙΑΒΑΣΕ γευμ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΓΡΑΨΕ "Οι συνολικές θερμίδες που καταναλώσατε είναι ", συν_θερμ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

!Η συνάρτηση του γ ερωτήματος
ΣΥΝΑΡΤΗΣΗ ΑΝΑΖ(γευμ, ΜΕΝΟΥ, ΘΕΡΜ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: γευμ, ΜΕΝΟΥ[300]
ΑΚΕΡΑΙΕΣ: ΘΕΡΜ[300], ι, θερ
ΑΡΧΗ

ι <- 1
θερ <- 0
ΟΣΟ ι <= 300 ΚΑΙ θερ = 0 ΕΠΑΝΑΛΑΒΕ
ΑΝ ΜΕΝΟΥ[ι] = γευμ ΤΟΤΕ
θερ <- ΘΕΡΜ[ι]
ΤΕΛΟΣ_ΑΝ
ι <- ι + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

!Εκχωρούμε στο όνομα της συνάρτησης το αποτέλεσμα που θέλουμε να επιστρέψουμε στο κυρίως πρόγραμμα.
ΑΝΑΖ <- θερ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ