«Γίνεται, κύριε!»

Κλασική προσέγγιση για να δείξει κάποιος την ανάγκη για πίνακες στον προγραμματισμό:

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

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

Μετά από λίγη σιωπή και προτάσεις αν μπορούμε να ξαναδιαβάσουμε τους βαθμούς, ακούγεται μια φωνή:

Κύριε, αφού ξέρουμε ότι είναι βαθμοί, μπορούμε!

Στη ΓΛΩΣΣΑ, βέβαια, ο ακέραιος τύπος γρήγορα θα υπερχειλίσει, αλλά η ιδέα είναι μαθηματικά ορθή και πανέξυπνη:

ΠΡΟΓΡΑΜΜΑ μο
ΣΤΑΘΕΡΕΣ
    ν = 9
ΜΕΤΑΒΛΗΤΕΣ
    ΑΚΕΡΑΙΕΣ: ι, χ, σ, π, λ, δ
    ΠΡΑΓΜΑΤΙΚΕΣ: μ
ΑΡΧΗ
    σ <- 0
    π <- 0
    ΓΙΑ ι ΑΠΟ 0 ΜΕΧΡΙ ν 1
        ΓΡΑΨΕ "Δώσε τον ", ι + 1, "ο βαθμό: "
        ΔΙΑΒΑΣΕ χ
        δ <- 1
        ΓΙΑ λ ΑΠΟ 1 ΜΕΧΡΙ 2*ι
            δ <- δ*10
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        π <- π + δ*χ
        σ <- σ + χ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    μ <- σ / ν
    ΓΡΑΨΕ "Μεγαλύτεροι από το μ.ο. ", μ, " είναι οι:"
    ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ ν
        ΑΝ π mod 100 > μ ΤΟΤΕ
            ΓΡΑΨΕmod 100)
        ΤΕΛΟΣ_ΑΝ
        π <- π div 100
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

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

s=0
a=0
n=10
for i in range(n):
    print(str(i+1)+"ος βαθμός: ", end="")
    x=int(input())
    a+=10**(2*i)*x
    s+=x
mean=s/n
for i in range(n):
    if a%100>mean:
        print(a%100)
    a//=100

Πάντα υπάρχουν λόγοι να χαίρεσαι που είσαι δάσκαλος.
Κι από δω και μπρος δεν θα λέω «βαθμούς», αλλά «αριθμούς», ξερωγώ τις μετρήσεις ενός ρύπου τα 30 μεσημέρια ενός μήνα.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *