Συντακτικό ή Λογικό Λάθος

Ξεκίνησε από nikolasmer, 15 Απρ 2018, 08:06:48 ΜΜ

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

nikolasmer

Το να κάνεις πράξεις σε στοιχεία ενός πίνακα που δεν υπάρχουν, δεν έχουν διαβαστεί είναι Λογικό λάθος ενώ το να ξεφύγεις από τα όρια ενός πίνακα κλπ είναι Συντακτικό λάθος;

Γενικότερα να οριοθετήσουμε λίγο το τι μπορεί να ζητηθεί σε θέμα "Βρείτε τα λογικά και συντακτικά λάθη του παρακάτω κώδικα..." γιατί το τοπίο είναι λίγο αχανές. Και φοβάμαι μήπως πέσουμε σε περίπτωση όπως του 2017 και ψάχνουμε για το αν θα έπρεπε να διαβάσουμε με αμυντικό προγραμματισμό τη τάδε μεταβλητή ή την δείνα και το αν αυτό είναι λογικό λάθος ή όχι. 
Ίσως "Βρείτε τα 5 λογικά και 5 συντακτικά λάθη στον παρακάτω κώδικα....." (Μονάδες 10) ίσως να είναι καλύτερη διατύπωση.

Από τη άλλη ....γιατί να μπει τέτοιο θέμα. Συντακτικά και λογικά και κολοκύθια με τη ρίγανη.

Μερεντίτης Νικόλαος
Πληροφορικός

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

Καλησπέρα

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

nikolasmer

Παράθεση από: Λαμπράκης Μανώλης στις 15 Απρ 2018, 10:11:43 ΜΜ
Καλησπέρα

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

alkisg

Κώδικας: glossa
ΠΡΟΓΡΑΜΜΑ Όρια
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α[10] 
ΑΡΧΗ
  ΔΙΑΒΑΣΕ α[11] 
  ΓΡΑΨΕ α[1] 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Γράφω το παραπάνω στο Διερμηνευτή. Πατάω Εκτέλεση και το πρόγραμμα εκτελείται, άρα δεν έχει συντακτικά λάθη. Συντακτικά λάθη λοιπόν είναι αυτά που εμποδίζουν εντελώς την μεταγλώττιση/εκτέλεση.
Στη συνέχεια η εκτέλεση σταματάει, αφού η γραμμή 5 εμφανίζει το παρακάτω λάθος χρόνου εκτέλεσης:
Ο 1ος δείκτης του πίνακα «α» έχει τιμή «11», δηλαδή είναι εκτός ορίων.
Ενώ η γραμμή 6 θα εμφάνιζε το παρακάτω λάθος χρόνου εκτέλεσης:
Έγινε προσπάθεια να διαβαστεί στοιχείο του πίνακα «α» χωρίς πρώτα να αρχικοποιηθεί.

Και τα δύο είναι ταυτόχρονα και λογικά λάθη.

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

bugman

Θα πρόσθετα στα λογικά λάθη και αυτά που δεν βγάζουν λάθος στην εκτέλεση, αλλά η εκτέλεση  δεν δίνει το επιθυμητό αποτέλεσμα, δηλαδή κάνει κάτι άλλο. Ενδεχομένως για ένα σύνολο δεδομένων να μην υπάρχει λάθος,  ενώ για άλλο να υπάρχει.
Μέθοδοι για τον έλεγχο αναφέρονται ως Black Box Testing, Gray Box Testing και  White Box Testing. Το τελευταίο προϋποθέτει γνώση του κώδικα, και κάνει για αλγόριθμους, απαιτεί όμως ικανό δοκιμαστή,

Λάμπρος Παπαδόπουλος

Η διάκριση που έχω στο μυαλό μου είναι η εξής:

Συντακτικά λάθη : Λάθη "ορθογραφίας"...τα βρίσκει ο μεταγλωττιστής π.χ.: Μέχρι_όταν
Λάθη χρόνου εκτέλεσης ή σημασιολογίας : Σταματούν τη εκτέλεση του προγράμματος π.χ.: λάθος τύπος μεταβλητής
Λογικά λάθη : Δεν σταματούν την εκτέλεση του προγράμματος αλλά δίνουν λάθος αποτελέσματα π.χ.: θέλω να βρω
                    τον μέσο όρο δυο αριθμών και γράφω ΜΟ<-(α+β)/3

nikolasmer

Δεν οριοθετούμε και πάλι το συγκεκριμένο θέμα. Ευχαριστώ τους συναδέλφους για τις απαντήσεις αλλά συνεχίζω να μη θέλω να ξανά δω σε εξετάσεις το συγκεκριμένο θέμα. Απαίσιο ζήτημα ανούσιο για γ λυκείου όπως το θέμα με την τράπεζα προπερσυ και το θέμα με την goto προ δεκαετίας. Γιατί φοβάμαι ότι θα δούμε πάλι τέτοια...;
Μερεντίτης Νικόλαος
Πληροφορικός

Λάμπρος Παπαδόπουλος

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

nikolasmer

Παράθεση από: Λάμπρος Παπαδόπουλος στις 18 Απρ 2018, 10:55:30 ΠΜ
Το να οριοθετήσουμε εμείς κάποιο θέμα δεν έχει πολύ μεγάλη αξία. Πάντα στην προσπάθεια να βρεθεί κάποιο πρωτότυπο θέμα θα υπάρχει η πιθανότητα ατυχήματος. Το μόνο ουσιαστικό που μπορεί να γίνει είναι να αλλάξει το μάθημα. Πιστεύω ότι για την ΑΕΠΠ έχει έλθει το τέλος εποχής.
+1
Μερεντίτης Νικόλαος
Πληροφορικός