Γενικό Λύκειο > Δομή ακολουθίας

Το ειδικό σύμβολο & εντός... συμβολοσειράς!!!

(1/2) > >>

George Eco:
Παρατήρησα πως στα Επαναληπτικά θέματα ΟΕΦΕ Β φάσης 2020 (απαντήσεις ΟΕΦΕ), αλλά και στις απαντήσεις Πανελληνίων 2020 ο/η συνάδελφος κάνει το εξής:

ΓΡΑΨΕ ' Α Β Γ Δ Ε Ζ Η Θ
&   Ι Κ Λ Μ...'

Ναι καλά καταλάβατε.
ΔΕ τερματίζει τη συμβολοσειρά στη πρώτη γραμμή και τη συνεχίζει από κάτω...

Ερώτηση:
Το & είναι χαρακτήρας εντός ή εκτός της συμβολοσειράς;

ΔΕ δίνω άδικο σε όποιον ή όποια το έγραψε αυτό.
ΞΕΚΑΘΑΡΑ στο βιβλίο λέει πως το ειδικό σύμβολο & ως πρώτος χαρακτήρας σε μία γραμμή, συνεχίζει την από πάνω εντολή. Εδώ μπορεί να πει κάποιος "ΤΕΛΟΣ ΚΟΥΒΕΝΤΑΣ" και θα έχει δίκιο.

Από την άλλη μου κάθεται στο λαιμό.
Κι εμένα και του Διερμηνευτή του Άλκη.

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

ΓΡΑΨΕ ' Α Β Γ Δ Ε Ζ Η Θ',
& ' Ι Κ Λ Μ...'

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

Διότι:
Δοθείσας της παρακάτω εντολής...

ΓΡΑΨΕ ' Α Β Γ Δ Ε Ζ Η Θ
& Ι Κ Λ Μ'

Τι πρέπει να εμφανιστεί στην οθόνη;

α) ' Α Β Γ Δ Ε Ζ Η Θ &  Ι Κ Λ Μ' (δίχως τα εισαγωγικά)

β) ' Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ'  (δίχως τα εισαγωγικά)

γ) ΣΥΝΤΑΚΤΙΚΟ ΣΦΑΛΜΑ

Ακούω απόψεις.  :D

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


vageo:
1. Στην οθόνη δεν θα εμφανιστεί τίποτε από τα α), β) και ούτε το  γ) είναι σωστό.
2. Θα εμφανιστεί: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ
3. Αν θέλεις να εμφανιστεί το:   ' Α Β Γ Δ Ε Ζ Η Θ &  Ι Κ Λ Μ '  πρέπει η εντολή (ΣΤΟ ΓΡΑΠΤΟ) να είναι:
    ΓΡΑΨΕ '  ' Α Β Γ Δ Ε Ζ Η Θ
    & & Ι Κ Λ Μ '  '

4. Το σύμβολο & όταν είναι πρώτο-στην αρχή της 2ης σειράς ΔΕΝ ΑΠΟΤΕΛΕΙ ΧΑΡΑΚΤΗΡΑ, αλλά δηλωτική εντολή, που δηλώνει ότι συνεχίζεται η εκτελεστέα εντολή της προηγούμενης σειράς.

5. " ... και του Διερμηνευτή του Άλκη. ...". Στον Διερμηνευτή του Άλκη όταν η σειρά δεν χωράει (εμφανίζεται μια κόκκινη γραμμή δεξιά για να σου δείξει μέχρι το σημείο που τελειώνει το πλάτος της διαθέσιμης γραμμής) όλη την εντολή ο ειδικός χαρακτήρας & μπαίνει αυτόματα από μόνος του (ΔΕΝ χρειάζεται να τον πληκτρολογήσεις) στην επόμενη γραμμή ακριβώς για να δείξει αυτό που γράφω στο 4.
6. Αν τώρα ΚΑΙ εσύ βάλεις- πληκτρολογήσεις τον χαρακτήρα & τότε πρόκειται για την περίπτωση 3. (είναι σαν να υπάρχουν δύο & ) και γιαυτό στο εμφανίζει μετά το γράμμα Θ θεωρώντας ότι είναι ένας από του χαρακτήρες που ήθελες να εμφανίσεις, αφού βρίσκεται μέσα στα  '      ' (απλά εισαγωγικά).

George Eco:

--- Παράθεση από: vageo στις 16 Ιουλ 2020, 09:57:33 μμ ---1. Στην οθόνη δεν θα εμφανιστεί τίποτε από τα α), β) και ούτε το  γ) είναι σωστό.
2. Θα εμφανιστεί: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ
3. Αν θέλεις να εμφανιστεί το:   ' Α Β Γ Δ Ε Ζ Η Θ &  Ι Κ Λ Μ '  πρέπει η εντολή (ΣΤΟ ΓΡΑΠΤΟ) να είναι:
    ΓΡΑΨΕ '  ' Α Β Γ Δ Ε Ζ Η Θ
    & & Ι Κ Λ Μ '  '

--- Τέλος παράθεσης ---

3) Σοβαρά τώρα;  :D Εντάξει! Δε φταις συνάδελφε, δε το διευκρίνισα.
α) ΘΑ ΕΜΦΑΝΙΖΕΙ:  Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ
β) ΘΑ ΕΜΦΑΝΙΖΕΙ:  Α Β Γ Δ Ε Ζ Η Θ & Ι Κ Λ Μ αντίστοιχα.

Εστιάζω στο & εντός ενός string που δε τερματίζεται σε μία γραμμή. Τα εισαγωγικά τα έβαλα για να δείξω πως αυτό που θα εμφανιστεί είναι συμβολοσειρά και το & είναι ΜΕΣΑ σε μία από αυτές.

Κάτσε να το διευκρινίσω, μη μπερδευτεί και κάνας άλλος, δε φταις εσύ συνάδελφε, δική μου αμέλεια.

Πώς όμως δεν είναι συνακτικό σφάλμα τη στιγμή που δε τερματίζεται σωστά ένα string όμως; Διότι λες ότι δεν είναι σωστό το (γ).
Γιατί αλλιώς, αν τερματίζει σωστά το string, λαμβάνοντας το χαρακτήρα & ως ορθή συνέχεια της εντολής στην από κάτω γραμμή, τότε θα πρέπει να δεχτούμε το (β) ως σωστό κι άρα και τη λύση ως σωστή.

Κι αν εγώ θέλω να πω
ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ '
και το κάνω
ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ
& Ι Κ Λ Μ'

τότε μου λες πως είναι οκ το β.

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

Και προτείνω πως καλύτερο θα ήταν το εξής:

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ',
& ' Ι Κ Λ Μ'

το οποίο συνεχίζει ΤΗΝ ΕΝΤΟΛΗ, με ολόκληρα strings, συνενωμένα με κόμμα.

Θα μου πεις, λεπτομέρεια της λεπτομέρειας, αλλά έτσι πρέπει να κάνουμε όταν πρόκειται για μάθημα Πανελληνίων.

Θέλω τη γνώμη σου, μετά τη διευκρίνιση πως τα '' δεν ανήκουν στο string αλλά το ορίοθετούν στα (α) και (β) και ναι, μιλάμε πάντα επί χάρτου, διότι έτσι άλλωστε ορίστηκε η ΓΛΩΣΣΑ.

vageo:
1. Ερ.

--- Παράθεση από: George Eco στις 21 Ιουλ 2020, 12:29:09 πμ ---3) Σοβαρά τώρα;  :D Εντάξει! Δε φταις συνάδελφε, δε το διευκρίνισα.

--- Τέλος παράθεσης ---
1. Απ.

--- Παράθεση από: George Eco στις 21 Ιουλ 2020, 12:29:09 πμ ---Κάτσε να το διευκρινίσω, μη μπερδευτεί και κάνας άλλος, δε φταις εσύ συνάδελφε, δική μου αμέλεια.
Θα μου πεις, λεπτομέρεια της λεπτομέρειας, αλλά έτσι πρέπει να κάνουμε όταν πρόκειται για μάθημα Πανελληνίων.

--- Τέλος παράθεσης ---

2. Ερ.

--- Παράθεση από: George Eco στις 21 Ιουλ 2020, 12:29:09 πμ ---Εστιάζω στο & εντός ενός string που δε τερματίζεται σε μία γραμμή. Τα εισαγωγικά τα έβαλα για να δείξω πως αυτό που θα εμφανιστεί είναι συμβολοσειρά και το & είναι ΜΕΣΑ σε μία από αυτές.
Πώς όμως δεν είναι συνακτικό σφάλμα τη στιγμή που δε τερματίζεται σωστά ένα string όμως; Διότι λες ότι δεν είναι σωστό το (γ).
Γιατί αλλιώς, αν τερματίζει σωστά το string, λαμβάνοντας το χαρακτήρα & ως ορθή συνέχεια της εντολής στην από κάτω γραμμή, τότε θα πρέπει να δεχτούμε το (β) ως σωστό κι άρα και τη λύση ως σωστή.

--- Τέλος παράθεσης ---
2. Απ.
Στο τμήμα εντολών: ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ
                                 & Ι Κ Λ Μ'
ο χαρακτήρας & ΔΕΝ βρίσκεται-ανήκει εντός-στο string.

Αν θέλω να είναι ΕΝΤΟΣ του string τότε πρέπει να γραφεί ως εξής: ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ &
                                                                                                       & Ι Κ Λ Μ'
ή εναλλακτικά αν δεν τον χωράει αυτό που έγραψα στο προηγούμενο: ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ
                                                                                                               & & Ι Κ Λ Μ'
ΔΗΛΑΔΗ όταν ο εκτελεστής εκτελεί μία εντολή-γραμμή (επειδή σε κάθε γραμμή πρέπει να ολοκληρώνεται και μία εντολή σύμφωνα με τη θεωρία του βιβλίου), ΔΕΝ βιάζεται ώστε αμέσως να πει ΛΑΘΟΣ!!! (Συντακτικό λάθος όπως γράφτηκε για το (γ)), αλλά πηγαίνει και στην επόμενη γραμμή μήπως στην αρχή συναντήσει τον χαρακτήρα & και αν δεν τον βρει εκεί τότε φωνάζει "Λάθος".

3. Ερ.

--- Παράθεση από: George Eco στις 21 Ιουλ 2020, 12:29:09 πμ ---Και προτείνω πως καλύτερο θα ήταν το εξής:
ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ',
& ' Ι Κ Λ Μ'
το οποίο συνεχίζει ΤΗΝ ΕΝΤΟΛΗ, με ολόκληρα strings, συνενωμένα με κόμμα.

--- Τέλος παράθεσης ---
3. Απ.
Με το παραπάνω τμήμα πράγματι θα εμφανιστεί στην οθόνη: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ 

ΑΛΛΑ και με το ακόλουθο, σε μία γραμμή, τμήμα: ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ', ' Ι Κ Λ Μ'
επίσης το ίδιο θα εμφανιστεί στην οθόνη, δηλαδή: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ

Ποια είναι η ΔΙΑΦΟΡΑ; Στην πρώτη περίπτωση τα strings είναι ΔΥΟ, πράγμα που ΔΕΝ το θέλουμε, άρα ΔΕΝ είναι σωστές οι εντολές.
Εκτός και αν το θέλουμε, ανάλογα αν ΔΕΝ μας δεσμεύει η εκφώνηση, οπότε μπορούμε να γράψουμε ΚΑΙ με αυτόν τον τρόπο το τμήμα αυτό των εντολών και να είναι σωστό.

4. Εν κατακλείδι, συνεχίζω (μέχρι να αλλάξω άποψη) να υποστηρίζω ότι:

--- Παράθεση από: vageo στις 16 Ιουλ 2020, 09:57:33 μμ ---4. Το σύμβολο & όταν είναι πρώτο-στην αρχή της 2ης σειράς ΔΕΝ ΑΠΟΤΕΛΕΙ ΧΑΡΑΚΤΗΡΑ, αλλά δηλωτική ΕΝΤΟΛΗ, που δηλώνει ότι συνεχίζεται η εκτελεστέα εντολή της προηγούμενης σειράς.

--- Τέλος παράθεσης ---

Και φυσικά:

--- Παράθεση από: George Eco στις 21 Ιουλ 2020, 12:29:09 πμ ---και ναι, μιλάμε πάντα επί χάρτου, διότι έτσι άλλωστε ορίστηκε η ΓΛΩΣΣΑ.

--- Τέλος παράθεσης ---

George Eco:
Ωραία! Κατ' αρχάς σ' ευχαριστώ που συμμετέχεις σε αυτή τη διερεύνηση και ανταλλαγή απόψεων.

ΔΗΛΑΔΗ όταν ο εκτελεστής εκτελεί μία εντολή-γραμμή (επειδή σε κάθε γραμμή πρέπει να ολοκληρώνεται και μία εντολή σύμφωνα με τη θεωρία του βιβλίου), ΔΕΝ βιάζεται ώστε αμέσως να πει ΛΑΘΟΣ!!! (Συντακτικό λάθος όπως γράφτηκε για το (γ)), αλλά πηγαίνει και στην επόμενη γραμμή μήπως στην αρχή συναντήσει τον χαρακτήρα & και αν δεν τον βρει εκεί τότε φωνάζει "Λάθος".

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

Είναι άλλο πράγμα να σπας αυτούσια μέρη μιας εντολής σε δύο γραμμές, κι άλλο πράγμα να σπας μια συμβολοσειρά σε άλλη γραμμή.

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

Ποιος μου λέει ρητά ότι αυτό που λες:

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ &
& Ι Κ Λ Μ'

δε θα προξενήσει συντακτικό σφάλμα επί χάρτου; Είναι ΣΤΗ ΚΡΙΣΗ ΤΟΥ ΔΙΟΡΘΩΤΗ. Είναι θέμα τύχης. Δεν αφήνω τίποτα στη τύχη.

Τόσο δύσκολο είναι να πει κανεις:

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ &',
& 'Ι Κ Λ Μ'

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

ΓΡΑΨΕ α, 'ΓΕΙΑ!',β,
& γ, 'Αντίο'

Κι η παραπάνω εντολή μια χαρά είναι.

Αν όμως τη κάνεις:
ΓΡΑΨΕ α, 'ΓΕΙ
& Α!',β,
& γ, 'Αντίο'

αμφιβάλλω αν υπάρχει κάτι που να μπορεί να στηρίξει την ορθότητά της.

Είναι αυθαίρετη η τομή της συμβολοσειράς με αυτό το τρόπο, πολύ απλά διότι δεν εμφανίζεται ΠΟΥΘΕΝΑ κάτι τέτοιο στα βιβλία εξεταστέας ύλης και μη. Διόρθωσέ με αν κάνω λάθος συνάδελφε, το έχεις δει πουθενά;


Δε θέλω να παραλληλήσω όλες τις άλλες γλώσσες προγραμματισμού με τη ΓΛΩΣΣΑ, γιατί πολύ απλά ξέρουμε όλοι μας πόσο χάλια ορισμένη και διατυπωμένη είναι. Επι χάρτου βάσει βιβλίου πάω και πάντοτε προσέχω ακριβώς τι είναι γραμμένο.

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ',
& ' Ι Κ Λ Μ'
Με το παραπάνω τμήμα πράγματι θα εμφανιστεί στην οθόνη: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ

ΑΛΛΑ και με το ακόλουθο, σε μία γραμμή, τμήμα: ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ', ' Ι Κ Λ Μ'
επίσης το ίδιο θα εμφανιστεί στην οθόνη, δηλαδή: Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ

Ποια είναι η ΔΙΑΦΟΡΑ;

Καμία!!!! Στα λόγια μου έρχεσαι! Καμία! Αυτά τα δύο εκτελούν ακριβώς το ίδιο και τα έβαλα ως παράδειγμα!
Φαντάσου αυτό σε μία συμβολοσειρά που ΔΕ χωράει σε μία γραμμή. Με ασφάλεια το ΙΔΙΟ πράγμα σε δύο γραμμές. ΚΑΜΙΑ διαφορά!

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ',
& ' Ι Κ Λ Μ'

ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ', ' Ι Κ Λ Μ'

Καμία διαφορά.

Η διαφορά γίνεται με το:


ΓΡΑΨΕ 'Α Β Γ Δ Ε Ζ Η Θ
& Ι Κ Λ Μ'

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


Κοίτα, ελπίζω πως δε θα πέσει κάτι ΤΕΤΟΙΟ σε θέμα Πανελληνίων, αλλά με αφηρημένη την εκσφαλμάτωση, δε ξέρεις ποτέ τι σου ξημερώνει.
Και γι' αυτό άνοιξα και τη συζήτηση άλλωστε.


Στο λέω στην ίδια φιλοσοφία του παρακάτω:

ΠΡΟΓΡΑΜΜΑ ΑΒΓ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: α
ΑΡΧΗ
!  α <- 12   Αυτό εδώ είναι λάθος σελ 132 κάτω αριστερή υπόδειξη σε κόκκινο πλαίσιο.
   α <- 12 * 1.0
  ΓΡΑΨΕ α
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Θεωρώ λογικό να πω, πως οι συγγραφείς λέγοντας...

"Σε μια εντολή
εκχώρησης η μεταβλητή
και η έκφραση πρέπει να
είναι του ιδίου τύπου."

...εννοούσαν πως δε μπορείς να κάνεις τα παρακάτω...

ακέραια <- λογική
πραγματική <- λογική
χαρακτήρας <- λογική
πραγματική <- χαρακρήρας
χαρακτήρας <- πραγματική
ακέραια <- χαρακτήρας
χαρακτήρας <- ακέραια

...αλλά τους διέφυγε να ξεκαθαρίσουν το...

πραγμαιτκή <- ακέραια

...με αποτέλεσμα να αιωρείται στον αέρα αυτό και για να είσαι σίγουρος, να πρέπει να πολλαπλασιάζεις με το 1.0 κάθε φορά;! Έλεος.

Και όχι, δεν υπάρχει ΑΡΙΘΜΗΤΙΚΟΣ τύπος στη ΓΛΩΣΣΑ.

Κάνουμε όλοι ( ; )  τα στραβά μάτια σε αυτό τόσα χρόνια.
Αλλά ΑΥΤΟ, όπως και το θέμα που αναπτύσσω, καταλήγουν σε ένα από τα ΒΑΣΙΚΑ προβλήματα του μαθήματος. Κακός ορισμός της θεωρητικής αυτής γλώσσας προγραμματισμού επί χάρτου, που λέγεται ΓΛΩΣΣΑ.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση