Διαγώνισμα στη νέα ύλη και στα "παραμελημένα" κομμάτια

Ξεκίνησε από Λαμπράκης Μανώλης, 08 Μαΐου 2021, 04:32:10 ΜΜ

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

tanius76

Καλησπέρα σας ! Εξαιρετική δουλειά! Ευχαριστούμε !

Έχω μια ένσταση στο Σ/Λ:

5.Αν κατά την ανάγνωση μίας αριθμητικής μεταβλητής, ο χρήστης εισαγάγει ένα χαρακτήρα, τότε το πρόγραμμα θα τερματιστεί αντικανονικά.
Πιστεύω ότι είναι ΛΑΘΟΣ και όχι ΣΩΣΤΟ
πως το δικαιολογείτε ;


ikariofil

ΒΙΒΛΙΟ ΜΑΘΗΤΗ - ΣΥΜΠΛΗΡΩΜΑΤΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ - σελ. 118 κάτω
Αν κατά την ανάγνωση του ύψους, ο χρήστης αντί να δώσει μια αριθμητική τιμή, εισαγάγει ένα γράμμα, τότε το πρόγραμμα θα τερματίσει αντικανονικά λόγω λάθους του χρήστη. Στις σύγχρονες γλώσσες προγραμματισμού υπάρχουν τρόποι διαχείρισης τέτοιων λαθών, οι οποίοι δε θα μας απασχολήσουν στο πλαίσιο του μαθήματος αυτού.

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

Ηλία σε ευχαριστώ για την παράθεση, το ίδιο θα έγραφα κια εγώ

tanius76

Παράθεση από: ikariofil στις 08 Ιουν 2021, 12:01:32 ΠΜ
ΒΙΒΛΙΟ ΜΑΘΗΤΗ - ΣΥΜΠΛΗΡΩΜΑΤΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ - σελ. 118 κάτω
Αν κατά την ανάγνωση του ύψους, ο χρήστης αντί να δώσει μια αριθμητική τιμή, εισαγάγει ένα γράμμα, τότε το πρόγραμμα θα τερματίσει αντικανονικά λόγω λάθους του χρήστη. Στις σύγχρονες γλώσσες προγραμματισμού υπάρχουν τρόποι διαχείρισης τέτοιων λαθών, οι οποίοι δε θα μας απασχολήσουν στο πλαίσιο του μαθήματος αυτού.

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

alkisg

@tanius76, αν εννοείς το παρακάτω μήνυμα του Διερμηνευτή,

> Δεν είναι δυνατή η ανάθεση της τιμής «δύο μέτρα» στο «ύψος»: ακέραια μεταβλητή.

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

epsilonXi

σα να θυμάμαι ότι το είχα δει κάποια στιγμή στις ρυθμίσεις;;;

είτε να τερματίζει αντικανονικά, είτε να εμφανίζει ένα αυτόματο μήνυμα σφάλματος και να μην τερματίζει

η έκδοση που έτρεχα άμεσα σε ubuntu θυμάμαι ότι δεν τερμάτιζε
τώρα τρέχω μέσω wine και τερματίζει

alkisg

Απ' όσο ξέρω,

  • καμία έκδοση του Διερμηνευτή δεν είχε ποτέ τέτοια ρύθμιση,
  • όταν ένας αλγόριθμος έχει σφάλμα χρόνου εκτέλεσης, πάντα ο διερμηνευτής το εμφανίζει με κόκκινο και σταματάει την εκτέλεση του αλγορίθμου,
  • ενώ τα σφάλματα των αλγορίθμων δεν προκαλούν τον τερματισμό του ίδιου του Διερμηνευτή (εκτός ίσως από τραγικά προβλήματα όπως out of RAM ή CPU overheat).

tanius76