Αποστολέας Θέμα: ΜΕ_ΒΗΜΑ 0  (Αναγνώστηκε 900 φορές)

ApoAntonis

  • Θαμώνας
  • ***
  • Μηνύματα: 31
ΜΕ_ΒΗΜΑ 0
« στις: 13 Οκτ 2019, 03:50:27 μμ »
Ήλπιζα οι φετινές οδηγίες να το "ξεπετάξουν" αυτό το ζήτημα. Ίσως να είμαι εγώ χαζούλης και να μην καταλαβαίνω την
χρησιμότητα.

Ας είναι, με ΜΕ_ΒΗΜΑ 0
δεν είναι συντακτικό λάθος, αλλά ταυτόχροντα παραβιάζεται το κριτήριο της περατότητας.

Αν δοθεί τμήμα προγράμματος ή αλγόριθμος (τι ωραίο να δίνονται και τα δύο...πολύ χρήσιμο και αυτό)
και ζητά να διορθωθεί αλλά και να χαρακτηριστεί
που κατατάσσεται;

Η πρώτη εντύπωση είναι στα λογικά, όμως λογικά είναι αυτά που δίνουν μη αναμενόμενο αποτέλεσμα. Το πρόγραμμα εφόσον δεν ολοκληρώνει
την εκτέλεση του δεν παράγει -έστω και μη αναμενόμενα- αποτελέσματα.

Γνώμες; Να πούμε τζιζ κακό και αν μπεί γράψτε το Πάτερ Ημών;

George Eco

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 118
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #1 στις: 13 Οκτ 2019, 04:22:34 μμ »
Δες εδώ τι έγινε με αυτό το θέμα λίγο καιρό πριν. Τα συμπεράσματα δικά σου.

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #2 στις: 13 Οκτ 2019, 09:08:56 μμ »
το πρόγραμμα είναι μορφή αλγορίθμου όπως και η ψευδογλώσσα, όχι διαφορετικό είδος

η παραβίαση της περατότητας με οποιαδήποτε δομή επανάληψης δεν είναι λάθος χρόνου εκτέλεσης;

ApoAntonis

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #3 στις: 13 Οκτ 2019, 09:35:25 μμ »
δεν είναι λάθος χρόνου εκτέλεσης;

Πόθεν προκύπτει ότι είναι λάθος χρόνου εκτέλεσης;
Ή αλλιώς υπό ποιόν ορισμό -του βιβλίου- ένας ατέρμονας βρόχος προκαλεί λάθος χρόνου εκτέλεσης;

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

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


...
Για τον αλγόριθμο σε ποιά μορφή δίνεται, δεν είπα ότι είναι άλλο. Είπα ότι είναι ανούσιο αυτό που γίνεται. Ένα και ένα κάνει δύο.
"δίνεται το παρακάτω τμήμα προγράμματος"
"δίνεται το παρακάτω τμήμα αλγορίθμου"

Μην τα βάζετε μαζί μου...δεν είμαι από τους θεματοδότες.

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #4 στις: 13 Οκτ 2019, 10:28:33 μμ »
Επειδή εγώ βασανίζω ανελέητα την ορθή διατύπωση, η διάζευξη "αλγόριθμος ή πρόγραμμα" είναι λανθασμένη.
η διατύπωση αλγορίθμου σε κωδικοποίηση σε ψευδογλώσσα ή σε πρόγραμμα σε ΓΛΩΣΣΑ ή python είτε σε διάγραμμα ροής είναι εναλλακτικές μορφές αλγορίθμου. Συνεπώς, θα πρέπει να διατυπώνεται ορθά.
Προφανώς και η διατύπωση "δίνεται το παρακάτω τμήμα αλγορίθμου", δεν αναφέρεται στην ψευδογλώσσα, αλλά σε οποιαδήποτε μορφή διατύπωσης αλγορίθμου.

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

Το κεφάλαιο 13 ήταν στην ύλη του μαθήματος από το 1999 μέχρι το 2002 και δεν πρόλαβα να το διδάξω. Αλλά επί 17 έτη δεν είχαμε στη φαρέτρα μας αυτήν την κατηγοριοποίηση λαθών παρά μόνο τα κριτήρια των αλγορίθμων (που δεν περιγράφουν όλες τις καταστάσεις).
Όμως τώρα υπάρχουν τα λάθη χρόνου εκτέλεσης που δεν είναι τα συντακτικά ούτε τα λογικά λάθη.
Τα συντακτικά λάθη δεν οδηγούν στον αντικανονικό τερματισμό του προγράμματος, το πρόγραμμα δεν τρέχει.
Τα λογικά λάθη δεν οδηγούν στον αντικανονικό τερματισμό του προγράμματος, το πρόγραμμα τρέχει κανονικά.

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

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

ApoAntonis

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #5 στις: 14 Οκτ 2019, 12:29:11 πμ »
Δεν καταλαβαίνω γιατί να δεχθώ εγώ το μένος όταν παραθέτω εκφώνηση ΠΑΝΕΛΛΑΔΙΚΩΝ.
(έγραψα κάτι σχετικό με ψευδογλώσσα και δεν το βλέπω; )
Θα με διορθώσετε που παραθέτω εκφωνήσεις;
Μάλλον δεν καταλάβατε ότι για το ίδιο πράγμα, την μία φορά οι θεματοδότες το δίνουν ως
"δίνεται το παρακάτω τμήμα προγράμματος" και την άλλη "δίνεται το παρακάτω τμήμα αλγορίθμου".
Δείτε το ΘΕΜΑ Α των επαναληπτικών του 2019, τι άλλο να πω.

Είτε θα τα πούμε συντακτικά/λογικά/και λάθη που οδηγούν σε αντικανονικό τερματισμό
είτε θα τα πούμε  λάθη κατά την υλοποίηση/λάθη κατά την εκτέλεση/λογικά.
(Α, ναι. Το ή δεν είναι αποκλειστική διάζευξη. Α, για δες, μπορώ και εγώ να απαντάω άκομψα! )

Στο κομμάτι της απάντησης της αρχικής ερώτησης δυσκολεύομαι να ακολουθήσω.

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

Μπορείτε να μου πείτε που αναφέρεται αυτό που γράψατε;
Επίσης δεν αναφέρθηκα γενικά σε ατέρμονες βρόχους, αλλά μόνο σε μια υποπερίπτωση. Την υποπερίπτωση που μέχρι πέρσι στις οδηγίες ερχόταν με μεγάλα παχιά γράμματα ότι θα κάνει άπειρες επαναλήψεις.
Αν το βρούμε αυτό, θα χρειαστώ και εξήγηση πως γίνεται ο βρόχος να εκτελεί άπειρες επαναλήψεις ενώ το πρόγραμμα τερματίζει. Όταν "σκοτώσω" το πρόγραμμα, δεν νοείται ότι τερμάτισε. Δεν έχει ληφθεί απόφαση όταν το "σκοτώσω".
Δεν λέω ότι είναι ζήτημα μαθητικό/εξεταστικό τώρα αυτό, αλλά έχει γίνει λάστιχο η θεωρία αλγορίθμων.

Πάμε στην σελ. 130.
Δεν αναφέρονται κατηγορίες λαθών, είναι σημεία προσοχής. Θα ξεφύγουμε τελείως δεν ξέρουμε ποιά είναι η θεωρία και ποιές οι ασκήσεις εδωπέρα.
Χρήσιμη πληροφορία ο λαπτήρας.
Αλλά να το τραβήξω και λίγο ακόμα γιατί το σηκώνει. Τι πάει να πεί αρχικοποίηση της συνθήκης; Αρχικοποιούμε την συνθήκη ή τις τιμές των μεταβλητών που περιέχει; Γιατί το βιβλίο 1, αλλιώς το γράφει.

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #6 στις: 14 Οκτ 2019, 08:27:49 πμ »
Αναφερόμαστε σε άλλο μάθημα/διδακτικό εγχειρίδιο προφανέστατα. Το προηγούμενο μήνυμά μου απαντάει, κατά τη γνώμη μου, σε όλο τον προβληματισμό της συζήτησης.

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

ApoAntonis

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #7 στις: 14 Οκτ 2019, 09:51:59 πμ »
Δεν έχω πρόβλημα και ας μπερδευτήκαμε.

Πολύ ωραία,

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

υπάρχει κάπου γραμμένο αυτό; Προσπαθώ να λύσω ένα υπαρκτό πρόβλημα.
Ευτυχώς έχω και μαθητές που θα μου πουν που το βρήκες;

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #8 στις: 14 Οκτ 2019, 10:21:40 πμ »
Όχι, ακριβώς αυτό είπα χτες, ότι τα κριτήρια των αλγορίθμων δεν επαρκούν για να περιγράψουν όλα τα λάθη στους αλγορίθμους. Ούτε εγώ συνέδεσα τα κριτήρια με τις κατηγορίες λαθών.
Ωστόσο, τα λάθη χρόνου εκτέλεσης είναι τα λάθη που προκύπτουν κατά την εκτέλεση (και οδηγούν σε μη κανονικό τερματισμό του προγράμματος).
Συνεπώς, η διαίρεση με το μηδέν, η μη ολοκλήρωση ενός βρόχου, η λάθος χρήση παραμέτρων (τύποι, πλήθος) σε κλήση υποπρογραμμάτων κ.α. είναι τέτοια λάθη. Επιπρόσθετα, δεν αποτελούν συντακτικά λάθη, αλλά ούτε λογικά λάθη.

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

Το νέο βιβλίο μαθητή παραθέτει την παραβίαση ορίων του πίνακα σε παράγραφο με τίτλο "Κατηγορίες Λογικών λαθών". Αλλά και το "τι πρέπει να αποφευχθεί κατά τη διατύπωση βρόχων" επίσης σε αυτήν την παράγραφο. Αυτό που ανέφερα παραπάνω είναι ότι αυτή η επιλογή θα μπερδέψει.

ApoAntonis

  • Θαμώνας
  • ***
  • Μηνύματα: 31
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #9 στις: 14 Οκτ 2019, 10:40:30 πμ »
ευχαριστώ
 


alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5166
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #10 στις: 14 Οκτ 2019, 12:17:02 μμ »
Συντακτικά λάθη: το πρόγραμμα δεν μεταφράζεται από τον interpreter/compiler και δεν ξεκινάει καν η εκτέλεση.
Λάθη χρόνου εκτέλεσης: η εκτέλεση του προγράμματος σταματάει με "βίαιο τερματισμό" χωρίς να έχει φτάσει το ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Λογικά λάθη: το πρόγραμμα εκτελείται αλλά δεν κάνει αυτά που θέλουμε.

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

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

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

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #11 στις: 14 Οκτ 2019, 01:15:14 μμ »
Για παράδειγμα, η διαίρεση με το μηδέν συνήθως σημαίνει ότι κάπου έπρεπε να κάνω μια ΑΝ για να μην γίνει, οπότε φταίει ο κώδικάς μου, άρα είναι λογικό λάθος.
υπό αυτό το πρίσμα, όλα τα λάθη είναι λογικά, διότι ο προγραμματιστής θα μπορούσε/έπρεπε με κώδικα να είχε προβλέψει και αποτρέψει το να συμβούν (εκτός από τη διακοπή του ρεύματος).

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5166
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #12 στις: 14 Οκτ 2019, 01:49:21 μμ »
Όχι όλα. Ο προγραμματιστής είναι υπεύθυνος για τα λάθη που μπορούν να διορθωθούν στον κώδικά του, ανάλογα πάντα με την εκφώνηση και με το πόσες σχετικές δυνατότητες του δίνει η γλώσσα, οι βιβλιοθήκες, το λειτουργικό κλπ.

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

Αν κάποιος εκτελέσει ΓΡΑΨΕ "Hello world" και του βγάλει out of memory ή display not found, ε, δεν μπορούμε να του καταλογίσουμε και λογικό λάθος στο Hello world του, ειδικά αν η γλώσσα δεν του δίνει πρόσβαση στα πιθανά προβλήματα που μπορούν να παρουσιαστούν.

Αν όμως κάποιος στη C κάνει malloc(10 GB) χωρίς να ελέγξει πρώτα ότι υπάρχει αρκετή RAM, τότε θα πρέπει να του το καταλογίσουμε.

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #13 στις: 14 Οκτ 2019, 05:22:50 μμ »
Σύμφωνα με τη σελίδα 117 του νέου βιβλίου "Ένα πρόγραμμα μπορεί να τερματίσει αντικανονικά λόγω διαφόρων λαθών. Για παράδειγμα, αν επιχειρήσουμε να διαιρέσουμε με το μηδέν ή αν κατά την ανάγνωση ενός ακεραίου αριθμού εισαχθεί ένα γράμμα."
και στη σελίδα 119 αναφέρει ότι "Ακόμη κι αν το πρόγραμμά μας δεν περιέχει συντακτικά λάθη και μπορεί να εκτελεστεί, πρέπει οπωσδήποτε να ελεγχθεί, ώστε να διαπιστώσουμε αν κατά την εκτέλεσή του εμφανίζονται λογικά λάθη. Τα λογικά λάθη έχουν ως συνέπεια το πρόγραμμα σε κάποιες περιπτώσεις να εξάγει λανθασμένα αποτελέσματα. Για να εντοπίσουμε τα λογικά λάθη μπορούμε να κάνουμε δοκιμαστικές εκτελέσεις του προγράμματός μας και να ελέγξουμε αν για συγκεκριμένες τιμές εισόδου, το πρόγραμμά μας εξάγει σωστά αποτελέσματα."

Τα λογικά λάθη αναφέρονται σε πρόγραμμα που εκτελείται και εξάγει αποτελέσματα, λανθασμένα βεβαίως.
Επειδή όλο το καλοκαίρι έψαξα διεξοδικά για τα είδη των λαθών δεν παρατήρησα ποτέ αναφορά σχετικά με τα infinite loops ειναι logical errors αλλά run time errors.
Δεν ξέρω αν το λάθος σε έναν κώδικα προσδιορίζεται από το περιβάλλον ή τις ικανότητες/διορατικότητα του προγραμματιστή, θα έλεγα ότι προσδιορίζεται από τον εαυτό του (το ίδιο το λάθος):
  • αν είναι επιπόλαιο και εντοπίζεται από τον μεταγλωττιστή (όχι τον jarvis του τόνυ σταρκ) πριν την εκτέλεση
  • αν δεν παρακωλύει την εκτέλεση του προγράμματος, απλά δεν το επιλύει σωστά με την έξοδό του
  • αν παρακωλύει την εκτέλεση του προγράμματος, κατά τον χρόνο εκτέλεσης οδηγώντας στον μη ομαλό τερματισμό του προγράμματος

αυτή τη διάκριση νομίζω περιγράφει και το παλιό και το νέο βιβλίο.

« Τελευταία τροποποίηση: 14 Οκτ 2019, 05:32:58 μμ από Παναγιώτης Τσιωτάκης »

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1328
  • There are always possibilities...
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #14 στις: 14 Οκτ 2019, 06:29:21 μμ »
Κατά τη γνώμη μου το βιβλίο κάνει εννοιολογικό λάθος όπως ορίζει τις διάφορες κατηγορίες λαθών, καθώς στις περιπτώσεις συντακτικών και λογικών λαθών τα συσχετίζει με την αιτία από την οποία προκύπτουν, ενώ τα λάθη χρόνου εκτέλεσης τα συσχετίζει με την χρονική στιγμή στην οποία συμβαίνουν. Μήλα με πορτοκάλια δηλαδή, όπως λέγαμε και στο δημοτικό.

Επι της ουσίας τώρα συμφωνώ - σχεδόν- με την άποψη του Άλκη:
Συντακτικά λάθη: το πρόγραμμα δεν μεταφράζεται από τον interpreter/compiler και δεν ξεκινάει καν η εκτέλεση.
Λάθη χρόνου εκτέλεσης: η εκτέλεση του προγράμματος σταματάει με "βίαιο τερματισμό" χωρίς να έχει φτάσει το ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Λογικά λάθη: το πρόγραμμα εκτελείται αλλά δεν κάνει αυτά που θέλουμε.

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

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

Αν τα ζωγραφίσουμε ως κουτιά, το πράσινο στην παρακάτω εικόνα είναι το σημείο όπου τα λογικά λάθη (κίτρινο) και τα λάθη χρόνου εκτέλεσης (μπλε) αλληλοεπικαλύπτονται.
με μια μικρή παραλλαγή που σχετίζεται με το παρακάτω σχόλιο:
υπό αυτό το πρίσμα, όλα τα λάθη είναι λογικά, διότι ο προγραμματιστής θα μπορούσε/έπρεπε με κώδικα να είχε προβλέψει και αποτρέψει το να συμβούν (εκτός από τη διακοπή του ρεύματος).
Ναι όλα είναι λογικά λάθη, άλλων προγραμματιστών όμως.
Δηλαδή όταν βγάλει out of memory ή display not found το λάθος συμβαίνει στον χρόνο εκτέλεσης, η αιτία του ομως οφείλεται στην αλληλεπίδραση του προγράμματος με το ΛΣ ή με κάποια βιβλιοθήκη και μάλλον φταίνε οι προγραμματιστές του λειτουργικού ή της βιβλιοθήκης.

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


A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing