(ψηφοφορία) Τιμές πίνακα χαρακτήρων και εισαγωγικά

Ξεκίνησε από gbougioukas, 19 Ιαν 2019, 07:38:08 ΜΜ

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

Πως θα βαθμολογούσατε τις δύο απαντήσεις της άσκησης;

Άριστα σε καμία
0 (0%)
Άριστα μόνο στην 1η
0 (0%)
Άριστα μόνο στην 2η
0 (0%)
Άριστα και στις δύο
8 (100%)

Σύνολο ψηφοφόρων: 8

gbougioukas

Θεωρείτε ότι υπάρχει πρόβλημα είτε λόγω της χρήσης εισαγωγικών (απάντηση 2), είτε λόγω της μη-χρήσης (απάντηση 1);

Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

petrosp13

Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

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

Σωστή θεωρώ την απάντηση 1
Η εντολή Γράψε Χ[1] θα εμφανίσει στην οθόνη την τιμή της Χ[1] δηλαδή ΜΑΡΙΑ
Ο τύπος των δεδομένων που μπορεί να δεχτεί ο πίνακας Χ καθορίζεται στο τμήμα δήλωσης
μεταβλητών και όχι με τα εισαγωγικά.
Όταν θέλουμε να αναφερθούμε στον πηγαίο κώδικα σε μια αλφαριθμητική τιμή τότε την
περικλείουμε με εισαγωγικά για να την διακρίνουμε από το όνομα κάποιας μεταβλητής.
Άλλωστε στη ΓΛΩΣΣΑ δεν νομίζω οτι μπορούμε να γράψουμε τη τιμή "ΜΑΡΙΑ" αφού δεν
υπάρχουν χαρακτήρες διαφυγής.
Δυσκολεύομαι όμως να κόψω μονάδες αν κάποιος μαθητής απαντούσε διαφορετικά.
Η απόφαση θα ήταν ακόμα πιο δύσκολη αν υπήρχαν οι εκχωρήσεις
Α <- 'ΑΛΗΘΗΣ'
Β <- ΑΛΗΘΗΣ
Τότε ένας μαθητής δεν θα ήθελε να τονίσει με εισαγωγικά την διαφορά στον τύπο της μεταβλητής;
Δεν θα ήθελα να δω κάτι τέτοια στις εξετάσεις

pgrontas

Παράθεση από: Λάμπρος Παπαδόπουλος στις 21 Ιαν 2019, 01:31:15 ΠΜ

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


Σωστή είναι η απάντηση 1, χωρίς εισαγωγικά. Προσωπικά θα έκοβα μονάδες από την απάντηση 2 (τις ελάχιστες επιτρεπόμενες), διότι ο μαθητής δεν έχει κατανοήσει αυτό που αναφέρθηκε. ότι βάζουμε τα εισαγωγικά μόνο στον πηγαίο κώδικα για να διαχωρίσουμε αλφαριθμητική τιμή από όνομα μεταβλητής. Αν δεν κοπούν θα αδικηθούν αυτοί που το έχουν κατανοήσει.
Στην περίπτωση των λογικών μεταβλητών είναι διαφορετικά αφού οι μεταβλητές έχουν διαφορετικό τύπο, οπότε ο μαθητής πρέπει να ξέρει ότι το Α και το Β είναι διαφορετικά (εγώ τους λέω ότι το κουτάκι έχει διαφορετικό σχήμα πχ. κύκλος).
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gbougioukas

#4
Παράθεση από: pgrontas στις 21 Ιαν 2019, 09:52:06 ΠΜ
..διότι ο μαθητής δεν έχει κατανοήσει αυτό που αναφέρθηκε. ότι βάζουμε τα εισαγωγικά μόνο στον πηγαίο κώδικα για να διαχωρίσουμε αλφαριθμητική τιμή από όνομα μεταβλητής.
Αυτό που το γράφει;;;

Παρατηρώ ότι υπάρχει σύγχυση μιας τέτοιας άσκησης με την εντολή ΓΡΑΨΕ. Δεν βλέπω την σχέση, διότι αν είναι έτσι ποια είναι η εντολή που τυπώνει και τις γραμμές του πίνακα;

Τα εισαγωγικά είναι μέρος της ταυτότητας μιας σταθεράς τύπου δεδομένων χαρακτήρων, επομένως, όπου αναφέρεται σταθερά τύπου χαρακτήρων (είτε στον πηγαίο είτε οπουδήποτε αλλού) πρέπει να χρησιμοποιούνται. Αλλιώς γιατί να μην θεωρήσει κάποιος ότι όποιος δεν τα χρησιμοποιεί δεν έχει κατανοήσει τι σημαίνει σταθερά τύπου χαρακτήρων; Θα λέγαμε ότι η τιμή του στοιχείου Χ[1] είναι ΜΑΡΙΑ και όχι "ΜΑΡΙΑ", και θα κόβαμε μάλιστα και μονάδες για το δεύτερο;

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

Χ[1] <- "1"
Χ[2] <- "2"
Χ[3] <- "3"

Απάντηση 1:
1   2   3

Απάντηση 2:
"1"     "2"      "3"
Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

alkisg

"Συμπληρώστε τις τιμές του πίνακα Χ".

Ζητάει κάπου να του πούμε τον τύπο δεδομένων των τιμών;
Αν υποθέσουμε ότι έχουμε ένα αλφαριθμητικό με τιμή "1",

  • Μια μορφή αναπαράστασης της τιμής του είναι το "1", που συνηθίζουμε στον πηγαίο κώδικα.
  • Μια άλλη είναι το 1, όπως εμφανίζεται με τη ΓΡΑΨΕ.
  • Μια άλλη, πιο ακριβής, είναι το [0x31, 0x00] που εκφράζει τα bytes της μνήμης που χρειάζονται για να απεικονίσουν το αλφαριθμητικό 1, αν υποθέσουμε ότι η ΓΛΩΣΣΑ χρησιμοποιεί null-terminated ascii strings όπως η C.
Δεν νομίζω ότι μια απλή εκφώνηση "συμπληρώστε τις τιμές" υποχρεώνει τον μαθητή να επιλέξει τη "σωστή" μορφή αναπαράστασης τιμών.
Αν ο θεματοδότης θέλει να εξετάσει αν ο μαθητής κατανόησε τον τύπο δεδομένων, να ρωτήσει συγκεκριμένα για τον τύπο δεδομένων, όχι ως "παρενέργεια" του "συμπληρώστε τις τιμές"...

gbougioukas

@alkisg

Δηλαδή, θα έκοβες βαθμούς από κάποια από τις δύο απαντήσεις;
Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

alkisg

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

Αν ρώταγα τι θα εμφανίσει η εντολή:
ΓΡΑΨΕ "1"
και κάποιος μου απαντούσε:
"1"
εκεί μάλλον θα έκοβα, γιατί η λειτουργία της ΓΡΑΨΕ είναι σαφώς ορισμένη.

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

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

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

Αυτό που το γράφει;
Τελικά εσύ τι ψηφίζεις;

gbougioukas

Παράθεση από: Λάμπρος Παπαδόπουλος στις 21 Ιαν 2019, 12:56:38 ΜΜ
Αυτό που το γράφει;
Τελικά εσύ τι ψηφίζεις;

Που το γράφει; σελ. 128 του σχολικού βιβλίου:

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

*Να σημειώσω ότι σύμφωνα με τις οδηγίες του υπουργείου είναι αποδεκτά τόσο τα μονά όσο και τα διπλά εισαγωγικά ( https://drive.google.com/file/d/14iCK6m8mEUz3m6qn4ZJoB9aHhKIOsq1y/view , σελ. 5)

@pgrontas  Δεν είναι πηγαίος κώδικας το παραπάνω, ωστόσο λέει 'Κώστας' και όχι Κώστας.

Όσον αφορά την ψήφο, δεν θεωρώ ότι η ουσία μιας τέτοιας άσκησης βρίσκεται σε μια τέτοια διευρεύνηση, οπότε θα έβαζα άριστα και στις δύο. Αυτό βασικά ήθελα να τονίσω θέτοντας το θέμα, παρόλο που όπως είπε και ο petrosp13 παραπάνω, θεωρώ "πιο σωστή" τη δεύτερη απάντηση. Επειδή τέτοιο θέμα μπορεί να προκύψει στις Πανελλαδικές καλό είναι να τα ξεκαθαρίζουμε αυτά από πριν.
Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

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

Λίγο παρακάτω λοιπόν στο βιβλίο γράφει:

Κατά την εκτέλεση του προγράμματος η εντολή ΓΡΑΨΕ προκαλεί την
εμφάνιση στην οθόνη των σταθερών τιμών. Όταν κάποιο όνομα μετα-
βλητής περιέχεται στη λίστα, τότε αρχικά ανακτάται η τιμή της και στη
συνέχεια η τιμή αυτή εμφανίζεται στην οθόνη.
Η χρήση της εντολής ΓΡΑΨΕ είναι κυρίως η εμφάνιση μηνυμάτων από τον
υπολογιστή, καθώς και αποτελεσμάτων που περιέχονται στις μεταβλητές.

Νομίζω οτι το παραπάνω απόσπασμα ταιριάζει καλύτερα.

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

gbougioukas

Παράθεση από: Λάμπρος Παπαδόπουλος στις 21 Ιαν 2019, 02:08:19 ΜΜ
Από την αρχή όμως είπα ότι οι μαθητές έχουν λόγους να απαντήσουν και με τους δυο τρόπους
και γιαυτό ψήφισα άριστα και στις δυο.
Στα πλαίσια μόνο της μεταξύ μας συζήτησης (δεν εννοώ μόνο τους δυο μας) επέλεξα μια από τις δύο.
Και εφόσον όλοι συμφωνούμε ότι και οι δυο απαντήσεις θα πρέπει να θεωρηθούν σωστές μάλλον είναι αποτυχημένη
η ερώτηση και γι αυτό δεν έχει θέση στις εξετάσεις.

Υποθετική είναι η άσκηση, έθεσα το θέμα για την περίπτωση που υπάρξει (και εύχομαι να μην) πρόβλημα σε θέμα Πανελλαδικών. Είναι θέμα που μπορεί να πέσει και μπορεί ένας μαθητής να απαντήσει έτσι κι άλλος αλλιώς.
Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

pgrontas

#12
Παράθεση από: Λάμπρος Παπαδόπουλος στις 21 Ιαν 2019, 02:08:19 ΜΜ
Κατά την εκτέλεση του προγράμματος η εντολή ΓΡΑΨΕ προκαλεί την
εμφάνιση στην οθόνη των σταθερών τιμών. Όταν κάποιο όνομα μετα-
βλητής περιέχεται στη λίστα, τότε αρχικά ανακτάται η τιμή της και στη
συνέχεια η τιμή αυτή εμφανίζεται στην οθόνη.
Η χρήση της εντολής ΓΡΑΨΕ είναι κυρίως η εμφάνιση μηνυμάτων από τον
υπολογιστή, καθώς και αποτελεσμάτων που περιέχονται στις μεταβλητές.

Νομίζω οτι το παραπάνω απόσπασμα ταιριάζει καλύτερα.
Συμφωνώ ότι αυτό το κομμάτι ταιριάζει καλύτερα, και πιο σημαντικά η απάντηση 1 δεν δημιουργεί προβλήματα στην λειτουργία της ΓΡΑΨΕ. Με την αποδοχή των εισαγωγικών θα έπρεπε το παραπάνω κομμάτι να λέει ότι η εντολή ΓΡΑΨΕ δεν ανακτά απλά την τιμή, αλλά στην περίπτωση των αλφαριθμητικών αφαιρεί τα εισαγωγικά πρώτα και μετά εμφανιζει ότι βρίσκεται ενδιάμεσα.

Παράθεση από: gbougioukas στις 21 Ιαν 2019, 01:31:21 ΜΜ
@pgrontas  Δεν είναι πηγαίος κώδικας το παραπάνω, ωστόσο λέει 'Κώστας' και όχι Κώστας.
Νομίζω πως μπορούμε με ασφάλεια να υποθέσουμε ότι εννοεί για χρήση σε πηγαίο κώδικα, γιατί δεν αναφέρει σε κανένα σημείο τίποτα για πώς αποθηκεύονται τα δεδομένα στη μνήμη για οποιονδήποτε τύπο.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

gbougioukas

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

Αδυνατώ να καταλάβω πως είναι δυνατόν να συγχέεται μια άσκηση της μεταγλώσσας με το αποτέλεσμα στην οθόνη της εντολής εξόδου της γλώσσας. Ποτέ δεν είδα debugger να το κάνει αυτό.  Π.χ του pycharm




Γιώργος Μπουγιούκας
Computer Science (BSc), Bioinformatics & Neuroinformatics (MSc)
https://gbougioukas.wordpress.com/
https://apothesis.eap.gr/handle/repo/54953

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

@gbougioukas

Τι εννοείς όταν λες άσκηση μεταγλώσσας ; Όταν θέλω να φτιάξω μια άσκηση για την ΓΛΩΣΣΑ δεν θα χρησιμοποιήσω όρους μεταγλώσσας;
Οι λέξεις πίνακας, όνομα, τιμή δεν είναι λέξεις της μεταγλώσσας;

Τιμή μιας μεταβλητής είναι τα δεδομένα που είναι αποθηκευμένα στο χώρο μνήμης που ονομάζει
η μεταβλητή αυτή. Όταν με ρωτάς λοιπόν αν εκεί είναι αποθηκευμένο το ΜΑΡΙΑ ή το "ΜΑΡΙΑ" σου
απαντώ οτι είναι το ΜΑΡΙΑ γιατί δεν έχουν αποθηκευτεί και τα εισαγωγικά. Και για να με ρωτάς μάλλον
ζητάς την ακριβέστερη απάντηση.
Σε οποιοδήποτε κείμενό μου όμως αν θέλω να τονίσω τον τύπο ΧΑΡΑΚΤΗΡΑ μπορώ να γράψω (και το κάνω) "ΜΑΡΙΑ". Γιαυτό είπα οτι και
η δεύτερη απάντηση είναι σωστή.

Δες ένα αντιπαράδειγμα σε Java