Άσκηση Όσο τπ ≠ 0 και πλ < 20 επανάλαβε

Ξεκίνησε από Σπύρος Δουκάκης, 25 Σεπ 2009, 06:31:53 ΜΜ

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

Σπύρος Δουκάκης

Δεν έχω προχωρήσει τόσο στην ύλη, αλλά καθώς έβλεπα το υλικό μελέτησα τη λύση που έχω στην άσκηση:

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

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

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

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

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

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

ΣΔ

d_bam

Καλησπέρα
πιστεύω οτι πρέπει να μπει το Αν γιατί αλλιώς αναγκάζεις τον χρήστη να δώσει μια επιπλέον τιμή!

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

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


να έβαζες

Αρχή_επανάληψης
   Διάβασε τπ
   Αν τπ <> 0 τότε
       Σ ← Σ + τπ
       πλ ← πλ + 1
   Τέλος_αν
Μέχρις_ότου τπ = 0 Ή πλ = 20

sstergou

Παράθεση από: sdoukakis στις 25 Σεπ 2009, 06:31:53 ΜΜ

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

Ναι, και εγώ λάθος θα το έπαιρνα. Είναι σημαντικό να σταματάς την επανάληψη όταν πρέπει.

gpapargi

Ειχα πει τη γνωμη μου στο συγκεκριμενο θεμα στο παρακατω link (δευτερο post στο thread). Βεβαια εχει ενδιαφερον οτι ο τρελλαρας μαθητης το χτυπησε και με "Για"  :D :D
Αυτο θα πει "ακατεργαστο διαμαντι"

https://alkisg.mysch.gr/steki/index.php?topic=1141.0

P.Tsiotakis

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

Σπύρος Δουκάκης

Ok. Ανακεφαλαιώντας τις γνώμες σας, νομίζω ότι πρέπει να το ζητάμε και μάλιστα να βαθμολογούμε τη χρήση περιττής εισαγωγής τιμής. Αν και ο Παναγιώτης το συγκρίνει (ορθώς) και με τις πανελλήνιες.

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

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

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

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

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

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

ΣΔ

P.Tsiotakis

Θεωρώ οτι είναι λάθος η εισαγωγή επιπλέον τιμής -αν και συμμερίζομαι τις απόψεις οτι μπορεί να είναι ψιλά γράμματα. Πιθανώς με μια προσεκτικά διατυπωμένη διευκρίνηση στην εκφώνηση ΜΠΟΡΕΙ να είναι ζητούμενο η σωστή λύση (όχι περιττές εισαγωγές δεδομένων).

Προφανώς διορθώνεται με χρήση επιπλέον δομής επιλογής (είτε σε Όσο είτε σε Μέχρις_ότου βρόχους)

vasiko


gpapargi

Παναγιώτη νομίζω πως το ζήτημα του περιττού διαβάσματος στο θέμα με τα γραμματόσημα είναι λίγο διαφορετικό. Δεν εμφανίζεται σε κάθε εκτέλεση του αλγορίθμου όπως η περίπτωση που αναφέρει ο Σπύρος, αλλά μόνο στην περίπτωση που εισαχθεί τιμή που μηδενίζει ακριβώς το υπόλοιπο. Εκεί θα έλεγα ότι δεν είναι σωστό να διαβαστεί άλλη τιμή και θέλουμε άμεσο τερματισμό του βρόχου. ΑΥτό ίσως και να ξέφυγε στην επιτροπή, αν και είναι πολύ οριακό... θα μπορούσε ίσως κάποιος να τεντώσει την ερμημνεία της εκφώνησης δεχόμενος γραμματόσημα μηδενικής τιμής (λέμε τώρα). Μάλλον είναι οριακά λάθος και κάνεις τα στραβά μάτια. Αλλά όσο  τπ ≠ 0 και πλ < 20 είναι χτυπητή περίπτωση.

Σπύρο αυτό το "αν ο βρόχος υπάρχει περίπτωση να μην εκτελεστεί χρησιμοποιήστε την Όσο" το έχω ακούσει κι εγώ αλλά δεν ισχύει. Οι 2 δομές μπορούν να κάνουν ακριβώς τα ίδια πράγματα και πάντα η μια μετατρέπεται στην άλλη. Ίσως σα σύσταση/υπόδειξη σε πρώτη φάση να μπορεί να λειτουργήσει, αλλά σε βαθύτερο επίπεδο δεν μπορεί να σταθεί. Εδώ πχ έχουμε περίπτωση με 2 συνθήκες διακοπής που δεν ελέγχονται ταυτόχρονα. Δεν υπάρχει καν ολόκληρος βρόχος (με την έννοια των εντολών που επαναλαμβάνονται). Εδώ αν μου επιτρέπεται η έκφραση μπορεί να εκτελεστεί και ο "μισός" ανάλογα με την αιτία διακοπής.

bagelis

1) Συμφωνώ ότι πρέπει να θεωρηθεί λάθος το περιττό διάβασμα αλλά χωρίς να θέλω να αποπροσανατολίσω την κουβέντα το σοβαρό για μένα είναι "πόσο να κοπεί?". Πιστεύω ότι ένα μόριο (στα είκοσι που ενδεχομένως να είχε το θέμα) είναι αρκετό.

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

   

P.Tsiotakis

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

Σκέφτηκα άσκηση τώρα, αλλά δεν προλαβαίνω να τη βάλω...

ikariofil

Δεν πρέπει να κοπεί τίποτα!
Εδώ τρομάζουμε να τους μάθουμε να δουλεύουν με δομή επανάληψης, Λίγοι είναι οι μαθητές που μπορεί να δουλέψουν Όσο με διπλή συνθήκη και εσείς συζητάτε να κόβουμε μονάδες για διάβασμα μιας περιττής τιμής που δεν αξιοποιείται και δεν επηρεάζει το τελικό αποτέλεσμα;
Για μένα ο μαθητής πρέπει να παίρνει το άριστα (με την παραπάνω λύση)..

Σπύρος Δουκάκης

Παναγιώτη συμφωνώ πρέπει να προφυλάξουμε το μαθητή στο συγκεκριμένο θέμα. Επαναλαμβάνω την άποψή μου ότι είναι λάθος, αφού αν ήταν Για και το έκανε 21 φορές αντί για 20 δεν θα έπαιρνε άριστα... Κατά τη γνώμη μου η μία μονάδα στα 20, άντε 2 είναι ok, αφού η εισαγωγή δεν επηρεάζει το αποτέλεσμα με την εκφώνηση που έδωσα.
Αλλά αν με κάποιο τρόπο (είτε με το να ζητήσουμε να εμφανίζει τις εισαγόμενες τιμές, είτε με το να ζητήσουμε να μετρήσει πόσες τιμές αποδεκτές εισήχθησαν) μπορούμε και παιδαγωγικά να του/της επισημάνουμε το σφάλμα και ο/η μαθητής/τρια θα μπορέσει να επισημάνει τον κίνδυνο και να μην κάνει το λάθος.

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

ΣΔ

sstergou

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

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

Η σωστή είσοδος δεδομένων είναι κατά τη γνώμη μου αυτονόητη. Δεν λέω ότι πρέπει να το θερίσουμε το παιδί αλλά οπωσδήποτε κάτι πρέπει να κοπεί. Δεν είναι καλό να τους εξισώνουμε όλους. Εξάλλου αν δεν κόψεις τότε μπορεί να θεωρήσει ότι το έλυσε μια χαρά....

ikariofil

Απάντησε ο μαθητής όλα τα ερωτήματα; Γιατί να μην βαθμολογήσεις άριστα;
Εκτός και αν έχεις φροντίσει να δώσεις κάποιες μονάδες στην είσοδο. Π.χ.
Να γράψετε αλγόριθμο ο οποιος:
(Α) Να παίρνει σαν είσοδο 20 αριθμούς  (Μονάδες 2)
.................................................................................