Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επανάληψης => Μήνυμα ξεκίνησε από: Σπύρος Δουκάκης στις 25 Σεπ 2009, 06:31:53 ΜΜ

Τίτλος: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: Σπύρος Δουκάκης στις 25 Σεπ 2009, 06:31:53 ΜΜ
Δεν έχω προχωρήσει τόσο στην ύλη, αλλά καθώς έβλεπα το υλικό μελέτησα τη λύση που έχω στην άσκηση:

Να αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει το πολύ είκοσι τιμές προϊόντων. Ωστόσο, αν διαβαστεί ως τιμή προϊόντος η τιμή 0, θα σταματάει η εισαγωγή τιμών προϊόντων και ο αλγόριθμος θα εκτυπώνει το πλήθος των προϊόντων που διαβάστηκαν και το μέσο όρο των τιμών τους.

Αλγόριθμος Προϊόντα
πλ ← 0
Σ ← 0
Διάβασε τπ
Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
  Σ ← Σ + τπ
  πλ ← πλ + 1
  Διάβασε τπ
Τέλος_επανάληψης
Εκτύπωσε πλ
Αν πλ ≠ 0 τότε
  ΜΟ ← Σ / πλ
  Εκτύπωσε ΜΟ
Τέλος_αν
Τέλος Προϊόντα

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

Έτσι, προτείνω την ακόλουθη λύση:

Αλγόριθμος Προϊόντα
πλ ← 0
Σ ← 0
Διάβασε τπ
Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
  Σ ← Σ + τπ
  πλ ← πλ + 1
  Αν πλ ≠ 20 τότε Διάβασε τπ
Τέλος_επανάληψης
Εκτύπωσε πλ
Αν πλ ≠ 0 τότε
  ΜΟ ← Σ / πλ
  Εκτύπωσε ΜΟ
Τέλος_αν
Τέλος Προϊόντα

Τι άποψη έχετε; Θεωρείτε ότι πρέπει να μπει το Αν; Θα θεωρούσατε λάθος ότι εισάγει ο χρήστης επιπλέον τιμή;

ΣΔ
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: d_bam στις 25 Σεπ 2009, 07:39:43 ΜΜ
Καλησπέρα
πιστεύω οτι πρέπει να μπει το Αν γιατί αλλιώς αναγκάζεις τον χρήστη να δώσει μια επιπλέον τιμή!

τι θα έλεγες επίσης αντι να βάλεις το

Διάβασε τπ
Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
  Σ ← Σ + τπ
  πλ ← πλ + 1
  Αν πλ ≠ 20 τότε Διάβασε τπ
Τέλος_επανάληψης


να έβαζες

Αρχή_επανάληψης
   Διάβασε τπ
   Αν τπ <> 0 τότε
       Σ ← Σ + τπ
       πλ ← πλ + 1
   Τέλος_αν
Μέχρις_ότου τπ = 0 Ή πλ = 20
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: sstergou στις 25 Σεπ 2009, 09:28:53 ΜΜ
Παράθεση από: sdoukakis στις 25 Σεπ 2009, 06:31:53 ΜΜ

Τι άποψη έχετε; Θεωρείτε ότι πρέπει να μπει το Αν; Θα θεωρούσατε λάθος ότι εισάγει ο χρήστης επιπλέον τιμή;

Ναι, και εγώ λάθος θα το έπαιρνα. Είναι σημαντικό να σταματάς την επανάληψη όταν πρέπει.
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: gpapargi στις 25 Σεπ 2009, 09:48:58 ΜΜ
Ειχα πει τη γνωμη μου στο συγκεκριμενο θεμα στο παρακατω link (δευτερο post στο thread). Βεβαια εχει ενδιαφερον οτι ο τρελλαρας μαθητης το χτυπησε και με "Για"  :D :D
Αυτο θα πει "ακατεργαστο διαμαντι"

https://alkisg.mysch.gr/steki/index.php?topic=1141.0
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: P.Tsiotakis στις 25 Σεπ 2009, 10:22:36 ΜΜ
Νομίζω όμως, οτι στην άσκηση με τα γραμματόσημα (που ετέθη τέτοιο θέμα), δεν κόπηκαν μονάδες στο περιττό διάβασμα. Αυτό θυμάμαι από συζήτηση τότε...
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: Σπύρος Δουκάκης στις 26 Σεπ 2009, 10:58:06 ΠΜ
Ok. Ανακεφαλαιώντας τις γνώμες σας, νομίζω ότι πρέπει να το ζητάμε και μάλιστα να βαθμολογούμε τη χρήση περιττής εισαγωγής τιμής. Αν και ο Παναγιώτης το συγκρίνει (ορθώς) και με τις πανελλήνιες.

Αλγοριθμικά η επιπλέον εισαγωγή διαβάζει 21 τιμές, ενώ εμείς τους ζητάμε να διαβάζει 20 τιμές. Αυτό βλέπω ως λάθος. Κάτι που στη Για θα το παίρναμε λάθος.

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

Μία πρόταση που έγινε (d_bam, gpapargi) είναι η χρήση της Μέχρις_ότου.

Με προβληματίζει το ακόλουθο:
1. Ο βρόχος μπορεί να μην εκτελεστεί αν δοθεί πρώτη τιμή η μηδέν.
2. Με τη Μέχρις_ότου ο βρόχος θα εκτελεστεί τουλάχιστον μία φορά...

Παιδαγωγικά τους λέμε ότι:
Γενικά, αν ο βρόχος υπάρχει περίπτωση να μην εκτελεστεί χρησιμοποιήστε την Όσο και με αυτή την άσκηση τι θα τους πούμε; ότι έχουμε και μία περίπτωση όπου παρότι μπορεί να μην εκτελεστεί ποτέ η επανάληψη είναι προτιμότερη η Μέχρις_ότου; Θα μου πείτε ότι δεν βάζουμε τόσο στενά καλούπια... Το θέμα είναι η σκέψη και όπως αναφέρει ο gpapargi στο άλλο post, ο αλγόριθμος θα πρέπει να είναι πιο κοντά σε αυτό που σκεφτόμαστε...

Τι άποψη έχετε; Πώς το αντιμετωπίζετε;

ΣΔ
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: P.Tsiotakis στις 26 Σεπ 2009, 11:06:32 ΠΜ
Θεωρώ οτι είναι λάθος η εισαγωγή επιπλέον τιμής -αν και συμμερίζομαι τις απόψεις οτι μπορεί να είναι ψιλά γράμματα. Πιθανώς με μια προσεκτικά διατυπωμένη διευκρίνηση στην εκφώνηση ΜΠΟΡΕΙ να είναι ζητούμενο η σωστή λύση (όχι περιττές εισαγωγές δεδομένων).

Προφανώς διορθώνεται με χρήση επιπλέον δομής επιλογής (είτε σε Όσο είτε σε Μέχρις_ότου βρόχους)
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: vasiko στις 27 Σεπ 2009, 12:45:18 ΜΜ
.
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: gpapargi στις 29 Σεπ 2009, 10:43:00 ΠΜ
Παναγιώτη νομίζω πως το ζήτημα του περιττού διαβάσματος στο θέμα με τα γραμματόσημα είναι λίγο διαφορετικό. Δεν εμφανίζεται σε κάθε εκτέλεση του αλγορίθμου όπως η περίπτωση που αναφέρει ο Σπύρος, αλλά μόνο στην περίπτωση που εισαχθεί τιμή που μηδενίζει ακριβώς το υπόλοιπο. Εκεί θα έλεγα ότι δεν είναι σωστό να διαβαστεί άλλη τιμή και θέλουμε άμεσο τερματισμό του βρόχου. ΑΥτό ίσως και να ξέφυγε στην επιτροπή, αν και είναι πολύ οριακό... θα μπορούσε ίσως κάποιος να τεντώσει την ερμημνεία της εκφώνησης δεχόμενος γραμματόσημα μηδενικής τιμής (λέμε τώρα). Μάλλον είναι οριακά λάθος και κάνεις τα στραβά μάτια. Αλλά όσο  τπ ≠ 0 και πλ < 20 είναι χτυπητή περίπτωση.

Σπύρο αυτό το "αν ο βρόχος υπάρχει περίπτωση να μην εκτελεστεί χρησιμοποιήστε την Όσο" το έχω ακούσει κι εγώ αλλά δεν ισχύει. Οι 2 δομές μπορούν να κάνουν ακριβώς τα ίδια πράγματα και πάντα η μια μετατρέπεται στην άλλη. Ίσως σα σύσταση/υπόδειξη σε πρώτη φάση να μπορεί να λειτουργήσει, αλλά σε βαθύτερο επίπεδο δεν μπορεί να σταθεί. Εδώ πχ έχουμε περίπτωση με 2 συνθήκες διακοπής που δεν ελέγχονται ταυτόχρονα. Δεν υπάρχει καν ολόκληρος βρόχος (με την έννοια των εντολών που επαναλαμβάνονται). Εδώ αν μου επιτρέπεται η έκφραση μπορεί να εκτελεστεί και ο "μισός" ανάλογα με την αιτία διακοπής.
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: bagelis στις 30 Σεπ 2009, 10:28:42 ΜΜ
1) Συμφωνώ ότι πρέπει να θεωρηθεί λάθος το περιττό διάβασμα αλλά χωρίς να θέλω να αποπροσανατολίσω την κουβέντα το σοβαρό για μένα είναι "πόσο να κοπεί?". Πιστεύω ότι ένα μόριο (στα είκοσι που ενδεχομένως να είχε το θέμα) είναι αρκετό.

2) Αν θυμάμαι καλά, παλαιότερα είχε κάνει μία ανάλυση ο gpapargi (σε λύση με μέχρις_ότου και σημαία) την οποία θα υιοθετούσα απόλυτα διότι περιγράφει ακριβώς το σκεπτικό που θα έκανε ο καθένας μας σε κάποιο παράδειγμα.

   
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: P.Tsiotakis στις 01 Οκτ 2009, 02:53:31 ΜΜ
Πρέπει η εκφώνηση να διατυπωθεί με τέτοιο τρόπο και αιτήματα, που να βαθμολογεί/κόβει μονάδες αυτό το σημείο.

Σκέφτηκα άσκηση τώρα, αλλά δεν προλαβαίνω να τη βάλω...
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: ikariofil στις 01 Οκτ 2009, 03:13:25 ΜΜ
Δεν πρέπει να κοπεί τίποτα!
Εδώ τρομάζουμε να τους μάθουμε να δουλεύουν με δομή επανάληψης, Λίγοι είναι οι μαθητές που μπορεί να δουλέψουν Όσο με διπλή συνθήκη και εσείς συζητάτε να κόβουμε μονάδες για διάβασμα μιας περιττής τιμής που δεν αξιοποιείται και δεν επηρεάζει το τελικό αποτέλεσμα;
Για μένα ο μαθητής πρέπει να παίρνει το άριστα (με την παραπάνω λύση)..
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: Σπύρος Δουκάκης στις 01 Οκτ 2009, 03:30:05 ΜΜ
Παναγιώτη συμφωνώ πρέπει να προφυλάξουμε το μαθητή στο συγκεκριμένο θέμα. Επαναλαμβάνω την άποψή μου ότι είναι λάθος, αφού αν ήταν Για και το έκανε 21 φορές αντί για 20 δεν θα έπαιρνε άριστα... Κατά τη γνώμη μου η μία μονάδα στα 20, άντε 2 είναι ok, αφού η εισαγωγή δεν επηρεάζει το αποτέλεσμα με την εκφώνηση που έδωσα.
Αλλά αν με κάποιο τρόπο (είτε με το να ζητήσουμε να εμφανίζει τις εισαγόμενες τιμές, είτε με το να ζητήσουμε να μετρήσει πόσες τιμές αποδεκτές εισήχθησαν) μπορούμε και παιδαγωγικά να του/της επισημάνουμε το σφάλμα και ο/η μαθητής/τρια θα μπορέσει να επισημάνει τον κίνδυνο και να μην κάνει το λάθος.

Επιπλέον, μας δίνεται τη δυνατότητα να βαθμολογήσουμε το ζήτημα αυτό, όταν υπάρχει ζητούμενο (εμφάνιση ή μέτρηση που προανέφερα).

ΣΔ
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: sstergou στις 01 Οκτ 2009, 04:02:23 ΜΜ
Παράθεση από: ikariofil στις 01 Οκτ 2009, 03:13:25 ΜΜ
Δεν πρέπει να κοπεί τίποτα!
Εδώ τρομάζουμε να τους μάθουμε να δουλεύουν με δομή επανάληψης, Λίγοι είναι οι μαθητές που μπορεί να δουλέψουν Όσο με διπλή συνθήκη και εσείς συζητάτε να κόβουμε μονάδες για διάβασμα μιας περιττής τιμής που δεν αξιοποιείται και δεν επηρεάζει το τελικό αποτέλεσμα;
Για μένα ο μαθητής πρέπει να παίρνει το άριστα (με την παραπάνω λύση)..

Οπότε αυτός που κατάλαβε το πρόβλημα και δούλεψε όλη την ώρα με επιτυχία (ή χωρίς) για να το παρακάμψει βαθμολογείται το ίδιο με αυτόν που δεν το πήρε χαμπάρι....

Η σωστή είσοδος δεδομένων είναι κατά τη γνώμη μου αυτονόητη. Δεν λέω ότι πρέπει να το θερίσουμε το παιδί αλλά οπωσδήποτε κάτι πρέπει να κοπεί. Δεν είναι καλό να τους εξισώνουμε όλους. Εξάλλου αν δεν κόψεις τότε μπορεί να θεωρήσει ότι το έλυσε μια χαρά....
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: ikariofil στις 01 Οκτ 2009, 04:23:09 ΜΜ
Απάντησε ο μαθητής όλα τα ερωτήματα; Γιατί να μην βαθμολογήσεις άριστα;
Εκτός και αν έχεις φροντίσει να δώσεις κάποιες μονάδες στην είσοδο. Π.χ.
Να γράψετε αλγόριθμο ο οποιος:
(Α) Να παίρνει σαν είσοδο 20 αριθμούς  (Μονάδες 2)
.................................................................................
Τίτλος: Απ: Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε
Αποστολή από: sstergou στις 01 Οκτ 2009, 05:08:34 ΜΜ
Παράθεση από: sdoukakis στις 25 Σεπ 2009, 06:31:53 ΜΜ
Να αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει το πολύ είκοσι τιμές προϊόντων. Ωστόσο, αν διαβαστεί ως τιμή προϊόντος η τιμή 0, θα σταματάει η εισαγωγή τιμών προϊόντων και ο αλγόριθμος θα εκτυπώνει το πλήθος των προϊόντων που διαβάστηκαν και το μέσο όρο των τιμών τους.

Αναφερόμουν στην παραπάνω εκφώνηση.