Συνένωση χαρακτήρων

Ξεκίνησε από ΦΑ, 17 Αυγ 2018, 12:54:12 ΠΜ

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

ΦΑ

Μια ερώτηση σχετικά με την πράξη 'a' + 'b' ...
•το διδάσκουμε ως συνένωση χαρακτήρων με αποτέλεσμα στην οθόνη ab ή
•θεωρείται πράξη αδύνατη γιατί το + κάνει πράξεις μόνο μεταξύ αριθμητικών δεδομένων?
οι απόψεις στα βοηθήματα διαφέρουν, στο σχολικό δεν βρίσκω σχετική αναφορά...
Αν τελικά δεν ισχύει η πράξη αυτή τότε έχουμε έλλειψη κριτηρίου
Καθοριστικότητας ή αποτελεσματικότητας;   ???

tasospap

σελ.131 του σχολικού βιβλίου  (7.7 | Αριθμητικές εκφράσεις)

bugman

#2
Η έκφραση "το + κάνει πράξεις μόνο μεταξύ αριθμητικών δεδομένων" είναι εντελώς λάθος. Ο κάθε διερμηνευτής ελέγχει αν ένας τελεστής εφαρμόζεται σε συγκεκριμένο τύπο έκφρασης. Οι εκφράσεις είναι τριών ειδών στην ΓΛΩΣΣΑ, οι αριθμητικές, οι αλφαριθμητικές και οι λογικές.
Άρα μας ενδιαφέρει το  ποιοι τελεστές "υποστηρίζονται" σε εκφράσεις. Σε λογική έκφραση ο τελεστής + στη Γλώσσα δεν δουλεύει. Σε αλφαριθμητικά στο διερμηνευτή του Άλκη πρέπει να οριστεί με επιλογή για να δουλέψει με αυτά. Ουσιαστικά οι τελεστές που "καταλαβαίνουν" τα αλφαριθμητικά είναι αυτοί της σύγκρισης και επιστρέφουν τιμή λογική, δηλαδή οι τελεστές αυτοί ανήκουν στις λογικές εκφράσεις. Δείτε εδώ ότι  μια λογική έκφραση έχει μη αριθμητικό δεδομένο, το αλφαριθμητικό. Συνοψίζοντας μεταξύ των αριθμητικών δεδομένων σε μια αριθμητική έκφραση το + έχει θέση, ενώ σε μια λογική έκφραση δεν έχει θέση.
Στη Γλώσσα μπορούμε να έχουμε αριθμητικές εκφράσεις μέσα σε λογικές εκφράσεις (με παρενθέσεις να ξεχωρίζουν). Μπορούμε να έχουμε συναρτήσεις που δέχονται λογικές εκφράσεις και επιστρέφουν αριθμούς, άρα μπορούμε να έχουμε λογικές εκφράσεις μέσα σε αριθμητικές εκφράσεις (μέσω συναρτήσεων, δοκιμάστε το). Δυστυχώς η μοναδική αλφαριθμητική έκφραση που επιστρέφει αλφαριθμητικό περιέχει ένα και μόνο αλφαριθμητικό.
Η ΓΡΑΨΕ γράφει λίστα τιμών και λογικά συνενώνει αλφαριθμητικά, επειδή κάθε μέρος της λίστας γράφεται αμέσως μετά το άλλο. Να γιατί βλέπουμε το , ' ', μεταξύ δυο τιμών!
Δεν μπορούμε την συνένωση που κάνει η ΓΡΑΨΕ να την πετύχουμε σε μια μεταβλητή Αλφαριθμητική. Ο μόνος τρόπος να ανταπεξέλθει κανείς προγραμματιστικά στο ζήτημα της συνένωσης στη Γλώσσα είναι να έχει πίνακες αλφαριθμητικών έστω των ν θέσεων, για κάθε ένα αλφαριθμητικό, ώστε σε κάθε θέση να βάζει το τμήμα που θέλει και στο τέλος με μια διαδικασία να παίρνει τον πίνακα και να τον εμφανίζει. Αν πρόκειται να κάνει το πολύ πέντε συνενώσεις θα έχει 6 τμήματα. Δεν χρειάζεται να γνωρίζει ποιο είναι το ελεύθερο, γιατί το βρίσκει με σύγκριση ως προς το κενό αλφαριθμητικό "".

Να συμπληρώσω εδώ ότι η μη προσθήκη του + για τα αλφαριθμητικά δείχνει ένα από τα δυο:
1. Το ξέχασαν. Η Γλώσσα ξεκίνησε ως παράδειγμα και έμεινε ως εργαλείο για το μάθημα της ΑΕΠΠ
2. Δεν το ξέχασαν, το έκαναν επίτηδες. Με το σκεπτικό ότι δεν υπάρχει ούτε η συνάρτηση Μήκος() που να επιστρέφει το μήκος του αλφαριθμητικού, ο μόνος λόγος ύπαρξης των αλφαριθμητικών είναι: Εμφάνιση πληροφορίας, χρήση ως σημαίας, χρήση σε ταξινόμηση. Η Γράψε παίζει στο πρώτο, και στα άλλα δύο παίζουν οι τελεστές σύγκρισης. Σημαία λέμε την κατάσταση ενός Σκοπού. Σκοπός είναι η μεταβλητή που ελέγχεται για κάποια κατάσταση, μπορεί να είναι αριθμός ή αλφαριθμητικό ή λογική μεταβλητή.

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

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