Αποστολέας Θέμα: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ  (Αναγνώστηκε 6739 φορές)

Wizard

  • Επισκέπτης
Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« στις: 14 Οκτ 2008, 05:30:47 μμ »
Αν κάποιος μαθητής χρησιμοποιήσει ελέγχους περιττών συνθηκών σε μια ΑΝ, όπως στη σελίδα 172, κόβονται βαθμοί γιατί "ένα συχνό λάθος που παρατηρείται στα προγράμματα είναι ο έλεγχος περιττών συνθηκών";

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1461
  • Δεν αντέχω την (συμ)-πίεσηηη .......
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #1 στις: 14 Οκτ 2008, 05:35:02 μμ »
Κανονικά θα έπρεπε να κόβεται λίγο αλλά απο όσο ξέρω αρκετοί συνάδελφοι δεν κόβουν.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3111
  • Dracarys
    • Panagiotis Tsiotakis
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #2 στις: 14 Οκτ 2008, 09:57:05 μμ »
δε νομιζω να κόβουν

nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 350
  • ___
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #3 στις: 15 Οκτ 2008, 10:15:04 μμ »
και εγώ ρε παιδιά δεν έχω ακούσει να κόβουν για τους περιττούς ελέγχους
Νίκος Ξένος
nkxenos@yahoo.gr

bagelis

  • Ομάδα διαγωνισμάτων 2009
  • *
  • Μηνύματα: 510
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #4 στις: 16 Οκτ 2008, 12:04:51 πμ »
και δεν πρέπει να κόβουν...

dkotanid

  • ΚΕΠΛΗΝΕΤ
  • *
  • Μηνύματα: 66
  • Να μην επιθυμείς αδύνατα πράγματα.
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #5 στις: 16 Οκτ 2008, 12:20:28 πμ »
Δε νομίζω!!!Και δεν είναι Λάθος ο έλεγχος περιττών συνθηκών...
Μη μου τους κύκλους τάραττε
Αρχιμήδης

tsak

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 109
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #6 στις: 16 Οκτ 2008, 08:26:32 πμ »
Θα ήταν απαράδεκτο να έκοβε κάποιος μονάδες γι' αυτό το ζήτημα.Από τη στιγμή που δεν υπάρχει κανένα συντακτικό λάθος δεν καταλαβαίνω το λόγο που έχει κάποιος να κόψει μονάδες.Διαφωνώ δηλαδή ακόμη και με την πρόταση του βιβλίου (ένα συχνό λάθος είναι...) και δημιουργεί σύγχυση και στα παιδιά. Περιττοί είναι οι αυτοί οι έλεγχοι αλλά όχι και λανθασμένοι.

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 996
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #7 στις: 16 Οκτ 2008, 08:46:56 πμ »
Διακρίνω μια άκαμπτη , απόλυτη στάση.

Δηλαδή  διαφωνείτε και με το σχετικό θέμα (Επαναληπτικές)

για την εύρεση και απαλοιφή των περιττών συνθηκών;

Αν δεν βρείτε ποιο έτος είναι τα θέματα , απαντήστε μου.

Ανδρέας

nikosx

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 350
  • ___
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #8 στις: 16 Οκτ 2008, 10:34:26 πμ »
καλο είναι κάποιος να έχει καταλάβει πλήρως τον τρόπο λειτουργίας της πολλαπλής επιλογής και έτσι να ξέρει γιατί αυτές οι περιττές συνθήκες είναι περιττές, δηλαδή δε διαφωνώ τελείως με εκείνο το θέμα (αλλά οχι και οτι μου άρεσε ιδιαίτερα). Το να κόψεις μονάδες όμως στην περίπτωση που κάποιος τις χρησιμοποιήσει φαίνεται βαρύ.
Νίκος Ξένος
nkxenos@yahoo.gr

tsak

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 109
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #9 στις: 16 Οκτ 2008, 10:46:42 πμ »
Το θέμα των επαναληπτικών του 2006 (φαντάζομαι αυτό εννοείτε) είναι ένα αξιολογότατο θέμα που θέλει μετατροπή του τμήματος αυτού χωρίς την ύπαρξη των περιττών ελέγχων. Δεν λέει διορθώστε τα λάθη που υπάρχουν στο τμήμα που σας δίνεται. Και δεν αντιλαμβάνομαι τι σχέση μπορεί να έχει το θέμα αυτό με το αν είναι ΛΑΘΟΣ και θα ΚΟΠΟΥΝ μονάδες από ένα μαθητή που κάνει χρήση περιττών ελέγχων.
Γνώμη δικιά μου είναι ότι το βιβλίο θα έπρεπε να διατυπώσει την πρόταση του κεφαλαίου 8 που συζητάμε λίγο διαφορετικά. Δηλαδή να δώσει στο μαθητή να καταλάβει ποιος είναι ο πιο δόκιμος, συντομότερος, κομψότερος, ορθότερος (ή όπως θέλετε χαρακτηρίστε το) τρόπος, αλλά όχι ότι είναι ΛΑΘΟΣ. Ας μου εξηγήσει κάποιος αν υπάρχει κάποιο συντακτικό ή λογικό λάθος σε ένα περιττό έλεγχο. Ή μήπως αυξάνεται η πολυπλοκότητα της λύσης; Ούτε αυτό μου φαίνεται λογικό.

Διότι τότε κάτι ανάλογο θα έπρεπε τότε να ισχύει και στην περίπτωση των εμφωλευμένων Αν, για τα οποία λέει το βιβλίο στη σελίδα 177:

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

Τώρα σας πάω σε άλλο θέμα, αλλά θέλω να εξηγήσω μ' αυτό τον τρόπο ότι άλλο το εναλλακτικό και άλλο το λανθασμένο.

dkotanid

  • ΚΕΠΛΗΝΕΤ
  • *
  • Μηνύματα: 66
  • Να μην επιθυμείς αδύνατα πράγματα.
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #10 στις: 16 Οκτ 2008, 12:04:56 μμ »
Να το ξαναγράψετε παραλείποντας τους περιττούς ελέγχους.

Δε γράδει πουθενά να διορθώσετε τα λάθη.
Μην τρελαθούμε, δεν είναι λάθος ο περιττός έλεγχος. Ουτε συντακτικό ουτε λογικό...
Μη μου τους κύκλους τάραττε
Αρχιμήδης

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3012
  • to Iterate is human to Recurse divine
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #11 στις: 16 Οκτ 2008, 02:17:36 μμ »

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

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

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

Κώδικας: Text
  1. ΑΝ Χ < 0 ΤΟΤΕ
  2.    ΓΡΑΨΕ 'ΑΡΝΗΤΙΚΟΣ'
  3. ΑΛΛΙΩΣ_ΑΝ Χ>=0 ΚΑΙ Χ<10 ΤΟΤΕ
  4.    ΓΡΑΨΕ 'ΜΟΝΑΔΕΣ'
  5. ΑΛΛΙΩΣ_ΑΝ Χ>=10 ΚΑΙ Χ<100 ΤΟΤΕ
  6.    ΓΡΑΨΕ 'ΔΕΚΑΔΕΣ'
  7. ΑΛΛΙΩΣ_ΑΝ Χ>=100
  8.    ΓΡΑΨΕ 'ΜΕΓΑΛΟΣ ΑΡΙΘΜΟΣ'
  9. ΤΕΛΟΣ_ΑΝ
  10.  

Δεν θα έκοβα σε καμία περίπτωση βαθμό από το παραπάνω επειδή γίνονται 2 περιττοί έλεγχοι, δηλαδή δεν θα έκοβα με την αιτιολογία ότι ο αλγόριθμος του μαθητή είναι μη αποδοτικός.
Θα έκοβα όμως με το σκεπτικό ότι ο μαθητής δεν κάνει σωστή χρήση της Αλλιώς_Αν. Αν ήταν από την αρχή να κάνει τόσους περιττούς ελέγχους γιατί να μην χρησιμοποιήσει 4 ξεχωριστές απλές Αν? Αυτό δεν θα ήταν πιο απλό? Είναι φανερό λοιπόν ότι δεν έχει καταλάβει τον λόγο ύπαρξης της δομής πολλαπλής επιλογής, που είναι ένας από τους διδακτικούς στόχους του μαθήματος και για αυτό δεν πρέπει να πάρει άριστα στο συγκεκριμένο θέμα.

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

Κώδικας: Text
  1. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100
  2.    ΔΙΑΒΑΣΕ Α
  3.    Σ <- Σ + Α
  4.    ΑΝ Σ > 1000 ΤΟΤΕ
  5.        i <- 101
  6.   ΤΕΛΟΣ_ΑΝ
  7. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  8.  

Η αντιμετώπιση και των 2 παραπάνω θεμάτων που θεωρώ πολύ σοβαρά πρέπει να γίνεται με ενιαία λογική. Όποιος πιστεύει ότι οι περιττοί έλεγχοι δεν είναι λάθος είναι υποχρεωμένος να συμφωνήσει ότι και το παραπάνω τμήμα αλγορίθμου με τη Για δεν είναι λάθος. Δηλαδή αν επιτρέπουμε "κακή" χρήση της Αλλιώς_Αν είμαστε υποχρεωμένοι να επιτρέψουμε και την κακή χρήση της  "Για..Από..Μέχρι"
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

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

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3111
  • Dracarys
    • Panagiotis Tsiotakis
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #12 στις: 16 Οκτ 2008, 04:00:43 μμ »
Η δομή Αν δημιουργήθηκε για να διερευνά συνθήκες. Αν χρησιμοποιούμε επιπλέον συνθήκες, την κακοχρησιμοποιούμε, αλλά παίρνουμε αποτέλεσμα ΚΑΙ για το πως έχει διαμορφωθεί το μάθημα δεν είναι λάθος αυτό.

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

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3012
  • to Iterate is human to Recurse divine
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #13 στις: 16 Οκτ 2008, 04:32:10 μμ »

 Με το ίδιο σκεπτικό και η δομή Αλλιώς_Αν έχει δημιουργηθεί για να διερευνά συνθήκες έτσι ώστε να μην χρειαστεί να ελέγχει όλες τις περιπτώσεις και να μην κάνει περιττούς ελέγχους. Άρα δε μπορείς να χρησιμοποιείς την Αλλιώς_Αν και να έχεις περιττούς ελέγχους.
Το ίδιο σκεπτικό ισχύει και για τη Για. Επίσης η αλλαγή του μετρητή μέσα στη Για δεν έχω καταλάβει ακόμα σε τι κατηγορία λάθους εμπίπτει, δηλαδή είναι συντακτικό ή λογικό?
   Σε περίπτωση λογικού λάθους σημαίνει ότι ο αλγόριθμος θα πρέπει να βγάζει κάποιο λάθος αποτέλεσμα, το οποίο δεν ισχύει.
Να είναι συντακτικό λάθος δε νομίζω γιατί δεν παραβιάζει τη σύνταξη της Για. Επίσης δε νομίζω ότι είναι λάθος που μπορεί εύκολα να το πιάσει κάποιος σε compile-time.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 589
    • Ανάπτυξη Εφαρμογών
Απ: Έλεγχοι περιττών συνθηκών στη δομή ΑΝ
« Απάντηση #14 στις: 16 Οκτ 2008, 04:40:07 μμ »
Φίλε evry το τετράδιο μαθητή αναφέρει καθαρά ότι καλό είναι τη Για να μην την χρησιμοποιούμε όπως την αναφέρεις. Τρέξε, λοιπόν, αυτό που λες στην Pascal για να δεις τι πρόβλημα έχει.  

s:=0
for i:=1 to 10 do begin
    read(x);
    s:=s+x;
    if s>10 then
        i:=11;
end

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

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