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

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

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

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

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

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

bugman

Είναι και αυτή μια άποψη, αλλά τα escape codes δεν υπάρχουν σε όλες τις γλώσσες. Όμως όπως αντιλαμβάνομαι εδώ σε ενδιαφέρει η αναπαράσταση στην οθόνη τιμών, δηλαδή πώς θα βλέπει ο χρήστης τιμές. Το πώς καταγράφονται οι τιμές στη μνήμη είναι άλλο θέμα. Πχ ένας αριθμός μπορεί να καταχωρηθεί με πολλούς τρόπους αν το δούμε μεταξύ γλωσσών και μεταξύ τύπων αριθμών. Η εμφάνιση του αριθμού δεν γίνεται για να φανεί και ο τρόπος καταχώρησης. Δηλαδή δεν μπορούμε να βγάζουμε συμπεράσματα από την εμφάνιση στην οθόνη, είτε με μια λειτουργία όπως η ΓΡΑΨΕ, είτε μέσω φόρμας παρουσίασης που συνθέτει ένας debugger.
Τα escape codes είναι χαρακτήρες που δεν μπορούν να φανούν στην οθόνη. Πχ ο χαρακτήρας με αριθμό 13 είναι το αντίστοιχο της "επαναφοράς στην πρώτη θέσης αριστερά", ενώ το 10 είναι αλλαγή γραμμής (στους εκτυπωτές αν δεν υπάρχει άλλη γραμμή στο χαρτί, τότε εξάγεται το φύλλο και έρχεται νέο χαρτί). Για να τους δει κανείς αυτούς τους χαρακτήρες σε μια συμβολοσειρά (αλλιώς το αλφαριθμητικό) θα πρέπει να τους κωδικοποιήσει. Αυτό ακριβώς είναι η κωδικοποίηση των escape codes. Δυστυχώς υπάρχει και δεύτερος τύπος escape codes, και για να μην μπερδευτεί κανείς το αναφέρω. Είναι οι κωδικοί που ξεκίναγαν με το χαρακτήρα 27 (escape) και ακολουθούσαν αριθμοί που ουσιαστικά ήταν εντολές, για τη συσκευή που στέλναμε το αλφαριθμητικό, όπως ο εκτυπωτής.
εδώ είναι το εγχειρίδιο εντολών της ESC/P γλώσσας της EPSON, https://files.support.epson.com/pdf/general/escp2ref.pdf
το 1987 έφτιαξα πρόγραμμα σε assembly για να μπορώ να κάνω αντιγραφή οθόνης (κάποια ιστογράμματα) σε ένα EPSON FX εκτυπωτή (dot matrix), σε ένα BBC Model B (32Κbyte ram), και αυτό έγινε δυνατό με τα escape codes.

gbougioukas

Κι αν οι χαρακτήρες τελειώνουν σε κενό (space), ένα ή περισσότερα; Μήπως δεν καταχωρούνται τα κενά; Ποιο είναι το περιεχόμενο του στοιχείου, ποια η τιμή του; Μήπως γι' αυτό χρειάζονται τα εισαγωγικά; Μήπως γι' αυτό τα βάζουν οι debugger;

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

pgrontas

Παράθεση από: gbougioukas στις 27 Ιαν 2019, 01:08:13 ΜΜ
Κι αν οι χαρακτήρες τελειώνουν σε κενό (space), ένα ή περισσότερα; Μήπως δεν καταχωρούνται τα κενά; Ποιο είναι το περιεχόμενο του στοιχείου, ποια η τιμή του; Μήπως γι' αυτό χρειάζονται τα εισαγωγικά; Μήπως γι' αυτό τα βάζουν οι debugger;
Πόσα κενά έχεις βάλει; Σίγουρα δεν είναι ένα αλλά είναι δύο ή τρία ή τέσσερα; Ποια απάντηση είναι σωστή;

Ας μη χάνουμε το δάσος.
Ναι οι debuggers μπορεί να βάζουν τα εισαγωγικά και γι'αυτό το λόγο μαζί με αυτούς που ανέφερα αλλά και άλλους. Όμως η άσκηση δε ρωτάει τι θα εμφανίσει ο debugger. Ρωτάει τι θα μπει στο κουτάκι. Εκεί θα μπει η τιμή του αλφαριθμητικού η οποία συμφωνούμε (ελπίζω) οτι δεν περιλαμβανει τα εισαγωγικά, αλλά περιλαμβανει τα κενά. Στην (σπάνια) περίπτωση που το αλφαριθμητικό αρχίζει ή τελειώνει με κενά (δεν θα το έκανα ποτέ ως προγραμματιστής) προτιμώ να πω στο μαθητές μου να γράψουν υποσημείωση από κάτω από την απάντηση ότι υπάρχουν και κενά στην τιμή, παρά να τους μπερδέψω για το ποια είναι η τιμή του αλφαριθμητικού.

Παράθεση από: Λάμπρος Παπαδόπουλος στις 23 Ιαν 2019, 11:04:07 ΠΜ
Το παρακάτω απόσπασμα νομίζω ότι είναι σαφές. 

A string literal or anonymous string is a type of literal in programming for the representation of a string value within the source code of a computer program. Most often in modern languages this is a quoted sequence of characters (formally "bracketed delimiters"), as in x = "foo", where "foo" is a string literal with value foo – the quotes are not part of the value, and one must use a method such as escape sequences to avoid the problem of delimiter collision and allow the delimiters themselves to be embedded in a string.

https://en.wikipedia.org/wiki/String_literal#Bracketed_delimiters

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

Παράθεση από: pgrontas στις 22 Ιαν 2019, 04:39:10 ΜΜ
   3. Ακολουθείται από το επίσημο λογισμικό του υπουργείου.
   4. Προκύπτει από παραδείγματα του βιβλίου που είναι εκτός ύλης (σελ. 81) και παλιότερα θέματα πανελληνίων (πχ. Επαναληπτικές 2012).

Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

bugman

#33
Όλοι οι διορθωτές (editors) έχουν μια επιλογή προβολής για κρυμμένους χαρακτήρες δηλαδή για αυτούς που δεν φαίνονται. Έτσι μόλις γυρίσει κανείς σε αυτήν την προβολή θα δει με κουκίδες τα κενά (διαστήματα), με βελάκια το χαρακτήρα "στηλοθέτη" ή tab, και ένα παράξενο σύμβολο για σημάδι παραγράφου!
Αν τα  "κουτάκια" τα θέλουμε να είναι τόσο καλά σε παράσταση θα πρέπει να ζητήσουμε τα κενά να φαίνονται με κουκίδες (η κουκίδα είναι στη μέση, δεν χρησιμοποιείται για άλλη δουλειά).

Έχω γράψει editor, (στο μεταφραστή της Μ2000), και με ένα κλικ στο F10 εμφανίζονται αυτά που αναφέρθηκαν και επιπλέον δυο ακόμα διαστήματα, το διάστημα nbsp (που δεν χωρίζει λέξεις σε αναδίπλωση), και το διάστημα των αριθμών (figure space) που έχει πλάτος όσο το πλάτος των αριθμών. Αυτά βέβαια είναι ψιλά γράμματα, στη ΓΛΩΣΣΑ ένα διάστημα χρησιμοποιείται.


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

Η λύση έχει δοθεί από την ίδια την επιτροπή εξετάσεων το 2012, όταν ζητήθηκε ο τύπος της μεταβλητής Χ και το περιεχόμενο της μεταβλητής Χ κατά τις παρακάτω εντολές εκχώρησης:

Χ <- 'ΑΛΗΘΗΣ'
Χ <- ΨΕΥΔΗΣ

gbougioukas

Παράθεση από: Καρκαμάνης Γεώργιος στις 28 Μαρ 2019, 11:30:46 ΜΜ
Η λύση έχει δοθεί από την ίδια την επιτροπή εξετάσεων το 2012, όταν ζητήθηκε ο τύπος της μεταβλητής Χ και το περιεχόμενο της μεταβλητής Χ κατά τις παρακάτω εντολές εκχώρησης:

Χ <- 'ΑΛΗΘΗΣ'
Χ <- ΨΕΥΔΗΣ

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