ΘΕΜΑ Β

Ξεκίνησε από Καρκαμάνης Γεώργιος, 12 Ιουν 2017, 10:24:15 ΠΜ

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

petrosp13

Σωστή είναι η απάντηση σου dimvavas

Παράθεση από: epsilonXi στις 12 Ιουν 2017, 03:53:17 ΜΜ
μαθητής μου λέει έγραψε στο Β1:

στο κενό (2):  i <> 12 και i <> 24 και i
στο κενό (3): 36

δε βλέπω κανένα λόγο να τού το πάρουν λάθος...!

Πόσα κενά υπάρχουν και πόσες συνθήκες έβαλε το παιδί;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

dimvavas

Σας ευχαριστώ για τη γρήγορη απάντηση.

ολγα

Παράθεση από: dimvavas στις 12 Ιουν 2017, 05:07:00 ΜΜ
Προσωπικά στο Β1 έγραψα i mod 3 αντί για i mod 12.


σωστό

Νίκος Αδαμόπουλος

Παράθεση από: dimvavas στις 12 Ιουν 2017, 05:07:00 ΜΜ
Προσωπικά στο Β1 έγραψα i mod 3 αντί για i mod 12.

Μια χαρά είναι! Το έκαναν κι άλλοι.

Νίκος Αδαμόπουλος

Παράθεση από: epsilonXi στις 12 Ιουν 2017, 03:46:51 ΜΜ
Κι εγώ νομίζω ότι οι θεματοδότες δεν είχαν κατά νου να γινότανε έλεγχος εγκυρότητας...

Σε ένα τέτοιο θέμα υποτίθεται τα λάθη είναι "κάπως κρυμμένα".

Δηλαδή π.χ. δεν θα παρέλειπαν την Διάβασε Χ για να πούμε μετά ότι υπάρχει λογικό λάθος.
Αυτό τώρα με τον έλεγχο εγκυρότητας είναι τραβηγμένο. Με τίποτα δεν μπορεί να ζητάνε αυτό! Άσε που δεν βγαίνουν και οι μονάδες όπως αναφέρθηκε!

Υ.Γ.
Βλ. το A4 στο Διαγώνισμα του Στεκιού 2014-15

evry

Στις ενδεικτικές λύσεις πάντως στο Β δεν έχει έλεγχο εγκυρότητας  ;)
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

freedomst

Το ότι δεν υπάρχει ο έλεγχος εγκυρότητας στις ενδεικτικές λύσεις δεν είναι απαραίτητα και σωστό! ;-)
Πιστεύω ότι στο συγκεκριμένο θέμα υπάρχει τεράστια ασάφεια! Έπρεπε να προσέξουν περισσότερο την εκφώνηση, εφόσον ζητούσαν λάθη και μάλιστα λογικά,  έτσι ώστε να μην υπάρχει κανένα περιθώριο για παρερμηνείες από κανέναν!
Σταματοπούλου Ελευθερία
ΠΕ19 - ΓΕΛ Κρύας Βρύσης

"Ουδέν κακόν αμιγές καλού"

petrosp13

Εγώ νομίζω ότι τα βαθμολογικά πρέπει να συμφωνήσουν να αγνοήσουν οποιαδήποτε απάντηση κάνει έλεγχο εγκυρότητας
Δηλαδή να μην το μετρήσουν καν, ούτε θετικά, ούτε αρνητικά
Είναι λογικό που το σκέφτηκε κάποιο παιδί, είναι λογικό να μην το σκεφτεί κάποιο παιδί
End of story
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

ntsgeor

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

Έστω λοιπόν η παρακάτω λύση η οποία έχει ακριβώς τις ίδιες γραμμές και για την οποία θεωρώ ότι τεκμηριώνω καθετί που γράφω. Αν θεωρεί κάποιος ότι είναι λάθος ας το υποδείξει, μπορεί κάτι να μου ξεφεύγει. Αν όμως είναι σωστή, αυτό το 5 * 2 = 10 για το οποίο κάποιοι είναι απόλυτοι δεν ισχύει σίγουρα. Άλλωστε το θέμα είναι ανοικτό στη βαθμολόγηση αν δεν κάνω λάθος.

ΠΡΟΓΡΑΜΜΑ Αριθμοί
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Χ
  ΑΚΕΡΑΙΕΣ: Ρ, Ι
ΑΡΧΗ
  Ρ <- 1
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
    ΔΙΑΒΑΣΕ Χ
    ΑΝ Α_Μ(Χ) = Χ ΚΑΙ Α_Μ(Χ) mod 3 = 0 ΚΑΙ Α_Μ(Χ) mod 5 = 0 ΤΟΤΕ
      Ρ <- Ρ* Α_Μ(Χ)
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ Ρ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ξεκινώ τη διαδικασία εύρεσης σαν να έχω μεταφραστή

γραμμή 9: πρέπει να χρησιμοποιηθεί το ακέραιο μέρος της μεταβλητής Χ στην έκφραση Χ MOD3 = 0 - συντακτικό, οπότε αλλάζω το Χ σε Α_Μ(Χ)
γραμμή 9: λείπει τελεστέος αριστερά του τελεστή mod στην έκφραση mod 5 = 0 - συντακτικό, οπότε αλλάζω σε Α_Μ(Χ) mod 5 = 0
γραμμή 10: εκχώρηση πραγματικής τιμής σε ακέραια έκφραση - συντακτικό, αλλάζω το Χ σε Α_Μ(Χ)
γραμμή 12: Πρέπει να γραφεί ΤΕΛΟΣ_ΑΝ και όχι ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ - συντακτικό

Το πρόγραμμα μπορεί να μεταφραστεί και να εκτελεστεί

γραμμή 6: το ρ πρέπει να αρχικοποιηθεί με 1 (γινόμενο) - λογικό
γραμμή 9: το Η πρέπει να είναι ΚΑΙ - λογικό
γραμμή 9: πρέπει το πραγματικό μέρος του Χ να ελέγχεται ότι είναι μηδέν - λογικό

evry

Κάτι άλλο που δεν είδα να σχολιάσει κανένας.
Στο Β2 ο λάθος τύπος μιας μεταβλητής κανονικά δεν είναι συντακτικό λάθος είναι semantic error, έτσι δεν είναι?  Θυμάμαι ότι όταν υλοποιείς έναν μεταγλωττιστή ο έλεγχος τύπων γίνεται σε επόμενο επίπεδο.
Μάλιστα το βιβλίο λέει :
Εδώ αναφέρουμε ότι τα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους, οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ τα συντακτικά οφείλονται σε αναγραμματισμούς ονομάτων εντολών, παράληψη δήλωσης δεδομένων και πρέπει πάντα να διορθωθούν, ώστε να παραχθεί το τελικό εκτελέσιμο πρόγραμμα

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

Sergio

Παράθεση από: evry στις 12 Ιουν 2017, 10:38:20 ΜΜ
Κάτι άλλο που δεν είδα να σχολιάσει κανένας.
Στο Β2 ο λάθος τύπος μιας μεταβλητής κανονικά δεν είναι συντακτικό λάθος είναι semantic error, έτσι δεν είναι?  Θυμάμαι ότι όταν υλοποιείς έναν μεταγλωττιστή ο έλεγχος τύπων γίνεται σε επόμενο επίπεδο.
Μάλιστα το βιβλίο λέει :
Εδώ αναφέρουμε ότι τα λογικά λάθη που είναι τα πλέον σοβαρά και δύσκολα στη διόρθωση τους, οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου, ενώ τα συντακτικά οφείλονται σε αναγραμματισμούς ονομάτων εντολών, παράληψη δήλωσης δεδομένων και πρέπει πάντα να διορθωθούν, ώστε να παραχθεί το τελικό εκτελέσιμο πρόγραμμα

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


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

Οπότε στο πλαίσιο κατανόησης του μηχανισμού που παρουσιάζεται ο συνειρμός "συντακτικά είναι τα λάθη που εντοπίζει το μεταφραστικό πρόγραμμα" είναι μάλλον αυτονόητος.

Οσο για θέμα επιστημονικής εγκυρότητας, θεωρώ πως τέτοια θέματα πρέπει να "φιλτράρονται" και μέσα από το πρίσμα του διδακτικού μετασχηματισμού που υιοθετεί το μάθημα
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

evry

Στην προκειμένη περίπτωση θα συμβεί όπως το λες, γιατί ο μαθητής έχει συνδέσει τα συντακτικά λάθη με τα λάθη που ανιχνεύονται σε χρόνο μεταγλώττισης.
Αυτό όμως προκύπτει έμμεσα από το κείμενο και δεν είναι σωστό. Πουθενά δεν λέει ότι αυτό το λάθος είναι συντακτικό. Το τι είναι συντακτικό λάθος όπως έγραψα παραπάνω το ορίζει ξεκάθαρα. Επίσης ξέρουμε πολύ καλά ότι το type error είναι semantic και όχι syntax error. Δεν είναι?
Δεν λέω ότι θα μπερδευτεί κάποιος μαθητής για τους λόγους που ανέφερες και ανέφερα, λέω ότι δεν είναι καθόλου σωστό να θεωρούμε γενικά τα λάθη τύπων ως συντακτικά.

Στη ΓΛΩΣΣΑ που έχουμε static typing τα λάθη αυτά πιάνονται σε compile time αλλά αυτό δεν σημαίνει ότι είναι syntax errors
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Καρκαμάνης Γεώργιος

Παράθεση από: freedomst στις 12 Ιουν 2017, 02:04:33 ΜΜ
Η αρίθμηση των γραμμών είναι στο πρόγραμμα που δίνεται σημείο αναφοράς των λαθών, δε λέει πουθενά ότι θα πρέπει και το διορθωμένο πρόγραμμα να έχει τις ίδιες γραμμές άρα και την ίδια αρίθμηση, δηλαδή να παραμείνει 1-1 η αντιστοιχία.
π.χ. κάλλιστα τα παιδιά μπορούν να ενώσουν τις γραμμές 3 και 4 στο διορθωμένο σε μία:
Ακέραιες: Ρ, I, X
θα αλλάξει όλη η υπόλοιπη αρίθμηση του κώδικα και δεν υπάρχει πλέον αντιστοιχία 1-1 με το αρχικό.

Η διόρθωση θεωρητικά μπορεί να γίνει με τις ίδιες, λιγότερες ή περισσότερες γραμμές κώδικα.
π.χ. αν  κάποιος μαθητής γράψει:
...
Αν Χ mod 3 =0 τοτε
   Αν Χ Mod 5 = 0 τοτε
    P <-- P *X
   τελος_αν
τέλος_αν
...
θα του πουμε ότι είναι λάθος επειδή έγραψες περισσότερες γραμμες κώδικα;
Από τη στιγμή που διόρθωσε το λάθος η απάντησή του πρέπει αν γίνει δεκτή.

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

Νομίζω ότι πρέπει να αποδεχτούμε τις λύσεις με τα 5 λάθη που έχουμε επισημάνει και τίποτα περισσότερο

freedomst

Παράθεση από: Καρκαμάνης Γεώργιος στις 13 Ιουν 2017, 12:02:57 ΠΜ

Οπότε δεν υπάρχει  γραμμή στην οποία μπορούμε να πούμε ότι εντοπίζουμε  λανθασμένο έλεγχο εγκυρότητας και να γράψουμε τον αριθμο της.


Το θέμα δεν είναι ότι έχει λανθασμένο έλεγχο εγκυρότητας,  αλλά ότι λείπει ο έλεγχος εγκυρότητας με αποτέλεσμα το περιεχόμενο της μεταβλητής Χ να είναι οποιοσδήποτε αριθμός, γεγονός που δημιουργεί πρόβλημα στις επόμενες γραμμές. Υπό αυτή την έννοια στη γραμμή 8 θα μπορούσε κάποιος να πει ότι έχουμε ένα λογικό λάθος.
Σταματοπούλου Ελευθερία
ΠΕ19 - ΓΕΛ Κρύας Βρύσης

"Ουδέν κακόν αμιγές καλού"

gthal

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

Θα διαφωνήσω όμως κάθετα με το παρακάτω επιχείρημά σου
Παράθεση από: evry στις 12 Ιουν 2017, 11:03:58 ΜΜ
Πουθενά δεν λέει ότι αυτό το λάθος είναι συντακτικό. Το τι είναι συντακτικό λάθος όπως έγραψα παραπάνω το ορίζει ξεκάθαρα.
γιατί μπαίνει στην ολισθηρή λογική του να παίρνουμε μια-δυο περιπτώσεις που δίνει το βιβλίο σαν παραδείγματα και να τα ανάγουμε σε απαρέγκλιτους ορισμούς ή κανόνες
Αν εκεί ορίζει δια παντός τα συντακτικά λάθη, τότε το να μην κλείσει μια ΓΙΑ ή μία παρένθεση δεν είναι συντακτικά λάθη ;

Πάντως (είτε το λέει το βιβλίο είτε όχι - δε θυμάμαι) συντακτικά λάθη είναι αυτά που παραβιάζουν το συντακτικό της γλώσσας που γράφω, δεν είναι;
οπότε, με δεδομένο ότι η ΓΛΩΣΣΑ απαιτεί ο τελεστής MOD να έχει δύο τελεστέους Ακέραιους,
όταν ο ένας λείπει, όπως και όταν δεν είναι ακέραιος, έχω συντακτικό λάθος κι εγώ είμαι πολύ ικανοποιημένος με αυτή την εξήγηση.
Φιλικά,
Γιώργος Θαλασσινός