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

Γενικό Λύκειο => Γ΄ Λυκείου => Μήνυμα ξεκίνησε από: nokotsos στις 11 Φεβ 2024, 11:23:27 ΜΜ

Τίτλος: Λογικά vs Κατά την εκτέλεση
Αποστολή από: nokotsos στις 11 Φεβ 2024, 11:23:27 ΜΜ
Καλησπέρα, έχω κάποιες απορίες στην εκσφαλμάτωση για το πότε ένα σφάλμα θεωρείται λογικό και πότε αντικανονικό. Το σχολικό αναφέρει πως στα λογικά λάθη το πρόγραμμα τρέχει κανονικά αλλά βγάζει λάθος αποτελέσματα ενώ στα λάθη κατά την εκτέλεση έχουμε αντικανονικό τερματισμό. Σύμφωνα με τα παραπάνω αν δοθεί το παρακάτω τμήμα προγράμματος :
1)
Κώδικας [Επιλογή]
! Έστω Α[10] διαβασμένος πίνακας ακεραίων
Για ι από 1 μέχρι 11
   Γράψε Α[ι]
[size=2][font=Calibri, sans-serif]Τέλος_επανάληψης[/font][/size]
Το 11 είναι λογικό λάθος ή λάθος κατά την εκτέλεση (προκαλεί αντικανονικό τερματισμό). Και αν το
θεωρούμε λογικό τότε γιατί την διαίρεση με μια μεταβλητή που υπάρχει περίπτωση να πάρει την τιμή 0 την θεωρούμε κατά την εκτέλεση ενώ προκαλείται από κάποια ίσως λογική ασάφεια κατά την συγγραφή του κώδικα.

2) Αν είχαμε για παράδειγμα
Κώδικας [Επιλογή]
! Έστω Α[10] διαβασμένος πίνακας ακεραίων
Χ ← Α[0]
Αυτό θεωρείτε λογικό ή κατά την εκτέλεση? Και αν θεωρείται κατά την εκτέλεση σε τι διαφέρει από το πάνω που και εκεί αποκτάμε πρόσβαση σε κελί που δεν υπάρχει.

3) Αν εμφανίσουμε μία μεταβλητή που δεν έχει πάρει τιμή τι λάθος θεωρείται?

Καταλαβαίνω την ουσιώδη διαφορά τους όμως στα πλαίσια του μαθήματος αν δοθεί μία άσκηση να εντοπίσετε τα λάθη και τι είδος είναι δεν νιώθω πολύ σίγουρος πως να τα ξεκαθαρίσω για τα παιδιά.
Τίτλος: Απ: Λογικά vs Κατά την εκτέλεση
Αποστολή από: petrosp13 στις 11 Φεβ 2024, 11:37:23 ΜΜ
Το πρώτο είναι λάθος αντικανονικού τερματισμού, υπάρχει αντίστοιχο παράδειγμα στο βιβλίο
Τα άλλα δυο σιγουρα δεν είναι λογικά
Θα έλεγα ότι είναι θέμα υλοποίησης του μεταγλωττιστή
Θεωρώ ότι οι περισσότεροι μεταγλωττιστές τα εντοπίζουν ως συντακτικά
Τίτλος: Απ: Λογικά vs Κατά την εκτέλεση
Αποστολή από: nokotsos στις 11 Φεβ 2024, 11:52:05 ΜΜ
Όσον αναφορά το 1) Στο σχολικό (συμπλήρωμα) σελίδα 131 εκεί που βγαίνει εκτός ορίων το έχει στον πίνακα αντικανονικό τερματισμό(σωστό), όμως αναφέρεται γενικά στην εκσφαλμάτωση λογικών λαθών στους πίνακες η άσκηση και εκεί με μπερδεύει(ότι δηλαδή λόγο λογικού λάθους καταλήξαμε εκεί οπότε το λάθος είναι λογικό).
Τίτλος: Απ: Λογικά vs Κατά την εκτέλεση
Αποστολή από: petrosp13 στις 11 Φεβ 2024, 11:54:47 ΜΜ
Λογικό λάθος σημαίνει ότι το πρόγραμμα ολοκληρώνεται
Αν το πρόγραμμα δεν ολοκληρώνεται για οποιονδήποτε λόγο, δεν μιλάμε για λογικό λάθος