ΣΥΓΚΡΙΣΗ ΣΥΜΒΟΛΟΣΕΙΡΩΝ

Ξεκίνησε από George Eco, 09 Οκτ 2019, 12:47:13 ΜΜ

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

George Eco

Καλησπέρα. Έχω την εξής απορία συνάδελφοι κι αν κάποιος ξέρει, ας μου τη διαλευκάνει.
Η ΓΛΩΣΣΑ είναι θεωρητική γλώσσα, οπότε αν έχουμε επίσημη θέση από το Υπουργείο για αυτο που θα ρωτήσω, υπερισχύει όλων.
Χρησιμοποιώντας το Διερμηνευτή της ΓΛΩΣΣΑΣ, έκανα σύγκριση συμβολοσειρών.
Πιο συγκεκριμένα καταλήγω πως μικρότερα προς μεγαλύτερα είναι με σειρά από αριστερά προς τα δεξιά οι εξής χαρακτήρες σε ένα string (η θέση του γράμματος σε ένα string προφανώς έχει κι ανάλογη αξία σα να χρησιμοποιούσα αριθμητικό σύστημα, αλλά εδώ για ευκολία συγκρίνω ένα σύμβολο με ένα άλλο ξεκάθαρα για να μη μπερδευτούμε)
0-9, A-Z, a-z, Α-Ω, α-ω,

ΕΡΩΤΗΣΗ:
Παρατηρώ πως κάποιοι χαρακτήρες, αν όχι όλοι είναι μικρότερης αξίας της αξίας του '0' όταν τρέχω συγκρίσεις στο διερμηνευτή.
Ποια κωδικοποιήση ακολουθείται όμως και πόσο σίγουροι είμαστε πως συμβαδίζει με αυτή που έχει κατά νου το Υπουργείο;
Η κωδικοποίηση ASCII για παράδειγμα έχει
Ζ = 132
[ = 133
πράγμα που αυτόματα αποδεικνύει πως δεν είναι η κωδικοποίηση που ακολουθεί ο Διερμηνευτής.



Η ερώτηση στόχο έχει τη πλήρη αποσαφήνιση όλων των ακριβή αξιών κάθε χαρακτήρα του αλφαβήτου της ΓΛΩΣΣΑΣ, συμπεριλαμβανομένων των ειδικών χαρακτήρων και κάθε τι που μπορεί να μπει γενικά σε συμβολοσειρά.
Κι εκεί έρχεται το πρόβλημα.
Είναι ΟΛΟΙ οι ειδικοί χαρακτήρες του αλφαβήτου που μπαίνουν σε ένα string μικρότεροι της αξίας του '0';

Τι ακριβώς ισχύει και ποια είναι η προτεραιότητα,  στη θεωρητική ΓΛΩΣΣΑ που δίνεται Πανελλήνιες;


Διόρθωση και προσθήκη για διευκόλυνση μελλοντικών αναγωνστών:
Από πάνω προς τα κάτω, κι από αριστερά προς τα δεξιά, μικρότερο προς μεγαλύτερο βάσει unicode:
Κενός χαρακτήρας, ! " # $ % & ' ( ) * + , - . /   
0-9     
: ; < = > ? @
A-Z
[ \ ] ^ _ `
a-z
{ | } ~
Α-Ω
Ϊ , Ϋ, ά, έ, ή, ί, ΰ
α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,ς,τ,υ,φ,χ,ψ,ω
ϊ ,ϋ, ό, ύ, ώ
ϐ (σύμβολο όχι γράμμα) , ϑ(σύμβολο όχι γράμμα)  , ϛ (σύμβολο όχι γράμμα)

https://en.wikipedia.org/wiki/List_of_Unicode_characters


George Eco

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

George Eco

#2
Συγκριτικό μέγεγος συμβόλων ως σύμβολα σε μεταβλητές ΧΑΡΑΚΤΗΡΕΣ, σύμφωνα με το ΔΙΕΡΜΗΝΕΥΤΗ ΤΗΣ ΓΛΩΣΣΑΣ.
Από τα αριστερά το μικρότερο προς τα δεξιά το μεγαλύτερο!
Κενός χαρακτήρας, ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~  0-9, A-Z, a-z, Α-Ω, α-ω.

Αν γνωρίζετε κάτι άλλο διαφωτίστε με.

Διόρθωση και προσθήκη για διευκόλυνση μελλοντικών αναγωνστών:
Από πάνω προς τα κάτω, κι από αριστερά προς τα δεξιά, μικρότερο προς μεγαλύτερο βάσει unicode.

Κενός χαρακτήρας, ! " # $ % & ' ( ) * + , - . /   
0-9     
: ; < = > ? @
A-Z
[ \ ] ^ _ `
a-z
{ | } ~
Α-Ω
α-ω

Λαμπράκης Μανώλης

Καλησπέρα σε όλους...

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

Εδω που τα λέμε εγώ πχ δε νομίζω να θυμάμαι ολόκληρη την ιεραρχι που εγραψες.. Χεχεχε..  :angel: >:D

George Eco

Μα ναι, ποιος να το θυμάται αυτό το πράγμα;
Αλλά μπορεί να κάνουν καμιά πονηριά τύπου:
'αΒγ' > 'Αbγ'
'000' > '00*' φέρει πειν, οπότε όλα τα σύμβολα είναι καλό που ξέρουμε πως είναι μικρότερα από αριθμούς ως αποτίμηση σε string.

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

alkisg

Δοκιμή από  Linux, δεν έχω πρόχειρα Windows:

ΠΡΟΓΡΑΜΜΑ Σύγκριση
ΑΡΧΗ
  ΓΡΑΨΕ '[' > 'G'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Αποτέλεσμα: ΑΛΗΘΗΣ

Εσένα σου βγάζει ΨΕΥΔΗΣ; Τι έκδοση Windows και τι γλώσσα;

George Eco

Χμμμ... μάλλον είχα ένα typo. Μάλλον Ζ Ελληνικό έδινε το (ΨΕΥΔΗΣ) αντί Αγγλικού που βγάζει ΑΛΗΘΗΣ κι εμένα τώρα που το δοκίμασα.

Ωστόσο... μου τα έχει κάνει ΕΤΣΙ sort μεταξύ τους.
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~


Τα γράμματα εμπλέκονται μεταξύ των συμβόλων;
Τι κωδικοποίηση ακολουθεί ο Διερμηνευτής;
Εκτελώ τη 0.93 σε W10.

alkisg

Unicode, υπερσύνολο του ASCII, αφού το ASCII δεν περιλαμβάνει καν Ελληνικά.

George Eco

Τον ASCII σα παράδειγμα τον έθεσα.
Θυμάσαι ποια unicode; UTF-8 ας πούμε;

Nevermind, κατάλαβα.
Αυτό ακολουθεί έτσι;
https://en.wikipedia.org/wiki/List_of_Unicode_characters

Με είχε μπερδέψει γιατί διάβασα λάθος το < στον Unicode όταν τον έψαχνα. Έπρεπε να ψάξω χαμηλή τιμή και να μην επαναπαυτώ στη μεγάλη και στο εξωτικό "Modifier Letter Left Arrowhead "

U+003C    <    60    Less-than sign    0029
U+02C2    ˂    706    Modifier Letter Left Arrowhead

Κατάλαβα! Σ' ευχαριστώ πολύ Άλκη!
Το Υπουργείο φαντάζομαι το έχει ασαφές αυτό έτσι; Θέλω να πω, δε κάνει νύξη για περίπλοκες συγκρίσεις, γιατί αλλιώς καήκαμε.

alkisg

Τα UTF-8, UTF-16, UCS-2 κλπ κλπ είναι αναπαραστάσεις του προτύπου Unicode σε δυαδική μορφή, που δεν έχουν όμως καμία επίπτωση στις ταξινομήσεις.

Ο Διερμηνευτής χρησιμοποιεί διάφορες τέτοιες αναπαραστάσεις. Στα Windows από NT μέχρι 10ρια η εσωτερική αναπαράσταση των strings είναι UTF-16 little endian· αυτό το καθορίζουν τα ίδια τα Windows.
Κατά την αποθήκευση σε αρχεία, χρησιμοποιείται UTF-8, που είναι το de facto standard των αρχείων στο Internet και στο Linux (και σιγά σιγά καταφτάνει και στα Windows).

Η σύγκριση αλφαριθμητικών Unicode επίσης υλοποιείται από τα Windows, και ναι είναι αυτή που σύνδεσες.

George Eco

Κατάλαβα! Σ' ευχαριστώ πολύ Άλκη!
Το Υπουργείο φαντάζομαι το έχει ασαφές αυτό έτσι;
Θέλω να πω, δε κάνει νύξη για περίπλοκες συγκρίσεις. Αυτό με καίει βασικά.
Το ΘΕΩΡΗΤΙΚΟ υπόβαθρο σε ΓΛΩΣΣΑ.
Θέλω να ξέρω σε τι πλαίσιο μπορούν να βάλουν συγκρίσεις συμβολοσειρών.
Φέρει πειν

'καλημέραα' > 'καλησπέρα'
'ΧΩ' > 'ΧΧ'
'Σεββαχ' > 'ΑαχΒαχ'
'Γεία0123' > 'Αντίο123'

ή μπορεί να βάλουν κάνα κουλό τύπου

'α>β' > 'α<β' και τρέχουμε;

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



George Eco

Καλησπέρα και πάλι.
Τελικά έχει κανείς ιδέα μέχρι που μπορούν να φτάσουν στη σύγκριση συμβολοσειρών από το Υπουργείο;
Τι πρέπει να ξέρουν τα παιδιά;

petrosp13

Νομίζω ότι κάτι πέρα από σύγκριση ίδιου τύπου γραμμάτων (κεφαλαία-κεφαλαία ή μικρά-μικρά) δεν μπορεί να ζητηθεί
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

George Eco

Ευχαριστώ Πέτρο. Κι εγώ την ίδια εντύπωση έχω.  :)

George Eco

#14
Σε άλλο thread μίλησα για τη σύγκριση των strings στη ΓΛΩΣΣΑ κι αναρωτήθηκα πως ακριβώς γίνεται, γιατί κάτι δε μου κάθεται καθόλου καλά.


ΠΡΟΓΡΑΜΜΑ ΑΑ
ΑΡΧΗ
  ΓΡΑΨΕ 'ΒΑΑ' = 'ΒΑΑ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΒΑΑ' > 'ΑΒΑ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΑΒΑ' = 'ΒΑΑ' ! ΨΕΥΔΗΣ
  ΓΡΑΨΕ 'ΑΝΝΑ' = 'ΝΑΝΑ' ! ΨΕΥΔΗΣ

  ΓΡΑΨΕ 'ΑΑΑΑ' > 'ΩΩ' ! ΨΕΥΔΗΣ ( γιατί;;;; )
  ΓΡΑΨΕ 'ΑΑΑΑ' > '  ΩΩ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΨΨΨ' > 'ΩΩ' ! ΨΕΥΔΗΣ ( γιατί;;;; )


  ΓΡΑΨΕ 'ΚΑΛΗΜΕΡΑ' < 'ΚΑΛΟΙ' ! ΑΛΗΘΗΣ ( γιατί;;;; )

  ΓΡΑΨΕ 'Ω' > 'ΨΨΨ' ! ΑΛΗΘΗΣ ( γιατί;;;; )

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Η θέση κάθε γράμματος έχει σημασία. Έχει βαρύτητα. Με άλλα λόγια ΑΒΑ <> ΒΑΑ και μάλιστα ΒΑΑ > ΑΒΑ όπως κανείς λογικά θα περίμενε.

Έχω τεράστιο πρόβλημα, όταν πρόκειται να εκτιμήσω ένα string με λιγότερα σύμβολα.

Θα περίμενα 'ΑΑΑΑ' > 'ΩΩ' να ισχύει, μιας κι έχει περισσότερα σύμβολα το 'ΑΑΑΑ' κι άρα το πιο αριστερό Α είναι υψηλότερης σημαντικότητας. Ωστόσο επιστρέφεται ΨΕΥΔΗΣ. Γιατί;;;;

Εικάζω πως το 'ΑΑΑΑ' συγκρίνεται λάθος με ένα αντίστοιχο 'ΩΩ__' (όπου κάτω παύλα, το κενό) όμως θα έπρεπε να συγκρίνεται με '__ΩΩ'.


Να τονισθεί εδώ πως αυτό μπορεί να είναι πολύ δυσάρεστο και μπερδευτικό, όταν έχεις να συγκρίνεις 'ΚΑΛΗΜΕΡΑ' με 'ΚΑΛΟΙ'

Είτε το καταλαβαίνω ΤΕΛΕΙΩΣ λάθος εγώ, είτε έχει λάθος υλοποίηση ο Διερμηνευτής 1.5.1.3.

@Άλκη κι οι λοιποί παρακαλαώ πολύ πείτε μου τι συμβαίνει γιατί νιώθω να είμαι στα χαμένα.

Στα strings με ίσο πλήθος χαρακτήρων, φαίνεται να το κάνει σα να συγκρίναμε τιμές, μόνο που δεν έχουμε 0 - 9 αλλά Α - Ω.
Όταν δεν έχουμε ίσο πλήθος χαρακτήρων, το πράγμα χαλάει.

alkisg

Γιώργο αν κατάλαβα καλά έχεις την ακόλουθη παρανόηση σχετικά με τις συγκρίσεις των αλφαριθμητικών:

> Εφόσον 1111 > 99, ισχύει ότι και 'ΑΑΑΑ' > 'ΩΩ'.

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

> Εφόσον 0.1111 < 0.99, ισχύει ότι και 'ΑΑΑΑ' < 'ΩΩ'.

Δηλαδή οι συγκρίσεις αλφαριθμητικών δεν πρέπει να παρομοιάζονται με συγκρίσεις ακεραίων αριθμών. Μοιάζουν λίγο με τις συγκρίσεις του δεκαδικού μέρους των πραγματικών αριθμών. Με το που βλέπουμε ότι ένας δεκαδικός ξεκινάει από 0.1xxx, δεν μας ενδιαφέρει καν ποιο είναι το επόμενο δεκαδικό ψηφίο του, ξέρουμε ήδη ότι είναι μικρότερος από έναν άλλον που ξεκινάει από 0.9x. Η σύγκριση γίνεται ανά ψηφίο και σταματάει με το που θα εντοπιστεί η πρώτη διαφορά, χωρίς να μας ενδιαφέρει το συνολικό μήκος τους. Το π=3.14... έχει άπειρα δεκαδικά ψηφία αλλά είναι μικρότερο από το 3.2 που έχει ένα μόνο δεκαδικό ψηφίο. Αντίστοιχα με το που βλέπουμε ότι το 'ΑΑΑΑ' ξεκινάει από 'Α', ξέρουμε ότι είναι μικρότερο από το 'ΩΩ' επειδή ξεκινάει από 'Ω', χωρίς καν να ασχοληθούμε με το δεύτερο γράμμα τους, η σύγκριση σταματάει στο πρώτο γράμμα.

Ας θεωρήσουμε κι άλλη μια πρόταση:

> Το όνομα 'ΑΑΑΑ' στον τηλεφωνικό κατάλογο είναι στη σελίδα 24, ενώ το 'ΩΩ' είναι στη σελίδα 1.

Και αυτή η πρόταση είναι λάθος. Το 'ΑΑΑΑ' στον κατάλογο θα ήταν στη σελίδα 1, που είναι μικρότερη από τη σελίδα 24 στην οποία θα βρίσκαμε το 'ΩΩ', και έτσι 'ΑΑΑΑ' < 'ΩΩ'.

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

petrosp13

H λογική είναι πολύ απλή
Στο λεξικό το ΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑ μπαίνει πριν το Ω
Δεν έχει σημασία ο αριθμός των γραμμάτων
Η μόνη περίπτωση να έχει σημασία ο αριθμός των γραμμάτων είναι να μιλάμε για δυο παρόμοιες λέξεις που η μια έχει απλά μερικούς χαρακτήρες παραπάνω
Π.χ. ΑΥΤΟ < ΑΥΤΟΣ
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

George Eco

#17
Πολύ ωραία Άλκη. Άρα μας νοιάζει η ΠΡΩΤΗ διαφορά τι θα μας πει, πέραν του μεγέθους. Είναι ΣΑ να αντιμετωπίζω δεκαδικούς, το έπιασα.

Τι συμβαίνει under the hood;

alkisg

> Τι συμβαίνει under the hood;

Ακριβώς αυτό που είπες, γίνεται σύγκριση ανά χαρακτήρα και η σύγκριση σταματάει στην πρώτη διαφορά.
Παράδειγμα υλοποίησης: https://www.techiedelight.com/implement-strcmp-function-c/

gpapargi

Παράθεση από: George Eco στις 16 Φεβ 2022, 03:07:18 ΠΜ
Σε άλλο thread μίλησα για τη σύγκριση των strings στη ΓΛΩΣΣΑ κι αναρωτήθηκα πως ακριβώς γίνεται, γιατί κάτι δε μου κάθεται καθόλου καλά.


ΠΡΟΓΡΑΜΜΑ ΑΑ
ΑΡΧΗ
  ΓΡΑΨΕ 'ΒΑΑ' = 'ΒΑΑ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΒΑΑ' > 'ΑΒΑ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΑΒΑ' = 'ΒΑΑ' ! ΨΕΥΔΗΣ
  ΓΡΑΨΕ 'ΑΝΝΑ' = 'ΝΑΝΑ' ! ΨΕΥΔΗΣ

  ΓΡΑΨΕ 'ΑΑΑΑ' > 'ΩΩ' ! ΨΕΥΔΗΣ ( γιατί;;;; )
  ΓΡΑΨΕ 'ΑΑΑΑ' > '  ΩΩ' ! ΑΛΗΘΗΣ
  ΓΡΑΨΕ 'ΨΨΨ' > 'ΩΩ' ! ΨΕΥΔΗΣ ( γιατί;;;; )


  ΓΡΑΨΕ 'ΚΑΛΗΜΕΡΑ' < 'ΚΑΛΟΙ' ! ΑΛΗΘΗΣ ( γιατί;;;; )

  ΓΡΑΨΕ 'Ω' > 'ΨΨΨ' ! ΑΛΗΘΗΣ ( γιατί;;;; )

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Η θέση κάθε γράμματος έχει σημασία. Έχει βαρύτητα. Με άλλα λόγια ΑΒΑ <> ΒΑΑ και μάλιστα ΒΑΑ > ΑΒΑ όπως κανείς λογικά θα περίμενε.

Έχω τεράστιο πρόβλημα, όταν πρόκειται να εκτιμήσω ένα string με λιγότερα σύμβολα.

Θα περίμενα 'ΑΑΑΑ' > 'ΩΩ' να ισχύει, μιας κι έχει περισσότερα σύμβολα το 'ΑΑΑΑ' κι άρα το πιο αριστερό Α είναι υψηλότερης σημαντικότητας. Ωστόσο επιστρέφεται ΨΕΥΔΗΣ. Γιατί;;;;

Εικάζω πως το 'ΑΑΑΑ' συγκρίνεται λάθος με ένα αντίστοιχο 'ΩΩ__' (όπου κάτω παύλα, το κενό) όμως θα έπρεπε να συγκρίνεται με '__ΩΩ'.


Να τονισθεί εδώ πως αυτό μπορεί να είναι πολύ δυσάρεστο και μπερδευτικό, όταν έχεις να συγκρίνεις 'ΚΑΛΗΜΕΡΑ' με 'ΚΑΛΟΙ'


Χωρίς να διαφωνώ σε τίποτα με αυτά που ανέφεραν οι φίλοι παραπάνω, γράφω 2 λόγια που ίσως σου φανούν χρήσιμα.
ΑΝτιμετωπίζεις τα strings σαν αριθμούς. Πχ περιμένεις το ΒΑΑ<ΑΑΑΑΑ. Αυτό θα συνέβαινε αν ήταν αριθμοί πχ στο δεκαεξαδικό γιατί υπάρχει η έννοια της αξίας κάθε ψηφίου ανάλογα με τη θέση. ΑΥτό δεν υπάρχει στα αλφαριθμητικά. Η σύγκριση είναι με βάση της σειρά που θα τα έβλεπες στο λεξικό. ΑΝ θέλεις να τα δεις τα αλφαριθμητικά και τους αριθμούς με ενιαίο τρόπ σύγκρισης, μπορείς να σκεφτείς ότι μπορούμε να γράψουμε τους αριθμούς προσθέτοντας άπειρα μηδενικά μπροστά από το ακέραιο μέρος και πίσω από το δεκαδικό. Πχ τον αριθμό 12,34 μπορούμε να τον φανταστούμε σαν ...0000012,3400000... όπου οι τελείες συμβολίζουν άπειρα μηδεμνικά. ΑΝ το δεις έτσι, μπορείς να θεωρήσεις ότι γίνεται κατά κάποιο τρόπο λεξικογραφική σύγκριση. Πχ 12>9 γιατί 12>09 και αντιμετωπίζουμε τους ακέραιους σαν να έχουν ίδιο αριθμό ψηφίων προσθέτοντας μηδενικά μπροστά από τον μικρότερο.
Δεν είναι ο καλύτερος τρόπος αυτός που περιγράφω, καλύτερα να καταλάβεις πως ορίζεται η σύγκριση, αλλά ίσως σου φανούν τα παραπάνω χρήσιμα.

George Eco

@gpapargi γνωρίζω πως ουσιαστικά τα strings είναι σα να λέμε μια λίστα τιμών που αντιστοιχούν σε UNICODE χαρακτήρες ας πούμε.
Αυτό που δε καταλάβαινα, ήταν γιατί το 'Ω' είναι > του 'ΑΑΑΑ' ακριβώς επειδή η συμπεριφορά δε συνδράμει με σύγκριση ακεραίων δεκαδικού ή hex, που όμως συμπτωματικά ισχύει σε ίσο length strings.
Οπότε στην ουσία είναι 'ΑΑΑΑ' < 'Ω____' κι ΕΙΝΑΙ feature, δεν είναι bug! ( _ για ισοδύναμο null φαντάζομαι )

Εγώ το λάθος που έκανα ήταν πως νόμιζα πως τα strings συγκρίνονταν από τα δεξιά προς τα αριστερά.
Νόμιζα πως είναι 'AAAA' vs 'null null null Ω' ενώ λειτουργεί ακριβώς αντίθετα απ' όσα κατάλαβα.

Άρα αν έχω 'ΑΑΑΑ' vs 'ΑΩ' θα πάει

Α        Α             Α        Α

=       <

Α       Ω             τα υπόλοιπα δε μας νοιάζουν


Οπότε νομίζω το να το παραλληλίσω ως δεκαδικό στη Τάξη για να διορθώσω την ανακρίβεια, θα είναι καλή ιδέα!

Θέλω να πω, ο Άλκης πολύ όμορφα το έθεσε:

Α= 0.99532199999
Β= 0.999

Β > Α απλούστατα και τέλος κουβέντας, απλά έχουμε το κλασικό 24αδικό σετ από χαρακτήρες κι όχι δεκαδικά ψηφία.

Ένα μεγάλο ευχαριστώ σε όλους σας ανεξαιρέτως.

petrosp13 ναι, είναι εύκολο να μπερδευτεί κανείς. Κατάλαβα πως δουλεύει όμως.

ΔΗΜΗΤΡΗΣ Χ

#21
Γιώργο, πολύ απλά όπως σε μια εγκυκλοπαίδεια με την αλφαβητικη σειρα.
Πχ
α
αα
αβ...
...
β
με α<β κλπ
(χωρις να γινεται διαχωρισμος πεζων κεφαλαίων, αλλωστε το 2004 που ειχε ζητηθει ταξινομηση με αλφαβητικη σειρα είχε δοθει : "Θεωρείστε ότι .... τα ονόµατα των µαθητών είναι γραµµένα µε µικρά γράµµατα" ΓΙΑΤΙ ΠΟΛΥ ΑΠΛΑ ΔΕΝ ΜΠΟΡΟΥΜΕ ΝΑ ΑΣΧΟΛΗΘΟΥΜΕ ΜΕ ΚΑΤΙ ΔΙΑΦΟΡΕΤΙΚΟ ΒΑΣΕΙ ΤΟΥ ΒΙΒΛΙΟΥ, ΟΠΩΣ ΑΥΤΟ  ΤΑ ΕΞΗΓΕΙ ΣΤΗΝ ΠΡΩΤΗ ΣΕΛΙΔΑ ΤΟΥ  8ου ΚΕΦΑΛΑΙΟΥ. ΩΣΤΟΣΟ ΜΠΟΡΕΙ ΚΑΠΟΙΟΣ ΜΕ ΜΙΑ ΔΙΑΦΟΡΕΤΙΚΗ ΕΡΜΗΝΕΙΑ ΣΑΝ ΚΑΙ ΑΥΤΗ ΠΟΥ ΑΝΕΦΕΡΕΣ ΝΑ ΜΠΕΡΔΕΥΤΕΙ. ΔΕΝ ΥΠΑΡΧΕΙ ΛΟΓΟΣ ΟΜΩΣ ΝΑ ΤΟ ΨΑΞΟΥΜΕ ΠΕΡΑΙΤΕΡΩ ΑΦΟΥ ΕΤΣΙ ΑΝΑΦΕΡΕΙ.

ΓΙΑ ΝΑ ΤΟ ΠΑΩ ΛΙΓΟ ΠΙΟ ΠΕΡΑ ΑΠΟ ΤΟ 'ΚΑΛΟΣ'>'ΚΑΚΟΣ' ,ΑΝ ΘΕΣ ΠΧ ΝΑ ΕΛΕΓΞΕΙΣ ΑΝ ΕΝΑ ΟΝΟΜΑ ΞΕΚΙΝΑΕΙ ΑΠΟ ΄Β', ΘΑ ΓΡΑΨΕΙς :

ΑΝ ΟΝ>='Β' ΚΑΙ ΟΝ<'Γ',

ΔΗΛΑΔΗ ΑΦΟΥ ΞΕΚΙΝΑΕΙ ΑΠΟ Β ΕΙΝΑΙ >= ΑΠΟ ΤΟ ΓΡΑΜΜΑ 'Β' ΣΚΕΤΟ ΚΑΙ ΜΙΚΡΟΤΕΡΟ ΑΠΟ ΤΟ 'Γ' ΠΟΥ ΕΙΝΑ ΤΟ ΠΡΩΤΟ ΟΣΩΝ ΞΕΚΙΝΟΥΝ ΑΠΟ Γ, ΟΠΩΣ ΔΗΛΑΔΗ ΤΑ ΔΙΑΦΟΡΑ ΣΤΟΙΧΕΙΑ ΣΕ ΜΙΑ ΕΓΚΥΚΛΟΠΑΙΔΕΙΑ.

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

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