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

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: Anastasis13 στις 30 Ιουλ 2022, 08:07:00 ΠΜ

Τίτλος: Συντακτικό ή αντικανονικού τερματισμού ;
Αποστολή από: Anastasis13 στις 30 Ιουλ 2022, 08:07:00 ΠΜ
Έστω ότι εχω δηλώσει μια μεταβλητή α ακέραια και στην πορεία του προγράμματος διαβάζω μια τιμή από το πληκτρολόγιο τύπου χαρακτήρες. Στον διερμηνευτή σταματάει η εκτέλεση, ενώ στην γλωσσομάθεια ξανά ζητάει μέχρι να πάρει ακέραια τιμή. Αυτο μετράει σαν κάποιο λάθος και αν ναι τι τύπου 
λάθος ;
Τίτλος: Απ: Συντακτικό ή αντικανονικού τερματισμού ;
Αποστολή από: alkisg στις 30 Ιουλ 2022, 08:45:58 ΠΜ
Στον Διερμηνευτή υπάρχει σχετικός διάλογος (https://alkisg.mysch.gr/%CE%92%CE%BF%CE%AE%CE%B8%CE%B5%CE%B9%CE%B1/#epilogesGlwssa):

Παράθεση από: https://alkisg.mysch.gr/Βοήθεια/#epilogesGlwssaΈλεγχος δεδομένων κατά την είσοδο: Αν είναι επιλεγμένο τότε δεν επιτρέπεται να δώσουμε γράμματα όταν το πρόγραμμα διαβάζει αριθμούς (ή τελεία για ακέραιους). Αν δεν είναι επιλεγμένο τότε μπορούμε να εισάγουμε ό,τι θέλουμε, αλλά στην περίπτωση αυτή μπορεί να προκύψουν λάθη εκτέλεσης.

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

Άρα για να απαντήσω συγκεκριμένα την ερώτηση, η περίπτωση "λάθος δεδομένα εισόδου", ανάλογα με το runtime, μπορεί να έχει υλοποιηθεί ως "λάθος χρόνου εκτέλεσης".
Τίτλος: Απ: Συντακτικό ή αντικανονικού τερματισμού ;
Αποστολή από: akalest0s στις 17 Μαΐου 2023, 10:19:18 ΜΜ
(έστω ένα χρόνο μετά.. )

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