ΘΕΜΑ Α

Ξεκίνησε από evry, 07 Ιουν 2022, 12:47:50 ΜΜ

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

bagelis

Συνάδελφε δεν είπα να μην το σκεφτόμαστε, φυσικά και το σκεφτόμαστε (έτσι όπως έχουμε μάθει να σκεφτόμαστε τέλος πάντων, :D :D :D ), είπα μόνο ότι:
α) η εκφώνηση λέει να γράψουμε σε ποιά γραμμή βρίσκεται το λάθος
β) ότι αν ανοίγαμε αληθινή κουβέντα για το σε ποιά γραμμή το χτυπάει ο compiler, εκεί να δεις τσακωμούς εδώ μέσα, :D :D :D

Υ.Γ. Με κάθε εκτίμηση σε όλους και σε όλες τις απόψεις

evry

Παράθεση από: bagelis στις 09 Ιουν 2022, 09:44:45 ΜΜΕκφώνηση: "Να γράψετε στο τετράδιό σας τον αριθμό της γραμμής στην οποία βρίσκεται το λάθος"

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

bagelis

Κατά την ταπεινή μου άποψη και δεν επανέρχομαι γιατί κουράζει:
Σενάριο Α:
Εκφώνηση: Να γράψεις τον αριθμό της γραμμής στην οποία βρίσκεται το λάθος
Μαθητής: Θα γράψω την γραμμή 4 γιατί εκεί βρίσκω το λάθος, έπρεπε να έχει δηλώσει το Χ και δεν το κάνει

Σενάριο Β:
Εκφώνηση: Να γράψεις τον αριθμό της γραμμής στην οποία βρίσκεται το λάθος 
Μαθητής: Θα γράψω τη γραμμή 9 γιατί εκεί βρίσκω πρώτη φορά την μεταβλητή Χ και δεν έχει δηλωθεί.

Ξαναλέω για μένα σωστά είναι και τα 2, αλλά πραγματικά πιστεύετε ότι οι θεματοδότες είχαν υπόψη τους το 2ο;

Και κατά την άποψή σου evry η σωστή απάντηση, ιδανικά, εξαρτάται  από το σε ποιά γραμμή το χτυπάει ο compiler;
Όταν ξεχάσω αυτάκι σε ποιά γραμμή θα το χτυπήσει; Όταν ξεχάσω ΤΕΛΟΣ_ΑΝ σε ποιά γραμμή θα το χτυπήσει;

evry

Βαγγέλη είναι ένα θέμα το οποίο δεν μπορούμε να πούμε με βεβαιότητα ότι το ένα είναι σωστό ή το άλλο. Για αυτό είπα ότι και τα δυο πρέπει να τα δεχτούν ως σωστά. Κοίτα όμως τι γίνεται.
Στο άλλο λάθος που γίνεται εκχώρηση χαρακτήρα σε ακέραια μεταβλητή γιατί το λάθος να μην είναι στην δήλωση? Με βάση το σκεπτικό σου εκεί δεν θα έπρεπε να είναι;
Τα παραδείγματα που αναφέρεις με ΤΕΛΟΣ_ΑΝ και τα διπλά αυτάκια πάλι μπορεί να τα εκλάβει κάποιος όπως θέλει. Για παράδειγμα στο ΤΕΛΟΣ_ΑΝ μπορώ αντί να προσθέσω ΤΕΛΟΣ_ΑΝ να αφαιρέσω το Αν και το πρόγραμμά μου συντακτικά θα είναι σωστό.
Το πρόβλημα είναι ότι ζητάνε αριθμό γραμμής και δεν θα έπρεπε.

π.χ. στο παρακάτω πρόγραμμα σε ποιες γραμμές είναι τα λάθη;
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ :   Α, Β, Κ
  ΠΡΑΓΜΑΤΙΚΕΣ : Γ, Δ
ΑΡΧΗ
   ΔΙΑΒΑΣΕ Β, Δ
   Α <- 0
   Α <- Α*1,5
   Γ <- Δ MOD 10
   Κ <- "0"
...
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

bagelis

Θα συμφωνήσουμε λοιπόν ότι η λογική του να ζητάς σε ποιά γραμμή εντοπίζει ο μεταγλωττιστής το λάθος είναι ψιλά γράμματα για τη διδασκαλία του μαθήματος στη Γ΄ Λυκείου, συνεπώς το πιο λογικό είναι να απαντάς τη γραμμή που γίνεται η διόρθωση (από μαθητές της Γ΄ Λυκείου).

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

(αυτή τη φορά θα τηρήσω το λόγο μου, δεν θα επανέλθω ;D )

Foto

#185
Πριν την εκτέλεση στα ονόματα των μεταβλητών δίνεται μνήμη και αρχική τιμή (Δυστυχώς στη ΓΛΩΣΣΑ η αρχική τιμή δεν δίνεται πριν το κυρίως πρόγραμμα, αλλά οπουδήποτε στο πρόγραμμα, και η χρήση σε έκφραση χωρίς αρχικοποίηση είναι λάθος). Δεν τρέχει το πρόγραμμα αν υπάρχουν ονόματα που δεν δηλώθηκαν. Άρα το λάθος είναι πρίν την εκτέλεση.
Το μήνυμα λάθους θα δείχνει το όνομα μεταβλητής που δεν έχει οριστεί. Σε παλιές γλώσσες το μήνυμα αντί να δίνει το όνομα λέει το είδος λάθους και που το βρήκε, δηλαδή που εμφανίζεται το όνομα.
Το που θα βγει λάθος με το που θα γίνει η διόρθωση (άρα θα αλλαχθεί η λάθος γραμμή ή θα παρεμβληθεί μια νέα γραμμή) μπορούν να διαφέρουν.
Όταν σου ζητούν να υποδείξεις γραμμές λαθών, σου ζητούν τις γραμμές που θα διορθώσεις (και πώς) και όχι να πεις που θα βγουν μηνύματα,(είναι αδιάφορο αυτό). Ο σκοπός είναι να διορθώσεις το πρόγραμμα.

Aaron V

Παράθεση από: akouts στις 09 Ιουν 2022, 07:00:13 ΜΜΒιβλίο ΑΕΠΠ κεφάλαιο 1ο (σελ. 17):
"Η κατανόηση ενός προβλήματος αποτελεί συνάρτηση δύο παραγόντων, της σωστής διατύπωσης εκ μέρους του δημιουργού του και της αντίστοιχα σωστής ερμηνείας από τη μεριά εκείνου που καλείται να το αντιμετωπίσει"
Οι λεγόμενοι "θεματοδότες" δεν θα πρέπει να αφήνουν καμία αμφιβολία σχετικά με την κατανόηση, στο βαθμό που τους αφορά.
Δεν προσπαθούμε να εκπαιδεύσουμε νομικούς ή φιλολόγους, δεν πρέπει να αναρωτιόμαστε "τι θέλει να πει ο ποιητής".
Ό,τι θέλει να πει, ας το πει ξεκάθαρα!
Κατά τη γνώμη μου ούτε αυτό είναι σωστή διατύπωση για Σ/Λ.

Α1. 5. Η χρήση διερμηνευτή καθιστά την εκτέλεση του προγράμματος πιο αργή.

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

Υπάρχει κι η εκτέλεση με το χέρι, με πίνακα τιμών που είναι πολύ πιο αργή από τη χρήση διερμηνευτή.

Στην καθημερινότητα θα το λέγαμε ποτέ αυτό;

Π.χ. Η χρήση του ποδηλάτου για να κάνεις 3 χιλιόμετρα απόσταση είναι πιο αργή.
Αν το πούμε αυτό θα μας πει αυτός που θα το ακούσει.
Πιο αργή από τι; Από το να πας με τα πόδια ή από το να πας με αυτοκίνητο;

Λάμπρος Παπαδόπουλος

Παράθεση από: juandojas στις 09 Ιουν 2022, 12:12:40 ΜΜΣτον ορισμό του δυαδικού δένδρου, πολλοί μαθητές ξέχασαν να αναφέρουν ότι πρέπει να είναι διατεταγμενο, αλλά έμειναν μόνο στο πλήθος των παιδιών κάθε κόμβου.  Λογικά θα πάρουν τη 1 από τις 2 μοναδες;
Αυτό γράφει το βιβλίο αλλά το δυαδικό δέντρο δεν είναι διατεταγμένο.
Διατεταγμένο δυαδικό δέντρο είναι το δυαδικό δέντρο αναζήτησης.

petrosp13

Διατεταγμένο είναι αυτό που τα παιδιά έχουν κάποια λογική σειρά
ΔΔΑ είναι αυτό που το αριστερό υποδένδρο έχει μικρότερες τιμές και το δεξί μεγαλύτερες ή ίσες

Άρα, δυαδικό είναι και το δένδρο που έχει την ανάποδη ιδιότητα από το ΔΔΑ
Είναι διατεταγμένο όμως
ΔΔΑ είναι δυαδικό και διατεταγμένο
Δυαδικό είναι διατεταγμένο αλλά όχι απαραίτητα ΔΔΑ
Εγώ έτσι το εκλαμβάνω

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

akouts

Παράθεση από: Aaron V στις 09 Ιουν 2022, 11:37:03 ΜΜΚατά τη γνώμη μου ούτε αυτό είναι σωστή διατύπωση για Σ/Λ.

Α1. 5. Η χρήση διερμηνευτή καθιστά την εκτέλεση του προγράμματος πιο αργή.

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

Υπάρχει κι η εκτέλεση με το χέρι, με πίνακα τιμών που είναι πολύ πιο αργή από τη χρήση διερμηνευτή.

Στην καθημερινότητα θα το λέγαμε ποτέ αυτό;

Π.χ. Η χρήση του ποδηλάτου για να κάνεις 3 χιλιόμετρα απόσταση είναι πιο αργή.
Αν το πούμε αυτό θα μας πει αυτός που θα το ακούσει.
Πιο αργή από τι; Από το να πας με τα πόδια ή από το να πας με αυτοκίνητο;

Έχεις δίκιο!

Όσο ψάχνει κανείς βρίσκει διάφορα.
Οι θέσεις σε διάφορες επιτροπές θεωρούνται ΘΕΣΕΙΣ ΕΥΘΥΝΗΣ, και αμείβονται ιδιαιτέρως, ασφαλώς κανείς δεν συμμετέχει σε αυτές με το ζόρι!.
Φυσικά όλοι οι άνθρωποι κάνουν λάθη, οφείλουν όμως να τα διορθώνουν. Τρόποι υπάρχουν, όλοι τους ξέρουμε, μένει να τους εφαρμόσουν.

Δεν είναι δυνατόν από μια αβλεψία ή από "κούραση" κάποιου "θεματοδότη" ένας μαθητής/φοιτητής να αναγκασθεί να πάει από την Αθήνα στο Ηράκλειο (τυχαία επιλογή των πόλεων) για τα υπόλοιπα τέσσερα/πέντε χρόνια της ζωής του.
Τέτοια λάθη θα έπρεπε να είχαν διορθωθεί ΧΘΕΣ.

akouts

Παράθεση από: juandojas στις 09 Ιουν 2022, 12:12:40 ΜΜΣτον ορισμό του δυαδικού δένδρου, πολλοί μαθητές ξέχασαν να αναφέρουν ότι πρέπει να είναι διατεταγμενο, αλλά έμειναν μόνο στο πλήθος των παιδιών κάθε κόμβου.  Λογικά θα πάρουν τη 1 από τις 2 μοναδες;
Αυτά γράφει το βιβλίο:
Σελ. 46:  Σε αυτή την περίπτωση, που για κάθε κόμβο υπάρχει μία γραμμική σχέση μεταξύ των παιδιών του κόμβου αυτού, αναφερόμαστε σε ένα διατεταγμένο δένδρο.

Σελ. 50:  Ένα δυαδικό δένδρο (binary tree) είναι ένα διατεταγμένο δένδρο, στο οποίο κάθε κόμβος έχει το πολύ δύο παιδιά, το αριστερό και το δεξί παιδί.

Σελ. 50:  Ένα δυαδικό δένδρο αναζήτησης (binary search tree) είναι ένα δυαδικό δένδρο, όπου για κάθε κόμβο u, όλοι οι κόμβοι του αριστερού υποδένδρου έχουν τιμές μικρότερες της τιμής του κόμβου u και όλοι οι κόμβοι του δεξιού υποδένδρου έχουν τιμές μεγαλύτερες (ή ίσες) της τιμής του κόμβου u.

Λάμπρος Παπαδόπουλος

#191
@petros13
Πέτρο δεν κατάλαβα τον συλλογισμό σου. Ασφαλώς κάθε δέντρο που έχει την ανάποδη διάταξη από αυτή που ορίζει το ΔΔΑ είναι
διατεταγμένο. Αυτό όμως δεν σημαίνει οτι και κάθε άλλο δυαδικό δέντρο είναι διατεταγμένο. (αν κατάλαβα καλά...)
Ο ορισμός που ήξερα για το δυαδικό δέντρο είναι οτι δυαδικό δέντρο είναι αυτό που κάθε κόμβος έχει βαθμό το πολύ δυο(βαθμός δένδρου 2), δηλαδή οτι κάθε κόμβος έχει το πολύ δυο παιδιά.

akalest0s

Στο σχολικό, κάθε δυαδικό είναι εξ ορισμού και διατεταγμένο.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

Foto

Όταν κάποτε θα βάλουν τα B-tree στην ύλη θα αρχίσει το μάθημα να έχει περισσότερο ενδιαφέρον και τα δυαδικά, οι μαθητές, θα τα έχουν πρωινή άσκηση!

evry

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

ΠΡΟΓΡΑΜΜΑ Α4
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ  :  ΜΟ
   ΑΚΕΡΑΙΕΣ  : ΓΙΝ, ΑΘΡ, ΠΛ
ΑΡΧΗ
  ΠΛ <- 0
  ΓΙΝ <- 0
  ΑΘΡ <- '0'
  ΔΙΑΒΑΣΕ Χ
  ΟΣΟ Χ>0 ΕΠΑΝΑΛΑΒΕ
     ...
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΜΟ <- ΑΘΡ/ΠΛ
  ΓΡΑΨΕ ΜΟ, ΓΙΝ

Όταν μιλάμε για συντακτικά λάθη και ζητάμε την γραμμή στην οποία υπάρχει το λάθος, σημαίνει την γραμμή στην οποία θα το εντοπίσει ο μεταγλωττιστής. Δεν σημαίνει την γραμμή που πρέπει εμείς να διορθώσουμε έχοντας πλήρη επίγνωση όλου του κώδικα, διότι η απάντηση πρέπει να είναι μονοσήμαντή και ο τρόπος διόρθωσης σε κάποια λάθης μπορεί να έχει πολλούς διαφορετικούς τρόπους όπως δείχνω στο τελευταίο παράδειγμα στο post.
Αυτός ο συλλογισμός διαφέρει πολύ στα λογικά λάθη γιατί αυτά δεν τα πιάνει ο μεταγλωττιστής άρα μπορεί να υπάρχουν πολλοί διαφορετικοί τρόποι διόρθωσης.
Παραπάνω ο μεταγλωττιστής θα χτυπήσει συντακτικό λάθος ως εξής

1) στην γραμμή 8 γιατί έχουμε ανάθεση τιμής διαφορετικού τύπου από αυτόν που έχουμε ορίσει την μεταβλητή παραπάνω
2) Αφού διορθωθεί αυτό στην συνέχεια θα χτυπήσει στην γραμμή 9 για άγνωστο αναγνωριστικό.

Αν δεχθούμε ότι το λάθος στην γραμμή 9 είναι στην γραμμή 4 τότε θα πρέπει να δεχθούμε ότι και το λάθος στην γραμμή 8 είναι πάλι στην 4 και γενικά ότι όλα τα λάθη που αφορούν ασυμβατότητα τύπων είναι στην 4.

Προσοχή!! Δεν έχει σημασία τι κάνει το πρόγραμμα, είμαστε στην φάση του συντακτικού ελέγχου, άλλο o εντοπισμός του λάθους και άλλο πως θα διορθωθεί. Είναι δυο εντελώς διαφορετικά πράγματα.
Για παράδειγμα για την μεταβλητή Χ μπορεί να δώσει κάποιος την παρακάτω λύση, θέτοντας τα πάντα πραγματικές, αφού δεν μας λέει ότι η Χ ειναι ακέραια:
ΠΡΟΓΡΑΜΜΑ Α4
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ  :  ΜΟ,  ΓΙΝ, ΑΘΡ, ΠΛ , Χ
ΑΡΧΗ
  ΠΛ <- 0
  ΓΙΝ <- 0
  ΑΘΡ <- 0
  ΔΙΑΒΑΣΕ Χ
  ΟΣΟ Χ>0 ΕΠΑΝΑΛΑΒΕ
     ...
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΜΟ <- ΑΘΡ/ΠΛ
  ΓΡΑΨΕ ΜΟ, ΓΙΝ

Φαντάζομαι το παραπάνω θα γίνει δεκτό.

Από ότι μου είπαν από το σχολείο κάποιοι την πάτησαν και έδωσαν ως λάθος την αλλαγή στην σειρά εμφάνισης των δυο αποτελεσμάτων.


What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr