Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Θεωρία => Μήνυμα ξεκίνησε από: thanasisgr στις 30 Οκτ 2019, 10:54:45 ΠΜ

Τίτλος: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 30 Οκτ 2019, 10:54:45 ΠΜ
Συνάδελφοι καλημέρα,
να ρωτήσω αν η αρχικοποίηση αλφαριθμητικού
ον<-'' , δηλαδή εκχωρώ στη μεταβλητή ον την κενή συμβολοσειρά , είναι σωστό ή όχι.

Αφορμή είναι το θέμα Γ των εξετάσεων 2018-2019.
Ως maxtitle δεν πρέπει να δοθεί μια αρχική τιμή;

Φιλικά
Θανάσης
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: George Eco στις 30 Οκτ 2019, 11:29:48 ΠΜ
Αν χρησιμοποιήσεις ΟΣΟ, θα βάλεις πριν αυτής μια ΔΙΑΒΑΣΕ για τον τίτλο, οπότε θα παίρνει τιμή, κι αν χρησιμοποιήσεις ΜΕΧΡΙΣ_ΟΤΟΥ μέσα της θα βάλεις τη ΔΙΑΒΑΣΕ κι έτσι δε θα είναι πουθενά empty string εκτός κι αν πατήσει enter ο χρήστης δίχως να δώσει τίτλο, αλλά δε σε νοιάζει βάσει εκφώνησης. Σε νοιάζει η τιμή φρουρός "ΤΕΛΟΣ" μόνο.
Βάζουμε ΟΣΟ γιατί μπορεί ο χρήστης να θέλει να μη βάλει κανένα βίντεο, οπότε εξ αρχής να γράψει ΤΕΛΟΣ.

Φέρει πειν για το τμήμα αυτό...

Κώδικας [Επιλογή]

ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΤΙΤΛΟ. Η ΛΕΞΗ ΤΕΛΟΣ ΘΑ ΤΕΛΕΙΩΣΕΙ ΤΗ ΔΙΑΔΙΚΑΣΙΑ'
ΔΙΑΒΑΣΕ τιτλος
ΟΣΟ τίτλος <> 'ΤΕΛΟΣ'
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΕΠΙΣΚΕΨΕΙΣ (ΑΚΕΡΑΙΟΣ ΘΕΤΙΚΟΣ)'
            ΔΙΑΒΑΣΕ επίσκέψεις
      ΜΕΧΡΙΣ_ΟΤΟΥ επισκέψεις >= 0

      ! Στο τέλος δίνω νέα τιμή στο τίτλο πρίν κάνω λούπα.
      ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΤΙΤΛΟ. Η ΛΕΞΗ ΤΕΛΟΣ ΘΑ ΤΕΛΕΙΩΣΕΙ ΤΗ ΔΙΑΔΙΚΑΣΙΑ'
      ΔΙΑΒΑΣΕ τιτλος
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ



Σε περίπτωση που θες να χρησιμοποιήσεις ΟΣΟ τίτλος <> 'ΤΕΛΟΣ' ΕΠΑΝΑΛΑΒΕ θα πρέπει να έχεις αναγκαστικά μια ΔΙΑΒΑΣΕ πριν.
Κι έτσι κανένα πρόβλημα φαντάζομαι.


Αυτό το θέμα λέμε έτσι;

ΘΕΜΑ Γ
"Το Υπουργείο Παιδείας παρέχει μέσω του διαδικτύου μια συλλογή από
εκπαιδευτικά βίντεο. "
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: Λαμπράκης Μανώλης στις 30 Οκτ 2019, 12:17:12 ΜΜ
Παράθεση από: thanasisgr στις 30 Οκτ 2019, 10:54:45 ΠΜ
Συνάδελφοι καλημέρα,
να ρωτήσω αν η αρχικοποίηση αλφαριθμητικού
ον<-'' , δηλαδή εκχωρώ στη μεταβλητή ον την κενή συμβολοσειρά , είναι σωστό ή όχι.

Αφορμή είναι το θέμα Γ των εξετάσεων 2018-2019.
Ως maxtitle δεν πρέπει να δοθεί μια αρχική τιμή;

Φιλικά
Θανάσης

Καλημέρα

Αν x>max τοτε
    max<--x
    max_title<--ον
Τέλος_αν

η βοηθητική μεταβλητή "max_title" λαμβάνει τιμή άμεσα από τη μεταβλητή ον, οπότε δεν είναι απαραίτητο να έχει κάποια αρχική τιμή .. ακόμη και να μην εκτελεστούν επαναλήψεις σε μία επανάληψη με "τιμή φρουρό", μπορούμε να το ελέγξουμε πχ αν max<>-1 τότε, οπότε πάλι δεν χρειάζεται να έχει τιμή

πάντως και να το αρχικοποιήσεις νομίζω πως είναι μια χαρά
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 30 Οκτ 2019, 04:32:00 ΜΜ
Ευχαριστώ για την απάντηση, αλλά υπάρχει το εξής θέμα.
Στο Γ3 ερώτημα "Να βρίσκει και να εμφανίζει τον τίτλο του βίντεο με τον μεγαλύτερο αριθμό επισκέψεων.", χρειάζεσαι 2 μεταβλητές : το μεγαλύτερο αριθμο των επισκέψεων μεγΕπ και τον αντίστοιχο τίτλο μεγΤιτλ.
Αν ΔΕΝ αρχικοποιήσεις τον τίτλο και πάς να τον εμφανίσεις έξω από την οσο π.χ ΓΡΑΨΕ μεγΤιτλ, και στην οριακή περίπτωση που δώσεις την 1η φορά ως τίτλο βίντεο το ΄ΤΕΛΟΣ', θα βγάλει runtime λάθος, εκτός και αν έχεις μια αν:
π΄χ ΑΝ  μεγΕπ <> -1 ΤΟΤΕ
            ΓΡΑΨΕ μεγΤιτλ
ΤΕΛΟΣ_ΑΝ
Συνεπώς αν αρχικοποιούσαμε την μεγΤιτλ έξω από το ΌΣΟ δεν θα χρειαζόταν η ΑΝ.
Θα μπορούσα βέβαια να την αρχικοποιήσω με ένα κενο ΧΑΡΑΚΤΗΡΑ πχ μεγΤιτλ<-- '  '.
Αυτό που ρωτάω είναι αν κάπου αναφέρεται ότι μπορούμε να αρχικοποιήσουμε αλφαριθμητικά με το την κενή συμβολοσειρά ως εξής: μεγΤιτλ<-- ''. Αυτό βέβαια επιτρέπεται σε όλες τις γλώσσες προγραμματισμού. Στο ΑΕΠΠ τι ισχύει;

Ευχαριστώ




Παράθεση από: George Eco στις 30 Οκτ 2019, 11:29:48 ΠΜ
Αν χρησιμοποιήσεις ΟΣΟ, θα βάλεις πριν αυτής μια ΔΙΑΒΑΣΕ για τον τίτλο, οπότε θα παίρνει τιμή, κι αν χρησιμοποιήσεις ΜΕΧΡΙΣ_ΟΤΟΥ μέσα της θα βάλεις τη ΔΙΑΒΑΣΕ κι έτσι δε θα είναι πουθενά empty string εκτός κι αν πατήσει enter ο χρήστης δίχως να δώσει τίτλο, αλλά δε σε νοιάζει βάσει εκφώνησης. Σε νοιάζει η τιμή φρουρός "ΤΕΛΟΣ" μόνο.
Βάζουμε ΟΣΟ γιατί μπορεί ο χρήστης να θέλει να μη βάλει κανένα βίντεο, οπότε εξ αρχής να γράψει ΤΕΛΟΣ.

Φέρει πειν για το τμήμα αυτό...

Κώδικας [Επιλογή]

ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΤΙΤΛΟ. Η ΛΕΞΗ ΤΕΛΟΣ ΘΑ ΤΕΛΕΙΩΣΕΙ ΤΗ ΔΙΑΔΙΚΑΣΙΑ'
ΔΙΑΒΑΣΕ τιτλος
ΟΣΟ τίτλος <> 'ΤΕΛΟΣ'
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΕΠΙΣΚΕΨΕΙΣ (ΑΚΕΡΑΙΟΣ ΘΕΤΙΚΟΣ)'
            ΔΙΑΒΑΣΕ επίσκέψεις
      ΜΕΧΡΙΣ_ΟΤΟΥ επισκέψεις >= 0

      ! Στο τέλος δίνω νέα τιμή στο τίτλο πρίν κάνω λούπα.
      ΓΡΑΨΕ 'ΠΑΡΑΚΑΛΩ ΔΩΣΤΕ ΤΙΤΛΟ. Η ΛΕΞΗ ΤΕΛΟΣ ΘΑ ΤΕΛΕΙΩΣΕΙ ΤΗ ΔΙΑΔΙΚΑΣΙΑ'
      ΔΙΑΒΑΣΕ τιτλος
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ



Σε περίπτωση που θες να χρησιμοποιήσεις ΟΣΟ τίτλος <> 'ΤΕΛΟΣ' ΕΠΑΝΑΛΑΒΕ θα πρέπει να έχεις αναγκαστικά μια ΔΙΑΒΑΣΕ πριν.
Κι έτσι κανένα πρόβλημα φαντάζομαι.


Αυτό το θέμα λέμε έτσι;

ΘΕΜΑ Γ
"Το Υπουργείο Παιδείας παρέχει μέσω του διαδικτύου μια συλλογή από
εκπαιδευτικά βίντεο. "
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 30 Οκτ 2019, 04:47:37 ΜΜ
Ναι αν βάλεις ΑΝ δεν χρειάζεται αρχικοποίηση.
Στη σελίδα 267 του βιβλιου που έχει τον πίνακα ASCII υπάρχει ο χαρακτήρας NUL με δεκαδική τιμή 0.
Οπότε ισχύει. Το θέμα είναι αν πρέπει να το πω ή θα μπερδέψω τους μαθητές , οπότε να μην το αρχικοποιήσω και να βάλω μια εντολή ΑΝ έξω από το ΟΣΟ.
Τι λέτε;

Παράθεση από: Λαμπράκης Μανώλης στις 30 Οκτ 2019, 12:17:12 ΜΜ
Καλημέρα

Αν x>max τοτε
    max<--x
    max_title<--ον
Τέλος_αν

η βοηθητική μεταβλητή "max_title" λαμβάνει τιμή άμεσα από τη μεταβλητή ον, οπότε δεν είναι απαραίτητο να έχει κάποια αρχική τιμή .. ακόμη και να μην εκτελεστούν επαναλήψεις σε μία επανάληψη με "τιμή φρουρό", μπορούμε να το ελέγξουμε πχ αν max<>-1 τότε, οπότε πάλι δεν χρειάζεται να έχει τιμή

πάντως και να το αρχικοποιήσεις νομίζω πως είναι μια χαρά
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: Λαμπράκης Μανώλης στις 30 Οκτ 2019, 06:25:52 ΜΜ
Νομίζω δεν εχεις θέμα όπως και να το κάνεις...
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: epsilonXi στις 31 Οκτ 2019, 11:54:40 ΜΜ
εγώ με την ευκαιρία θυμήθηκα ένα λίγο παλιότερο θέμα πανελλαδικών, εκείνο που αποθηκεύαμε αρχεία σε έναν δίσκο, και ζητούσε στο τέλος να του πούμε τα ονόματα των δύο μικρότερων σε μέγεθος αρχείων... άρα χρειαζόταν κάτι τέτοιο:

...
αν μέγεθος < μιν1 τότε
  μιν2 <-- μιν1
  ον2 <-- ον1
  μιν1 <-- μέγεθος
  ον1 <-- όνομα
...

άρα, εφ'όσον έχεις αρχικοποιήσει το μιν1 έξω απ'τη δομή επανάληψης, θέλει να έχεις αρχικοποιήσει και το ον1 απ' έξω
 
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: Λαμπράκης Μανώλης στις 01 Νοε 2019, 12:18:11 ΠΜ
Καλησπέρα

εδώ ζητάει 2 min, οπότε το ον1 δίνει τιμή στο ον2 αρχικά, οπότε εδώ σωστά χρειάζεται αρχικοποίηση ... στην προηγούμενη περίπτωση δεν είναι απαραίτητη νομίζω, αν και δεν είναι λα΄θος
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 01 Νοε 2019, 05:27:40 ΜΜ
Στη σελίδα 128 του βιβλίου αναφέρεται : Χαρακτήρας. Ο τύπος αυτός αναφέρεται τόσο σε ένα χαρακτήρα όσο και μία σειρά χαρακτήρων.  Τα δεδομένα αυτού του τύπου μπορούν να περιέχουν  οποιονδήποτε  χαρακτήρα παράγεται  από  το  πληκτρολόγιο. Παραδείγματα χαρακτήρων είναι 'Κ', 'Κώστας', 'σήμερα είναι Τετάρτη', 'Τα πολλαπλάσια του 15 είναι'

Συνεπώς νομίζω ότι είναι λάθος η εκχώρηση
Ον<-''. Διότι μέσα στα εισαγωγικά δεν υπάρχει κανένας χαρακτήρας.
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: alkisg στις 01 Νοε 2019, 06:05:26 ΜΜ
Νομίζω ότι δεν πρέπει να μεταφράζουμε το βιβλίο λες και είναι Αγία Γραφή. Αν ήταν έτσι τότε στη σελίδα που λέει τους έγκυρους χαρακτήρες της ΓΛΩΣΣΑΣ και λείπουν 3-4 από τη λίστα, τι συμπέρασμα θα έπρεπε να βγάλουμε;

Προφανώς και επιτρέπονται κενά αλφαριθμητικά, αλλιώς η ΔΙΑΒΑΣΕ δεν θα μπορούσε να διαβάσει σκέτο Enter.

Τώρα σχετικά με τη συγκεκριμένη παράγραφο, υποθέτω ότι ο ποιητής εννούσε το παρακάτω:
Στην Pascal υπάρχει τύπος char για ακριβώς ένα χαρακτήρα, και τύπος string για 0...Ν χαρακτήρες.
Στη ΓΛΩΣΣΑ δεν υπάρχουν 2 τύποι, αλλά μόνο ένας, κοινός και για "έναν χαρακτήρα" και για "0 ως Ν χαρακτήρες", που αντιστοιχεί στο "σειρά" που λέει.
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 01 Νοε 2019, 06:30:51 ΜΜ
Χρήσιμα αυτά που γράφεις Άλκη.
Θεωρώ ότι το βιβλίο είναι ανεπαρκές.
Έπρεπε να διευκρινήσει ένα τέτοιο θέμα, αρχικοποίηση δηλαδή μεταβλητών τύπου χαρακτήρα.
Οποιοδήποτε έγραψε κώδικα, αντιμετώπισε αυτό το θέμα.
Νομίζω όμως ότι και με το χαρακτήρα κενό να αρχικοποιηθει μια μεταβλητή, συνήθως δεν υπάρχει πρόβλημα.
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: Λαμπράκης Μανώλης στις 01 Νοε 2019, 06:49:17 ΜΜ
Καλησπέρα σε όλους

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

δεν γνωρίζω τότε ποιο ήταν το πλαίσιο του μαθήματος (από το 2010 και μετά διδάσκω), όμως φαίνεται να επιτρέπεται η περίπτωση αυτή  ... εδώ ελέγχει βέβαια και δεν κάνει εκχώρηση ..  :angel: >:D
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 01 Νοε 2019, 07:30:43 ΜΜ
Νομίζω ότι εννοεί το κενό αλφαριθμητικό ASCII Code=0 και όχι έναν χαρακτήρα το κενό (space)
με ASCII Code=32.
Φαίνεται να επιτρέπεται η εκχώρηση του κενού αλφαριθμητικού με μήκος 0 και ASCII code to 0.
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: alkisg στις 01 Νοε 2019, 09:35:14 ΜΜ
ASCII NUL = 0.
ASCII Space = 32
Κενό αλφαριθμητικό = αλφαριθμητικό μήκους μηδέν.

Αν τα γράψουμε σε αρχείο, τα δύο πρώτα θα δημιουργήσουν ένα αρχείο μεγέθους 1 byte, ενώ το κενό αλφαριθμητικό αρχείο μεγέθους 0 byte.
Τίτλος: Απ: Κενό αλφαριθμητικό
Αποστολή από: thanasisgr στις 02 Νοε 2019, 12:11:22 ΠΜ
Ναι ετσι είναι
Παράθεση από: alkisg στις 01 Νοε 2019, 09:35:14 ΜΜ
ASCII NUL = 0.
ASCII Space = 32
Κενό αλφαριθμητικό = αλφαριθμητικό μήκους μηδέν.

Αν τα γράψουμε σε αρχείο, τα δύο πρώτα θα δημιουργήσουν ένα αρχείο μεγέθους 1 byte, ενώ το κενό αλφαριθμητικό αρχείο μεγέθους 0 byte.