Ασάφεια #5: Συνένωση αλφαριθμητικών

Ξεκίνησε από alkisg, 18 Απρ 2007, 07:35:11 ΜΜ

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

Μπορούμε να συνενώσουμε δυο αλφαριθμητικά με τον τελεστή +;

Ναι
Όχι

alkisg

Πρόλογος και συγκεντρωτική λίστα στο θέμα για τις Ασάφειες της ΑΕΠΠ. Η συμμετοχή σας στην ψηφοφορία είναι σημαντική, πολύ περισσότερο αν η απάντηση σας φαίνεται προφανής. Πλειοψηφία με μικρή συμμετοχή δεν έχει νόημα.
Για να ψηφίσετε και να δείτε τα αποτελέσματα της ψηφοφορίας πρέπει να συνδεθείτε. Επιτρέπεται να μεταβάλετε την επιλογή σας εκ των υστέρων.


Μέχρι στιγμής ο Διερμηνευτής, η Γλωσσομάθεια αλλά και οι περισσότερες γλώσσες προγραμματισμού έχουν κάποιον τελεστή συνένωσης αλφαριθμητικών, όπου με την εντολή
  Χαρακτήρας = 'α' + 'β'
η μεταβλητή χαρακτήρας γίνεται 'αβ'.

Το βιβλίο δεν ορίζει κάτι τέτοιο. Το κοντινότερο που έχω εντοπίσει είναι στο βιβλίο καθηγητή,
Παράθεση από: Βιβλίο καθηγητή, κεφάλαιο 8, σελίδα 179
Έλεγχος δεδομένων
Σε πρώτο στάδιο αυτό που πρέπει να μην αγνοηθεί, είναι ο έλεγχος των δεδομένων εισόδου.

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

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

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

Προτείνω να καταργηθεί η δυνατότητα συνένωσης αλφαριθμητικών με τον τελεστή +.

Μερικές σχετικές συζητήσεις:
https://alkisg.mysch.gr/steki/index.php?topic=374.0
https://alkisg.mysch.gr/steki/index.php?topic=453.0

gpapargi

Ψήφισα ΌΧΙ.

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

alkisg

Παράθεση από: gpapargi στις 23 Μαΐου 2007, 10:49:46 ΠΜ
...ένας μιλάει για ύπαρξη και κατάργηση...

Σόρρυ, δεν το είπα καλά. «Κατάργηση» δεν εννοούσα σε σχέση με κάτι που αναφέρεται στο βιβλίο, εννοούσα κατάργηση της σχετικής δυνατότητας του Διερμηνευτή, δηλαδή ενώ στην τρέχουσα έκδοση υποστηρίζει το 'α'+'β', προτείνω στην επόμενη να μην το υποστηρίζει.

nikitas350

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

nikitas350

....Διαβαστε όλο το κείμενο.....
Η διαδικασία διάσπασης είναι αυτή:

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΣΠΑΣΗ(ΛΕΞΗ, ΓΡΑΜ, ΜΗΚΟΣ)
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΓΡΑΜ[100], ΛΕΞΗ, ΑΛΦ[25], current
  ΑΚΕΡΑΙΕΣ: i, j, ΜΗΚΟΣ
  ΛΟΓΙΚΕΣ: done, d
ΑΡΧΗ
  ! Δημιουργήθηκε από τους: Ρόντση Νικήτα και Δεμερτζίογλου Ιωσήφ.
  ΑΛΦ[1] <- " "
  ΓΙΑ i ΑΠΟ 914 ΜΕΧΡΙ 937
    ΑΛΦ[i - 912] <- CHRW(i)
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  done <- ΨΕΥΔΗΣ
  current <- ""
  i <- 1
  ΟΣΟ done = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
    d <- ΨΕΥΔΗΣ
    j <- 2
    ΟΣΟ d = ΨΕΥΔΗΣ ΚΑΙ j <= 25 ΕΠΑΝΑΛΑΒΕ
      ΑΝ current + ΑΛΦ[j] > ΛΕΞΗ ΤΟΤΕ
        d <- ΑΛΗΘΗΣ
      ΑΛΛΙΩΣ
        j <- j + 1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    j <- j - 1
    current <- current + ΑΛΦ[j]
    ΓΡΑΜ <- ΑΛΦ[j]
    ΑΝ current = ΛΕΞΗ ΤΟΤΕ
      done <- ΑΛΗΘΗΣ
    ΑΛΛΙΩΣ
      i <- i + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΜΗΚΟΣ <- i
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΕΝΑ ΠΑΡΑΔΕΙΓΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΟΥ ΤΗΝ ΚΑΛΕΙ ΕΙΝΑΙ ΑΥΤΟ:

ΠΡΟΓΡΑΜΜΑ ΠΑΡΑΔΕΙΓΜΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: Α, Π[100]
  ΑΚΕΡΑΙΕΣ: Ι, Ν
ΑΡΧΗ
  ΔΙΑΒΑΣΕ Α
  ΚΑΛΕΣΕ ΔΙΑΣΠΑΣΗ(Α, Π, Ι)
  ΓΙΑ Ν ΑΠΟ 1 ΜΕΧΡΙ Ι
    ΓΡΑΨΕ Π[Ν]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ "ΜΗΚΟΣ:", Ι
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΚΑΙ Η ΣΥΝΑΡΤΗΣΗ CHRW ΓΙΑ ΝΑ ΜΠΟΥΝ ΟΙ ΧΑΡΑΚΤΗΡΕΣ ΤΟΥ ΑΛΦΑΒΗΤΟΥ ΣΕ ΕΝΑΝ ΠΙΝΑΚΑ, ΚΑΘΩΣ ΔΕΝ ΥΠΑΡΧΕΙ ΕΝΣΩΜΑΤΩΜΕΝΗ ΑΝΤΙΣΤΟΙΧΗ ΣΥΝΑΡΤΗΣΗ ΕΙΝΑΙ ΑΥΤΗ:

ΣΥΝΑΡΤΗΣΗ CHRW(n): ΧΑΡΑΚΤΗΡΑΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: n
  ΧΑΡΑΚΤΗΡΕΣ: Α
ΑΡΧΗ
  ΕΠΙΛΕΞΕ n
    ΠΕΡΙΠΤΩΣΗ 914
      Α <- "Α"
    ΠΕΡΙΠΤΩΣΗ 915
      Α <- "Β"
    ΠΕΡΙΠΤΩΣΗ 916
      Α <- "Γ"
    ΠΕΡΙΠΤΩΣΗ 917
      Α <- "Δ"
    ΠΕΡΙΠΤΩΣΗ 918
      Α <- "Ε"
    ΠΕΡΙΠΤΩΣΗ 919
      Α <- "Ζ"
    ΠΕΡΙΠΤΩΣΗ 920
      Α <- "Η"
    ΠΕΡΙΠΤΩΣΗ 921
      Α <- "Θ"
    ΠΕΡΙΠΤΩΣΗ 922
      Α <- "Ι"
    ΠΕΡΙΠΤΩΣΗ 923
      Α <- "Κ"
    ΠΕΡΙΠΤΩΣΗ 924
      Α <- "Λ"
    ΠΕΡΙΠΤΩΣΗ 925
      Α <- "Μ"
    ΠΕΡΙΠΤΩΣΗ 926
      Α <- "Ν"
    ΠΕΡΙΠΤΩΣΗ 927
      Α <- "Ξ"
    ΠΕΡΙΠΤΩΣΗ 928
      Α <- "Ο"
    ΠΕΡΙΠΤΩΣΗ 929
      Α <- "Π"
    ΠΕΡΙΠΤΩΣΗ 930
      Α <- "Ρ"
    ΠΕΡΙΠΤΩΣΗ 931
      Α <- "Σ"
    ΠΕΡΙΠΤΩΣΗ 932
      Α <- "Τ"
    ΠΕΡΙΠΤΩΣΗ 933
      Α <- "Υ"
    ΠΕΡΙΠΤΩΣΗ 934
      Α <- "Φ"
    ΠΕΡΙΠΤΩΣΗ 935
      Α <- "Χ"
    ΠΕΡΙΠΤΩΣΗ 936
      Α <- "Ψ"
    ΠΕΡΙΠΤΩΣΗ 937
      Α <- "Ω"
  ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  CHRW <- Α
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Δημιουργήθηκε από τους: Ρόντση Νικήτα και Δεμερτζίογλου Ιωσήφ.

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

P.Tsiotakis

Έστω και αν το συντακτικό ξεφεύγει απο αυτό της ΑΕΠΠ
η προσπάθειά σας είναι πολύ καλή, μπράβο

nikitas350