Αποστολέας Θέμα: Askhsh ypoprogrammata  (Αναγνώστηκε 3486 φορές)

kiro

  • Βετεράνος
  • ****
  • Μηνύματα: 52
  • Γράψτε το προσωπικό σας σλόγκαν!
Askhsh ypoprogrammata
« στις: 11 Απρ 2006, 01:39:38 πμ »
Γεια σας!
Θα ήθελα να μου πείτε  γνώμη σας σχετικά με μια άσκηση που βρήκα σε ένα site. Η εκφώνηση και η λύση είναι :

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

ΛΥΣΗ

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


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

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

Τι λέτε?


solaris

  • Θαμώνας
  • ***
  • Μηνύματα: 28
Απ: Askhsh ypoprogrammata
« Απάντηση #1 στις: 11 Απρ 2006, 10:16:34 πμ »
Έχεις δίκιο ότι θα έπρεπε να ελέγχονται και οι αριθμοί που εισάγονται μιας και η εκφώνηση μιλάει για μέσο όρο Ν θετικών. Ο έλεγχος όμως θα γίνεται μέσα στη διαδικασία. Όσο για το Ν, σωστά γίνεται ο έλεγχος του στο Κ.Π. μιας και αρνητική ή μηδενική τιμή αυτού θα προκαλούσε πρόβλημα στην εκτέλεση της Για μέσα στη διαδικασία (όπου πλήθος = Ν). Ακόμη πρέπει το Sum να μηδενιστεί μέσα στη διαδικασία.
Άρα:

ΛΥΣΗ

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


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

kiro

  • Βετεράνος
  • ****
  • Μηνύματα: 52
  • Γράψτε το προσωπικό σας σλόγκαν!
Απ: Askhsh ypoprogrammata
« Απάντηση #2 στις: 11 Απρ 2006, 12:23:59 μμ »
Ναι δίκιο έχεις.....ευχαριστώ πολύ!

kiro

  • Βετεράνος
  • ****
  • Μηνύματα: 52
  • Γράψτε το προσωπικό σας σλόγκαν!
Απ: Askhsh ypoprogrammata
« Απάντηση #3 στις: 12 Απρ 2006, 02:25:44 πμ »
Η άσκηση μας ζητάει να υπολογίζεται ο μέσος όρος στη διαδικασία και να καλείται από το πρόγραμμα. Από τη στιγμή που το υποπρόγραμμα ζητάει να εμφανίζει το ΜΟ δεν είναι περιττή η διαδικασία? Ότι εμφανίζει η διαδικασία δεν το επιστρέφει έτσι δεν είναι? ποιο το νόημα τότε όλου του προγράμματος και τι περνάει όταν καλεί τη διαδικασία?

lsourtzo

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 131
Απ: Askhsh ypoprogrammata
« Απάντηση #4 στις: 12 Απρ 2006, 09:48:05 πμ »
θα συμφωνήσω με τον kiro ...
η εκφώνηση θα έπρεπε να είναι ποιο σαφής !!

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

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

solaris

  • Θαμώνας
  • ***
  • Μηνύματα: 28
Απ: Askhsh ypoprogrammata
« Απάντηση #5 στις: 12 Απρ 2006, 12:52:23 μμ »
Η διαδικασία δέχεται από το Κ.Π. το πλήθος των αριθμών που πρόκειται να διαβαστούν (Ν στο Κ.Π. = Πλήθος στη διαδικασία) και δεν επιστρέφει τίποτα. Σωστό είναι το "ό,τι εμφανίζει η διαδικασία δεν το επιστρέφει".

lsourtzo

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 131
Απ: Askhsh ypoprogrammata
« Απάντηση #6 στις: 12 Απρ 2006, 12:57:17 μμ »
είπα και εγώ ... σύμφωνα με την εκφώνηση η λύση είναι σωστή ...
η εκφώνηση είναι που θα μπορούσε κατα την γνώμη μου να είναι λίγο ποιό καλοδιατυπωμένη !!!