Αποστολέας Θέμα: Συντακτικά και Λογικά λάθη  (Αναγνώστηκε 14507 φορές)

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2814
  • Πύργος Ηλείας
Συντακτικά και Λογικά λάθη
« στις: 23 Απρ 2009, 12:51:37 πμ »
Επειδή οι μαθητές συνήθως δεν ξεκαθαρίζουν και τόσο εύκολα τη διαφορά ανάμεσα στα συντακτικά και τα λογικά λάθη, αναφέρω ένα παράδειγμα ("δανεισμένο" από βοήθημα) που πράγματι οι μαθητές απαντάνε λανθασμένα για το είδος του λάθους:

ΜΟ <- α+β+γ/3  ! (για υπολογισμό του μέσου όρου)

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

α)

β<-χ+ψ   ! (χωρίς να έχει πάρει τιμή η μεταβλητή χ)


β)

ΜΟ <- άθροισμα/πλήθος  ! (και ενώ το πλήθος δεν αποκλείεται να έχει την τιμή 0)


γ)

S<-0
i<-1
Όσο i<=100 επανάλαβε
  S<-S+i
Τέλος_επανάληψης
Εμφάνισε S

dipa57

  • Βετεράνος
  • ****
  • Μηνύματα: 56
  • Its Only Rock'n'Roll, But I Like it ...
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #1 στις: 23 Απρ 2009, 07:40:32 μμ »
Στο β) να προσθέσω και το ότι, όταν ο ΜΟ να αναφέρεται σε ΑΚΕΡΑΙΕΣ ποσότητες, τον θεωρούν ΑΚΕΡΑΙΑ μεταβλητή.
Δημήτρης Παπακωνσταντίνου
1110010100 1110110111 1110111100 1110101110 1111000100 1111000001 1110110111 1111000010

tanius76

  • Βετεράνος
  • ****
  • Μηνύματα: 60
  • Γράψτε το προσωπικό σας σλόγκαν!
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #2 στις: 29 Απρ 2009, 12:24:16 πμ »
Γεια και χαρά παιδιά! ;)
και χρόνια Πολλά!

Παραθέτω την παρακάτω πρόταση Σ ή Λ νομίζετε ότι πρέπει να βάλουμε.

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

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1132
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #3 στις: 29 Απρ 2009, 12:38:23 πμ »
Σ.
Πρέπει ο προγραμματιστής να φροντίσει να ελέγξει τις μεταβλητές του παρονομαστή, ώστε να μην τον μηδενίζουν.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2814
  • Πύργος Ηλείας
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #4 στις: 29 Απρ 2009, 09:38:16 πμ »
Η χρήση κλασματικής παράστασης σε μια εντολή , που ο παρονομαστής της για κάποιες τιμές μεταβλητών που περιέχονται στην παράσταση μπορεί να μηδενίζεται, αποτελεί λογικό λάθος.

Ο μεταγλωττιστής θα το μεταγλωττίσει, δεν θα έχει πρόβλημα...
Το πρόβλημα θα φανεί κατά την εκτέλεση... Άρα είναι λογικό λάθος!

Αυτό εννοούσα και με το β) παράδειγμα στο αρχικό μήνυμα...

P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #5 στις: 29 Απρ 2009, 01:35:45 μμ »
Εμένα δε μου αρέσει η ερώτηση.
Άρα θεωρώ την ερώτηση Λάθος :D

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3519
  • to Iterate is human to Recurse divine
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #6 στις: 29 Απρ 2009, 03:20:30 μμ »
και μένα δε μου αρέσει.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

tanius76

  • Βετεράνος
  • ****
  • Μηνύματα: 60
  • Γράψτε το προσωπικό σας σλόγκαν!
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #7 στις: 29 Απρ 2009, 10:33:14 μμ »
4.   Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.
(επαν πανελλήνιες 2002)
είναι σωστό οπως δώθηκε απο πανελλήνιες.
εμένα η απορία μου είναι πώς έαν έχω χρήση κλασματικής παράστασης σε μια εντολή
που ο παρονομαστής της για κάποιες τιμές μεταβλητών που περιέχονται στην παράσταση μπορεί να μηδενίζεται , εφόσον το θεωρούμε λογικό λάθος) τότε διακόπτεται η εκτέλεση του προγράμματος .
???

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2814
  • Πύργος Ηλείας
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #8 στις: 30 Απρ 2009, 12:58:17 πμ »
4.   Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.
(επαν πανελλήνιες 2002)
είναι σωστό οπως δώθηκε απο πανελλήνιες.
εμένα η απορία μου είναι πώς έαν έχω χρήση κλασματικής παράστασης σε μια εντολή
που ο παρονομαστής της για κάποιες τιμές μεταβλητών που περιέχονται στην παράσταση μπορεί να μηδενίζεται , εφόσον το θεωρούμε λογικό λάθος) τότε διακόπτεται η εκτέλεση του προγράμματος .
???

Ναι, αυτή η απορία είναι λογική, αν και όχι ξεκάθαρα διατυπωμένη (εννοώ η απορία!)...

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1132
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #9 στις: 30 Απρ 2009, 08:53:05 πμ »
Παράθεση
4.   Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.
(επαν πανελλήνιες 2002)
είναι σωστό οπως δώθηκε απο πανελλήνιες.
εμένα η απορία μου είναι πώς έαν έχω χρήση κλασματικής παράστασης σε μια εντολή
που ο παρονομαστής της για κάποιες τιμές μεταβλητών που περιέχονται στην παράσταση μπορεί να μηδενίζεται , εφόσον το θεωρούμε λογικό λάθος) τότε διακόπτεται η εκτέλεση του προγράμματος

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

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

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

Στηριζόμενοι σε αυτο σκεπτικό μπορουμε να χαρακτηρίσουμε την πρόταση ως Σ

lykos

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 143
  • Καλύτερα ταξιδάκια, παρά project
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #10 στις: 01 Μάι 2009, 09:30:51 μμ »
Η απάντηση είναι Σ, αν και κατά την γνώμη μου η ερώτηση
Παράθεση
Η χρήση κλασματικής παράστασης σε μια εντολή , ...
θάπρεπε νάναι: "Η χρήση κλασματικής παράστασης σε μια αριθμητική έκφραση, ..."

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

Δεν διακόπτεται οπωσδήποτε! Μπορεί να διακοπεί... (αν παρονομαστής = 0)
Ενώ σε συντακτικό λάθος διακόπτεται - πάντα! - ή μεταγλώττιση (όχι η εκτέλεση!)


P.Tsiotakis

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3304
  • agent romanoff you miss me?
    • P.Tsiotakis
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #11 στις: 01 Μάι 2009, 10:36:02 μμ »
Στο κεφάλαιο 13 (τεκμηρίωση) που πλέον δεν είναι στη ύλη αναφέρονται σε τα γνωστά σε όλους μας λάθη χρόνου εκτέλεσης.

Εφόσον δεν υπάρχουν στην φαρέτρα μας, πρέπει να επιλέγουμε πάντα μεταξύ συντακτικών και λογικών;

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

Χωρίς να αντικρούω τις παραπάνω αναφορές στα λογικά λάθη, θα προτιμούσα μόνο τέτοια που να εκτελούνται πέραν πάσης αμφιβολίας , αλλά να οδηγούν σε λανθασμένα αποτελέσματα. όπως το άθροισμα πίνακα και η διαίρεση με ΛΑΘΟΣ πλήθος για τον υπολογισμό του μέσου όρου.

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1427
  • There are always possibilities...
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #12 στις: 02 Μάι 2009, 12:05:56 πμ »
Νομίζω ότι θα συμφωνήσουμε στα εξής:
Αν κάποιο πρόγραμμα έχει λογικό λάθος τότε δεν σταματάει υποχρεωτικά η εκτέλεση του, (μπορεί να δώσει λάθος τιμές).
Αν κάποιο πρόγραμμα σταματήσει την εκτέλεση του, τότε έχει λογικό λάθος (αν στα λογικά λάθη συμπεριλάβουμε και την μη συμμόρφωση στις προδιαγραφές γλώσσας προγραμματισμού και ΛΣ).

4.   Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.
(επαν πανελλήνιες 2002)
είναι σωστό οπως δώθηκε απο πανελλήνιες.

H ερώτηση είναι προβληματική. Η ερμηνεία της εξαρτάται από το πού πάει το συνήθως. Αν πάει μόνο στο λάθη σχεδιασμού, τότε η απάντηση είναι λάθος, γιατί ένα λογικό λάθος ναι μεν οφείλεται σε λάθος σχεδιασμό, αλλά μπορεί να προκαλέσει τον τερματισμό του προγράμματος.
Αν το συνήθως πάει σε όλη την υπόλοιπη πρόταση (που δεν κάθεται καλά συντακτικά εκτός αν το 'και' το ερμηνεύσουμε ως 'που') κλίνω προς το σωστό, αλλά πάλι είναι διφορούμενο (ποια είναι πιο πολλά τα προγράμματα : με λογικό λάθος που διακόπτουν ή αυτά που δεν διακόπτουν και πώς μπορεί ο μαθητής να το ξέρει).
Άλλη μια προσεγμένη επιλογή...
« Τελευταία τροποποίηση: 02 Μάι 2009, 12:16:36 πμ από pgrontas »
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

tanius76

  • Βετεράνος
  • ****
  • Μηνύματα: 60
  • Γράψτε το προσωπικό σας σλόγκαν!
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #13 στις: 04 Μάι 2009, 07:44:23 μμ »
Ευχαριστώ πολύ για τις απαντήσεις σας!
Πιστεύω ότι το αναλύσαμε  καλά το θέμα!

Με εκτίμηση Τάνια

Γιαννούλης Γιώργος

  • Βετεράνος
  • ****
  • Μηνύματα: 75
Απ: Συντακτικά και Λογικά λάθη
« Απάντηση #14 στις: 01 Φεβ 2010, 01:45:54 πμ »
Αντίθετα ένα λογικό λάθος, δεν έχει να κάνει με την λανθασμένη σύνταξη μιας εντολής.( Η εντολή μπορεί να εκτελείται κανονικά ή να μην εκτελείται για ορισμένες μόνο τιμές των μεταβλητών αλλά να μην δίνει να αναμενόμενα αποτελεσματα.)


Δηλαδή αν μέσα στον κώδικα έχω κάπου αυτό :
χ<--α/0
τότε είναι λογικό η συντακτικό λάθος.
Πότε δεν πρόκειτε να δουλέψει. Παρόλα αυτά δεν το θεωρώ συντακτικό λάθος μιας και η σύνταξη του είναι ορθή. Διαιρεί μία μεταβλητή με μία σταθερα και την αναθέτει σε μια άλλη μεταβλητή...