Αποστολέας Θέμα: Θέματα Εσπερινών Λυκείων  (Αναγνώστηκε 3204 φορές)

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3145
  • to Iterate is human to Recurse divine
Απ: Θέματα Εσπερινών Λυκείων
« Απάντηση #15 στις: 01 Ιούν 2013, 11:35:11 μμ »
Θα ήθελα να αναφέρω κάποια πράγματα και να κλείσω το θέμα
Το τμήμα αλγορίθμου που δίνεται είναι το παρακάτω

1. Ν <- 0
2. Μ<- 4
3. Όσο  Μ <= 11 Επανάλαβε
4.      Αν Μ mod 10 = 0  Τότε
5.            Μ <- Μ + 4
6.      Τέλος_Αν
7.      Ν <- Ν + 2*Ν/(Μ-10)
9. Τέλος_Επανάληψης
10. Ν <- (Ν-Μ) / Ν
11. Εμφάνισε Μ
12 Εμφάνισε Ν

Εδώ πρέπει οι μαθητές να απαντήσουν ποια κριτήρια παραβιάζονται.
Η απάντηση που δόθηκε είναι ότι:
  • Στην γραμμή 8 παραβιάζεται η καθοριστικότητα  (μετά από διευκρίνηση)
  • Στην γραμμή 3  παραβιάζεται η περατότητα
  • Στην γραμμή 10 παραβιάζεται η καθοριστικότητα

Δηλαδή ο αλγόριθμος αρχικά παραβιάζει το κριτήριο της καθοριστικότητας αφού έχουμε διαίρεση 0/0. Από εδώ και πέρα δηλαδή η συμπεριφορά του είναι απροσδιόριστη.
Παρόλα αυτά (για κάποιο μυστηριώδη τρόπο που δεν μπορώ να εξηγήσω) συνεχίζει την εκτέλεσή του και πέφτει σε ατέρμων βρόχο οπότε παραβιάζει την περατότητα.
Στη συνέχεια αφού παραβιάσει την περατότητα (πάλι με κάποιο μυστηριώδη τρόπο που δεν μπορώ να εξηγήσω) βγαίνει από την επανάληψη ίσα ίσα για να ξαναπαραβιάσει την καθοριστικότητα στην γραμμή 10. Αυτή τη φορά ευτυχώς δεν είναι απροσδιόριστη μορφή 0/0 και δεν χρειάζεται De L'Hospital. Με τον κανόνα των προσήμων βγαίνει μείον άπειρο που είναι οκ. Αρκετό από ότι φαίνεται για να ξαναπέσει σε ατέρμων βρόχο μετά από αυτό το μικρό διάλειμμα και έτσι να συνεχίσει να παραβιάζει την περατότητα.

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

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

καληνύχτα
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 428
  • Real stupidity beats ΑΙ any time
Απ: Θέματα Εσπερινών Λυκείων
« Απάντηση #16 στις: 02 Ιούν 2013, 01:10:17 πμ »
Έστω πώς παραβλέπουμε την 8,υποθέτοντας ότι κάπως αντιμετωπίζεται χωρίς να υπάρχει κανένας λόγος να το υποθέσουμε αυτό(Το standard της C++ ας πούμε για αυτήν την περίπτωση υπαγορεύει undefined behaviour).Η γραμμή 10 βγαίνει απο τη συζήτηση του τι παραβιάζεται.Ο αλγόριθμος είναι σειριακός,δεν έχει νόημα να εξετάσεις κομμάτι του που δεν υπάρχει καμμια περίπτωση να εκτελεστεί.

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

Όπως αντιλαμβάνεστε δεν είναι δυνατόν αφού όλοι συμφωνούν σε αυτή την απάντηση να θεωρηθεί λάθος.

Γιατί,απο πότε το πλήθος είναι κριτήριο για την αληθοτιμή μιας πρότασης;

Σπύρος Δουκάκης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 831
  • Έτερος εξ ετέρου σοφός, το τε πάλαι το τε νυν
    • http://sdoukakis.wordpress.com/
Απ: Θέματα Εσπερινών Λυκείων
« Απάντηση #17 στις: 02 Ιούν 2013, 12:20:33 μμ »
Ευχαριστώ για την ενημέρωση.
Κάθησα και έψαξα τα θέματα που έχουν πέσει στο παρελθόν και σχετίζονται με το θέμα των χαρακτηριστικών (κριτηρίων) που χρειάζεται να ικανοποιεί ένας αλγόριθμος.

Τα παραθέτω για την συζήτηση:
Κώδικας: [Επιλογή]
(ΗΕ03) Δίνεται η παρακάτω αλληλουχία εντολών:
Διάβασε α, β
Αν α > β τότε
  c ← α / (β - 2)
Τέλος_αν
Εκτύπωσε c
α. Να απαντήσετε στο τετράδιό σας με Ναι ή Όχι αν η παραπάνω αλληλουχία εντολών ικανοποιεί όλα τα αλγοριθμικά κριτήρια.  Μ 2
β. Να αιτιολογήσετε την απάντησή σας.  Μ 4

(ΗΕ03) Δίνεται η παρακάτω αλληλουχία εντολών:
α ← 1
Όσο α <> 6 επανάλαβε
  α ← α + 2
Τέλος_επανάληψης
Εκτύπωσε α
α. Να απαντήσετε στο τετράδιό σας με Ναι ή Όχι αν η παραπάνω αλληλουχία εντολών ικανοποιεί όλα τα αλγοριθμικά
κριτήρια. Μ 2
β. Να αιτιολογήσετε την απάντησή σας. Μ 4
 
(ΕΕ04) Δίνεται η παρακάτω ακολουθία εντολών:
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
  Α ← 10
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 3
    Α ← Α - 10
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΧΡΙΣ_ΟΤΟΥ Α = 0
Να αναφέρετε ποιο κριτήριο αλγορίθμου δεν ικανοποιείται και να δικαιολογήσετε την απάντησή σας. Μ 5
 
(Η05) Ποιο κριτήριο δεν ικανοποιεί ο παρακάτω αλγόριθμος και γιατί; Μ 5
S ← 0
Για I από 2 μέχρι 10 με_βήμα 0
  S ← S + I
Τέλος_επανάληψης
Εμφάνισε S 

(ΕΕ08) Δίνεται η παρακάτω ακολουθία εντολών:
ΕΠΑΝ ← ΑΛΗΘΗΣ
ΟΣΟ ΕΠΑΝ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
  ΔΙΑΒΑΣΕ Α, Β
  Χ ← Β / Α
  ΓΡΑΨΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
α. Να αναφέρετε ονομαστικά ποια κριτήρια αλγορίθμου δεν ικανοποιούνται. Μ 4
β. Να αιτιολογήσετε την απάντησή σας. Μ 6

Η φράση που χρησιμοποιούσαν αρχικά ήταν:
Παράθεση
Να απαντήσετε στο τετράδιό σας με Ναι ή Όχι αν η παραπάνω αλληλουχία εντολών ικανοποιεί όλα τα αλγοριθμικά κριτήρια.  Να αιτιολογήσετε την απάντησή σας.

Έτσι δεν ξέραμε πόσα κριτήρια δεν ικανοποιούνταν και ήταν απαραίτητο να τα ψάξουμε.

Στη συνέχεια η φράση έγινε:
Παράθεση
Να αναφέρετε ποιο κριτήριο αλγορίθμου δεν ικανοποιείται και να δικαιολογήσετε την απάντησή σας.
ή
Ποιο κριτήριο δεν ικανοποιεί ο παρακάτω αλγόριθμος και γιατί;

Την τελευταία φορά που εξετάστηκαν οι μαθητές σε τέτοιο θέμα ήταν το 2008 με την εκφώνηση:
Παράθεση
Να αναφέρετε ονομαστικά ποια κριτήρια αλγορίθμου δεν ικανοποιούνται. Να αιτιολογήσετε την απάντησή σας.

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

Άρα όπως και το 2008 μιλούσε για κριτήρια... και μάλλον το ένα κριτήριο δεν ήταν αρκετό.
Το θέμα του 2008 όμως έχει επιπλέον ενδιαφέρον, διότι και εδώ είχαμε δύο κριτήρια που δεν ικανοποιούσε ο αλγόριθμος.
Κώδικας: [Επιλογή]
ΕΠΑΝ ← ΑΛΗΘΗΣ
ΟΣΟ ΕΠΑΝ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
  ΔΙΑΒΑΣΕ Α, Β
  Χ ← Β / Α
  ΓΡΑΨΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

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

Τέλος, η αποτελεσματικότητα που αναφέρεται στις λύσεις που εντόπιστηκαν
Στις λύσεις που ανακοίνωσε η ΠΕΚΑΠ, υπάρχει μια διαφορετική προσσέγγιση στο θέμα Α2
Δείτε τις λύσεις  στο http://www.greekinformatics.gr/images/pdf/lyseisesperinon2013.pdf
είναι ένα ακόμα πολύ-πολύ λεπτό ζήτημα... Αλήθεια πώς προτάθηκε αυτή η λύση από τους συναδέλφους που επιμελήθηκαν τις λύσεις. Θα είχε ενδιαφέρον το θέμα...

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2448
  • I 'm not young enough to know everything
Απ: Θέματα Εσπερινών Λυκείων
« Απάντηση #18 στις: 03 Ιούν 2013, 02:37:09 μμ »
Η απάντηση που δόθηκε είναι ότι:
  • Στην γραμμή 8 παραβιάζεται η καθοριστικότητα  (μετά από διευκρίνηση)
  • Στην γραμμή 3  παραβιάζεται η περατότητα
  • Στην γραμμή 10 παραβιάζεται η καθοριστικότητα

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

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

ntzios kostas

  • Καθηγητής Πληροφορικής
  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 599
    • Ανάπτυξη Εφαρμογών
Απ: Θέματα Εσπερινών Λυκείων
« Απάντηση #19 στις: 03 Ιούν 2013, 10:08:30 μμ »
Παιδιά το ερώτημα είναι λάθος και προσπαθούμε να δώσουμε λύση.

Και η δικιά μου άποψη είναι ότι παραβιάζει μόνο την καθοριστικότητα.

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