Αποστολέας Θέμα: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;  (Αναγνώστηκε 2058 φορές)

vasiko

  • Βετεράνος
  • ****
  • Μηνύματα: 85
  • !!!!...!!!
ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« στις: 17 Ιαν 2013, 12:01:16 πμ »
Στην περίπτωση μίας άσκησης όπου διαβάζονται επαναληπτικά ονόματα και βάρη μέχρι να δοθεί ως όνομα το "ΤΕΛΟΣ" και ψάχνουμε ας πούμε το μεγαλύτερο βάρος που έχει δοθεί,  οι περισσότεροι μαθητές λύνουν την άσκηση με Μέχρις_ότου ως εξής:
Αρχή_επανάληψης
   Διάβασε ον, β
   Αν β>μαχ τότε
      μαχ<-- β
    Τέλος_αν
Μέχρις_ότου ον="ΤΕΛΟΣ"
Προφανώς η λύση αυτή έχει ένα  λάθος καθώς ο χρήστης μετά την εισαγωγή της λέξης "ΤΕΛΟΣ" είναι υποχρεωμένος να δώσει κι ένα βάρος το οποίο θα μπει και στη σύγκριση με το μαχ. Αν η άσκηση πιάνει 10 μόρια τι θα κόβαμε στις Πανελλήνιες σε αυτή η λύση;
Σε συζητήσεις με συναδέλφους υπάρχουν αρκετοί που έχουν την άποψη ότι δεν κόβουμε τίποτα. Τι λέτε;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2370
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #1 στις: 17 Ιαν 2013, 11:41:15 πμ »
Υπάρχει λάθος και σίγουρα πρέπει να κοπούν μονάδες
Προφανώς διδάσκουμε στην συγκεκριμένη περίπτωση ότι το όνομα πρέπει να διαβάζεται πριν την επανάληψη και ξανά πριν το τέλος της, ούτως ώστε να δίνεται βάρος μόνο όταν πρέπει από τον χρήστη
Οι μαθητές πρέπει να το κατανοήσουν και να το ακολουθήσουν, αλλιώς υποπίπτουν σε λογικό λάθος
Τώρα, οι μονάδες που πρέπει να κοπούν είναι μάλλον υποκειμενικές
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3609
  • to Iterate is human to Recurse divine
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #2 στις: 17 Ιαν 2013, 04:43:13 μμ »
Το πρόβλημα δεν είναι ότι διαβάζει και το βάρος.
Με το σκεπτικό αυτό η παρακάτω λύση θα έπρεπε να είναι λάθος, αλλά δεν νομίζω ότι θα βρεθεί κάποιος βαθμολογητής που θα κόψει

Διάβασε Ον, Β
Όσο Ον <> "ΤΕΛΟΣ"  Επανάλαβε
   ....
 Διάβασε Ον, Β
ΤΕ

Η μόνη πιθανότητα όπου θα δικαιούμασταν να κόψουμε είναι αν η εκφώνηση λέει ρητά "Να διαβάζει το όνομα και αν αυτό είναι διάφορο του "ΤΕΛΟΣ" να διαβάζει και το Β, αλλιώς να τερματίζει"

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

Επίσης δεν είναι υποχρεωτικό να χρησιμοποιήσει ο μαθητής Όσο, η να διαβάζει το όνομα έξω από την επανάληψη και στο τέλος.
Με χρήση μέχρις_ότου και Αν..τότε μέσα δουλεύουν όλα μια χαρά.

Όσον αφορά τώρα το βαθμολογικό κόστος αυτού του λάθους, δεδομένου ότι πρόκειται για ένα υποερώτημα που πιάνει 4 μονάδες (από τις 20 του θέματος) το φυσιολογικό είναι να κόψουμε 1 μονάδα και το αυστηρό 2. Εξαρτάται φυσικά και από την επίδραση που έχει αυτό το λάθος στην όλη λογική του αλγορίθμου.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2370
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #3 στις: 17 Ιαν 2013, 10:10:21 μμ »
Το πρόβλημα δεν είναι ότι διαβάζει και το βάρος.
Με το σκεπτικό αυτό η παρακάτω λύση θα έπρεπε να είναι λάθος, αλλά δεν νομίζω ότι θα βρεθεί κάποιος βαθμολογητής που θα κόψει

Διάβασε Ον, Β
Όσο Ον <> "ΤΕΛΟΣ"  Επανάλαβε
   ....
 Διάβασε Ον, Β
ΤΕ



Εφόσον έχεις συμφωνήσει με τον χρήστη ότι μόλις θα δόσει "ΤΕΛΟΣ", θα τερματίσει ο αλγόριθμος, δεν είναι λάθος να τον βάλεις να δώσει και ένα βάρος;;;
Ενώ μπορεί να λυθεί εύκολα αν το βάρος διαβάζεται σε μια εντολή μόνο ακριβώς με την αρχή της επανάληψης;;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

vasiko

  • Βετεράνος
  • ****
  • Μηνύματα: 85
  • !!!!...!!!
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #4 στις: 18 Ιαν 2013, 03:19:48 μμ »
θα διαφωνήσω με τον evry. Θεωρώ ότι είναι λογικό λάθος να υποχρεώνεις το χρήστη να εισάγει το βάρος αφού έχει πληκτρολογήσει τη λέξη "ΤΕΛΟΣ" για να ολοκληρωθεί ο αλγόριθμος. Επίσης τις περισσότερες φορές το βάρος ή οποιοδήποτε άλλο δεδομένο εισάγει ο χρήστης ελέγχεται παρακάτω για να μετρηθεί κάποιο πλήθος ή να βρεθεί κάποιο μέγιστο κλπ. Όπότε μάλλον θα υπάρξει πρόβλημα έτσι κι αλλιώς . Το πρόβλημα λύνεται είτε με Αρχή_επανάληψης:
Αρχή_επανάληψης
   Διάβασε ον
    Αν ον<>"ΤΕΛΟΣ" τότε
         Διάβασε β
       Αν β>μαχ τότε
          μαχ<-- β
       Τέλος_αν
   Τέλος_αν
Μέχρις_ότου ον="ΤΕΛΟΣ"

 είτε με Όσο:

Διάβασε ον
Όσο ον<>"ΤΕΛΟΣ" επανάλαβε
     Διάβασε β
     Αν β>μαχ τότε
          μαχ<-- β
      Τέλος_αν
     Διάβασε ον
Τέλος_επανάληψης
Ωστόσο από την εμπειρία μου μέχρι τώρα βλέπω ότι στις Πανελλήνιες πολλοί βαθμολογητές δεν κόβουν μόρια από κάτι τέτοιο.
Ξαναθέτω λοιπόν το ερώτημα στους πιο έμπειρους συναδέλφους:
Όταν διδάσκετε το μάθημα επισημαίνετε αυτό το λογικό σφάλμα ή το θεωρείτε κάτι ασήμαντο και το αφήνετε να περάσει;
« Τελευταία τροποποίηση: 18 Ιαν 2013, 04:20:00 μμ από vasiko »

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1085
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #5 στις: 18 Ιαν 2013, 03:30:21 μμ »
Προφανώς και το επισημαίνουμε αλλά και επιμένουμε (πολλές φορές με τρόπο ... κουραστικό !) 'τρέχοντας' τον αλγόριθμο με το 'χέρι' με τη βοήθεια πίνακα τιμών !!!

Επίσης το max  ΔΕΝ έχει αρχικοποιηθεί !!!


ΑΠ

vasiko

  • Βετεράνος
  • ****
  • Μηνύματα: 85
  • !!!!...!!!
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #6 στις: 18 Ιαν 2013, 04:20:36 μμ »
Ναι έχεις δίκιο για την αρχικοποίηση του max αλλά δεν ήταν αυτό το θέμα μου.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3609
  • to Iterate is human to Recurse divine
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #7 στις: 19 Ιαν 2013, 09:37:33 πμ »
Δεν είπα ότι δεν είναι λάθος, για την ακρίβεια είπα ότι δύσκολα κάποιος θα κόψει για αυτό.
Όταν στη δομή επανάληψης μαζί με συνθήκη, αρχικοποίηση και Διάβασε δίνονται 4 μονάδες συνήθως, είναι λογικό να κοπεί μια μονάδα για αυτό?
Νομίζω ότι είναι πάρα πολύ.
Δεν το θεωρώ τόσο σημαντικό ώστε να κόψει κάποιος από αυτό.
Πιστεύω ότι θα έπρεπε η εκφώνηση με κάποιο τρόπο να δείχνει πως δεν πρέπει να διαβαστεί και το βάρος.
π.χ. όταν η εκρφώνηση λέει "να διαβάζει μέχρι να δοθεί αντί για όνομα το "ΤΕΛΟΣ" " δε νομίζω ότι προκύπτει με ασφάλεια πως η επανάληψη τερματίζει αυτόματα ή ότι δεν δίνει βάρος, ή τουλάχιστον πως οι περισσότεροι μαθητές θα το εκλάβουν έτσι.

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

Τέλος πάντων εκτός του ότι δεν το θεωρώ τόσο σημαντικό θέμα, εφόσον η λογική του αλγορίθμου είναι σωστή, είναι τέτοια η κατανομή της βαθμολογίας που γίνεται που είναι δύσκολο να κόψεις μια ολόκληρη μονάδα από κάτι τέτοιο.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

vasiko

  • Βετεράνος
  • ****
  • Μηνύματα: 85
  • !!!!...!!!
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #8 στις: 19 Ιαν 2013, 05:25:38 μμ »
Συμφωνώ evry, ευχαριστώ πολύ.

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 948
Απ: ΚΟΒΟΥΜΕ Η ΔΕΝ ΚΟΒΟΥΜΕ;
« Απάντηση #9 στις: 20 Ιαν 2013, 10:21:17 πμ »
Κι εγώ επισημαίνω στους μαθητές τα δύο αυτά λογικά λάθη αλλά βαθμολογικά τα αντιμετωπίζω όπως ο evry.
Στο ένα χαρίζομαι, στο άλλο όχι.
Φιλικά,
Γιώργος Θαλασσινός