Askhsh ypoprogrammata

Ξεκίνησε από kiro, 11 Απρ 2006, 01:39:38 ΠΜ

« προηγούμενο - επόμενο »

kiro

Γεια σας!
Θα ήθελα να μου πείτε  γνώμη σας σχετικά με μια άσκηση που βρήκα σε ένα site. Η εκφώνηση και η λύση είναι :

Να γραφεί υποπρόγραμμα το οποίο να διαβάζει τις τιμές Ν θετικών αριθμών, να υπολογίζει και να εμφανίζει το μέσο όρο τους . Στο κυρίως πρόγραμμα θα ορίζεται το πλήθος Ν των αριθμών κάνοντας έλεγχο δεδομένων (θετική τιμή).

ΛΥΣΗ

Πρόγραμμα Αριθμοί
Μεταβλητές
Ακέραιες : Ν
Αρχή
Αρχή_επανάληψης
Γράψε ‘Δώσε το πλήθος των αριθμών (θετικό)’
Διάβασε Ν
Μέχρις_ότου Ν>0
Κάλεσε Μέσος_Όρος(Ν)
Τέλος_Προγράμματος


Διαδικασία Μέσος_Όρος(Πλήθος)
Μεταβλητές
Ακέραιες : Πλήθος
Πραγματικές : Χ, Sum, ΜΟ
Αρχή
Για i από 1 μέχρι Πλήθος
   Διάβασε Χ
   Sum ί Sum + X
Τέλος_επανάληψης
ΜΟ ί Sum / Πλήθος
Γράψε ‘ Ο μέσος όρος των ‘, Πλήθος, ‘αριθμών που δόθηκαν είναι’, ΜΟ
Τέλος_Διαδικασίας

Η εκφώνηση λέει πως στο κυρίως πρόγραμμα θα ορίζεται το πλήθος Ν των αριθμών κάνοντας έλεγχο δεδομένων (θετική τιμή). Πιστεύω πως θα έπρεπε να κάνει έλεγχο στοιχείων των αριθμών που εισάγονται και όχι του πλήθους μια και δεν θα μπορούσε να είναι αρνητικό δηλ
Πρόγραμμα Αριθμοί
Μεταβλητές
   Πραγματικές :α
Ακέραιες : Ν
Αρχή
Γράψε ‘Δώσε το πλήθος των αριθμών ’
Διάβασε Ν
Για ί από 1 μέχρι Ν
Γράψε ‘Δωσε αριθμο’
Αρχη_επαναληψης
Διαβασε α
Μέχρις_ότου α>0
Κάλεσε Μέσος_Όρος(Ν)
Τέλος_Προγράμματος

Τι λέτε?


solaris

Έχεις δίκιο ότι θα έπρεπε να ελέγχονται και οι αριθμοί που εισάγονται μιας και η εκφώνηση μιλάει για μέσο όρο Ν θετικών. Ο έλεγχος όμως θα γίνεται μέσα στη διαδικασία. Όσο για το Ν, σωστά γίνεται ο έλεγχος του στο Κ.Π. μιας και αρνητική ή μηδενική τιμή αυτού θα προκαλούσε πρόβλημα στην εκτέλεση της Για μέσα στη διαδικασία (όπου πλήθος = Ν). Ακόμη πρέπει το Sum να μηδενιστεί μέσα στη διαδικασία.
Άρα:

ΛΥΣΗ

Πρόγραμμα Αριθμοί
Μεταβλητές
   Ακέραιες : Ν
Αρχή
   Αρχή_επανάληψης
     Γράψε ‘Δώσε το πλήθος των αριθμών (θετικό)’
     Διάβασε Ν
   Μέχρις_ότου Ν>0
   Κάλεσε Μέσος_Όρος(Ν)
Τέλος_Προγράμματος


Διαδικασία Μέσος_Όρος(Πλήθος)
Μεταβλητές
   Ακέραιες : Πλήθος
   Πραγματικές : Χ, Sum, ΜΟ
Αρχή
   Sum <-- 0
   Για i από 1 μέχρι Πλήθος
     Αρχή_Επανάληψης
        Διάβασε Χ
     Μέχρις_ότου Χ > 0
     Sum <-- Sum + X
   Τέλος_επανάληψης
   ΜΟ <-- Sum / Πλήθος
   Γράψε ‘ Ο μέσος όρος των ‘, Πλήθος, ‘αριθμών που δόθηκαν είναι’, ΜΟ
Τέλος_Διαδικασίας

kiro

Ναι δίκιο έχεις.....ευχαριστώ πολύ!

kiro

Η άσκηση μας ζητάει να υπολογίζεται ο μέσος όρος στη διαδικασία και να καλείται από το πρόγραμμα. Από τη στιγμή που το υποπρόγραμμα ζητάει να εμφανίζει το ΜΟ δεν είναι περιττή η διαδικασία? Ότι εμφανίζει η διαδικασία δεν το επιστρέφει έτσι δεν είναι? ποιο το νόημα τότε όλου του προγράμματος και τι περνάει όταν καλεί τη διαδικασία?

lsourtzo

θα συμφωνήσω με τον kiro ...
η εκφώνηση θα έπρεπε να είναι ποιο σαφής !!

η λογική λέει ότι το υποπρόγραμμα θα έπρεπε να επιστρέψει και τον ΜΟ που θα αναλάμβανε να τον εμφάνιση το Κ_Π.

αλλά σύμφωνα πάντα με την εκφώνηση η λύση φαίνετε  σωστά διατυπωμένη !!

solaris

Η διαδικασία δέχεται από το Κ.Π. το πλήθος των αριθμών που πρόκειται να διαβαστούν (Ν στο Κ.Π. = Πλήθος στη διαδικασία) και δεν επιστρέφει τίποτα. Σωστό είναι το "ό,τι εμφανίζει η διαδικασία δεν το επιστρέφει".

lsourtzo

είπα και εγώ ... σύμφωνα με την εκφώνηση η λύση είναι σωστή ...
η εκφώνηση είναι που θα μπορούσε κατα την γνώμη μου να είναι λίγο ποιό καλοδιατυπωμένη !!!