Γενική βήματα σε ασκήσεις με δομές επανάληψης

Ξεκίνησε από Λαμπράκης Μανώλης, 06 Νοε 2014, 12:31:18 ΜΜ

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

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

Καλημέρα σε όλους και καλή μας επιτυχία στις ανακοινώσεις Λοβέρδου   >:D :laugh:

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

οι μαθητές μου το βρήκαν αρκετά χρήσιμο, και τα βήματα τους βοήθησαν να φτιάξουν μία άσκηση με λογική και δομή

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

ευχαριστώ και περιμένω τα σχόλια σας

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

γρήγορες διορθώσεις - έχω τσακάλια μαθητές που δεν τους ξεφέυγει τίποτα >:D :police: ;D   ευτυυχώς με συγχώρεσαν, είπαν δικαιολογούνται αφού έκατσα και τους τα έγραψα ........    >:D >:D >:D >:D

1) στον υπολογισμό του μέγιστου στην άσκηση η εκχώρηση είναι όνομα_μέγιστου<--όνομα και όχι ον
2) αφού υπολογίσαμε το όνομα του μέγιστου ας το έμφανίσουμε κιόλας στο τέλος

ευχαριστώ

twisted

Συνάδελφε με μια γρήγορη ματιά φαίνεται κατατοπιστικότατο το φυλλάδιο...  ;)

Συγχαρητήρια, πιστεύω θα βοηθήσει αρκετά τα παιδιά μας...  8)

Thanks for sharing

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

+1

Παράθεση1)   ελάχιστο <- 10^10 ! πολύ μεγάλος αριθμός [δεν χρειάζεται να γνωρίζουμε πόσα μέτρα μπορεί να πετάξει ακόντιο κάποιος αθλητής, τόσο μεγάλη βολή δεν γίνεται να υπάρξει ]

...Ποτέ μη λες ποτέ!

NiColas1957

Αν είναι κριτής ο Σπάθας, ποτέ δεν ξέρεις τι γίνεται ! :)

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

Παράθεση από: Νίκος Αδαμόπουλος στις 07 Νοε 2014, 08:23:33 ΠΜ
+1

...Ποτέ μη λες ποτέ!


Καλημέρα σε όλους

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

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

ευχαριστώ

merlin

Ο Νίκος το είπε για πλάκα το "ποτέ μη λές ποτέ" επειδή είχε δημιουργηθεί ένα "προβληματάκι"πριν 4 χρόνια με το Γ Θέμα των Πανελλαδικών.

Π.χ. αυτό το "δικαίωμα" που λες ότι έχουμε όταν βάζουμε μέγιστο <--  -1, δεν είναι ακριβώς ίδιο με το να βάλουμε μια μεγάλη τιμή.
Έχει παραπλήσια λογική, αλλά όχι την ίδια, δηλαδή:
Το -1 είναι μια βολή που σε οποιαδήποτε περίπτωση θεωρείται  "άκυρη".
Τα 100, 1000, ή 100000000 φαντάζουν εξωπραγματικά για φυσιολογικούς ανθρώπους σε νορμάλ συνθήκες, αλλά από τη στιγμή που δεν υπάρχει κάποιο "σαφές" άνω όριο, αρχίζουμε να αυθαιρετούμε με αποτέλεσμα να "κινδυνεύει" η αξιοπιστία του αλγορίθμου μας.

Εγώ σε τέτοιες περιπτώσεις δίνω σαν παράδειγμα στους μαθητές μου αντίστοιχο πρόβλημα εύρεσης ελαχίστου ποσού κατάθεσης σε τράπεζα. Προφανώς το να έχει κάποιος 100000000000000 χρήματα στον λογαριασμό του είναι εξωφρενικό νούμερο (πόσο μάλλον να το έχουν όλοι όσων ψάχνουμε), οπότε κάποιος μπορεί να σκεφτεί να το βάλει σαν αρχική τιμή. Στο 99.999999% των περιπτώσεων θα πάνε όλα καλά. Σε λίγα χρόνια όμως μπορεί να θέλουμε 1000000 (δρχ?) για να πάρουμε μια τσίχλα, οπότε ο αλγόριθμός μας δε θα είναι σωστός...
Ο μαθητής τι νούμερο να βάλει έτσι ώστε να είναι καλυμμένος;

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

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

Παράθεση από: merlin στις 07 Νοε 2014, 12:09:21 ΜΜ
Ο Νίκος το είπε για πλάκα το "ποτέ μη λές ποτέ" επειδή είχε δημιουργηθεί ένα "προβληματάκι"πριν 4 χρόνια με το Γ Θέμα των Πανελλαδικών.

Π.χ. αυτό το "δικαίωμα" που λες ότι έχουμε όταν βάζουμε μέγιστο <--  -1, δεν είναι ακριβώς ίδιο με το να βάλουμε μια μεγάλη τιμή.
Έχει παραπλήσια λογική, αλλά όχι την ίδια, δηλαδή:
Το -1 είναι μια βολή που σε οποιαδήποτε περίπτωση θεωρείται  "άκυρη".
Τα 100, 1000, ή 100000000 φαντάζουν εξωπραγματικά για φυσιολογικούς ανθρώπους σε νορμάλ συνθήκες, αλλά από τη στιγμή που δεν υπάρχει κάποιο "σαφές" άνω όριο, αρχίζουμε να αυθαιρετούμε με αποτέλεσμα να "κινδυνεύει" η αξιοπιστία του αλγορίθμου μας.

Εγώ σε τέτοιες περιπτώσεις δίνω σαν παράδειγμα στους μαθητές μου αντίστοιχο πρόβλημα εύρεσης ελαχίστου ποσού κατάθεσης σε τράπεζα. Προφανώς το να έχει κάποιος 100000000000000 χρήματα στον λογαριασμό του είναι εξωφρενικό νούμερο (πόσο μάλλον να το έχουν όλοι όσων ψάχνουμε), οπότε κάποιος μπορεί να σκεφτεί να το βάλει σαν αρχική τιμή. Στο 99.999999% των περιπτώσεων θα πάνε όλα καλά. Σε λίγα χρόνια όμως μπορεί να θέλουμε 1000000 (δρχ?) για να πάρουμε μια τσίχλα, οπότε ο αλγόριθμός μας δε θα είναι σωστός...
Ο μαθητής τι νούμερο να βάλει έτσι ώστε να είναι καλυμμένος;

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

ευχαριστώ για τα καλά λόγια συνάδελφε....

ακριβώς το ίδιο λέμε ... το μέγιστο<-- -1 πχ είναι βέβαιο, δεν υπάρχει αρνητική βολή σε ακόντιο πχ, το ελ<--10^10, ανάλογα με την περίπτωση """""έχουμε το δικαίωμα"""" (σε πολλά εισαγωγικά) να το χρησιμοποιήσουμε ... τις διαφορές προσπαθώ αν επισημάνω ...

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

ευχαριστώ ξανά, περιμένω και άλλα σχόλια  :police: :laugh: >:D

methenitis

Συμφωνω και εγώ με την αρχικοποιήση της μέγιστης τιμής.

Και να μην ξέρω το πλήθος των επαναλήψεων εγώ προτείνω στους μαθητές να βάζουν έναν μετρητή ο οποίος να ελέγχεται μέσα στην πρώτη επανάληψη (metr=0 ή metr=1 , αναλόγως που θα τον αυξήσουν) και να κάνουν έκεί μέσα την αρχικοποίηση.

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

mmakar

Υπάρχει μάλλον κάποιο πρόβλημα με το αρχείο και δεν κατεβαίνει.

epsilonXi

το πρόβλημα με την «αυθαίρετη» αρχικοποίηση του minimum είναι ότι όποια αρχική τιμή κι αν βάλεις, μπορεί σε κάποια ακραία και απίθανη περίπτωση να μην είναι αρκετά μεγάλη, ενώ όπως αναφέρθηκε στο maximum η αρχική «αυθαίρετη» τιμή είναι συνήθως εύλογη...

τι θα λέγατε λοιπόν ένα πρόβλημα εύρεσης minimum να μετατραπεί σε πρόβλημα εύρεσης maximum;

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

μαξ <-- 0
διάβασε χ,ψ
όσο χ<>0 ή ψ<>0 επανάλαβε
  α <-- τ_ρ(χ^2+ψ^2)
  αν 1/α > μαξ τότε
    μαξ <-- 1/α
  τέλος_αν
  διάβασε χ,ψ
τέλος_επανάληψης
εμφάνισε "η μικρότερη απόσταση που παρατηρήθηκε ήταν", 1/μαξ

programmer

ΣΕ ΤΕΤΟΙΕΣ ΠΕΡΙΠΤΩΣΕΙΣ ΤΟ ΣΩΣΤΟ ΕΙΝΑΙ ΝΑ ΕΛΕΓΧΟΥΜΕ ΑΝ ΕΙΜΑΣΤΕ ΣΤΗΝ ΠΡΩΤΗ ΕΠΑΝΑΛΗΨΗ ΚΑΙ ΑΝ ΕΙΜΑΣΤΕ ΤΟΤΕ ΝΑ ΑΡΧΙΚΟΠΟΙΟΥΜΕ ΤΟ ΜΑΧ Ή ΑΝΤΙΣΤΟΙΧΑ ΤΟ ΜΙΝ ΑΝΑΛΟΓΑ ΤΙ ΜΑΣ ΖΗΤΑΕΙ.ΜΙΑ ΑΛΛΗ ΛΥΣΗ ΕΙΝΑΙ ΝΑ ΔΙΑΒΑΖΟΥΜΕ ΜΙΑ ΦΟΡΑ ΕΞΩ ΑΠΟ ΤΗΝ ΕΠΑΝΑΛΗΨΗ ΑΡΧΙΚΟΠΟΙΩΝΤΑΣ ΤΟ ΜΑΧ Η ΤΟ ΜΙΝ ΚΑΙ ΤΙΣ ΥΠΟΛΟΙΠΕΣ ΜΕΣΑ ΣΤΗΝ ΕΠΑΝΑΛΗΨΗ ΝΑ ΕΛΕΓΧΟΥΜΕ ΑΝ Η ΤΙΜΗ ΕΙΝΑΙ ΜΕΓΑΛΥΤΕΡΗ ΤΟΥ ΜΑΧ ΚΑΙ ΝΑ ΤΗΝ ΑΛΛΑΖΟΥΜΕ.ΤΟ ΝΑ ΒΑΛΕΙΣ ΜΙΑ ΠΟΛΥ ΜΙΚΡΗ ΤΙΜΗ ΣΤΟ ΜΙΝ Η ΜΙΑ ΤΕΡΑΣΤΙΑ ΤΙΜΗ ΣΤΟ ΜΑΧ ΔΕΝ ΕΙΝΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΟΠΟΙΟΣ ΤΟ ΚΑΝΕΙ ΔΕΝ ΕΙΝΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ.ΜΗΝ ΞΕΧΝΑΤΕ ΠΩΣ ΟΛΑ ΑΥΤΑ ΤΑ ΠΡΟΓΡΑΜΜΑΤΑ ΜΠΟΡΟΥΜΕ ΝΑ ΤΑ ΜΕΤΑΤΡΕΨΟΥΜΕ ΣΕ ΔΙΑΔΙΚΑΣΙΕΣ ΚΑΙ ΝΑ ΤΑ ΧΡΗΣΙΜΟΠΟΙΗΣΟΥΜΕ ΚΑΙ ΑΛΛΟΥ.ΑΥΤΟΣ ΕΙΝΑΙ Ο ΣΚΟΠΟΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ.Ο ΚΩΔΙΚΑΣ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΑΥΣΤΗΡΟΣ .ΕΞΑΛΛΟΥ ΚΑΙ ΜΟΝΟ ΤΟ ΝΑ ΦΤΙΑΞΩ ΕΝΑΝ ΠΙΝΑΚΑ ΜΕ 10^10 ΘΕΣΕΙΣ Η ΝΑ ΑΡΧΙΣΩ ΤΙΣ ΑΥΘΑΙΡΕΣΙΕΣ ΜΕ ΤΑ ΜΙΝ ΚΑΙ ΜΑΧ
ΣΗΜΑΙΝΕΙ ΛΑΘΟΣ ΓΙΑ ΚΑΠΟΙΟΝ ΠΟΥ ΞΕΡΕΙ ΤΙ ΤΟΥ ΓΙΝΕΤΑΙ.ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΡΕΠΕΙ ΝΑ ΕΙΜΑΣΤΕ ΑΥΣΤΗΡΟΙ ΚΑΙ ΟΧΙ ΝΑ ΥΠΟ8ΕΤΟΥΜΕ ΚΑΙ ΝΑ ΝΟΜΙΖΟΥΜΕ.ΑΣ ΑΦΗΣΟΥΜΕ ΤΗΝ ΑΝ(ΣΥΝ8ΗΚΗ)ΤΟΤΕ ΝΑ ΤΟ ΚΑΝΕΙ ΑΥΤΟ ΓΙΑ ΜΑΣ ΧΑΧΑ

programmer

Παράθεση από: epsilonXi στις 12 Ιαν 2015, 11:01:54 ΜΜ
το πρόβλημα με την «αυθαίρετη» αρχικοποίηση του minimum είναι ότι όποια αρχική τιμή κι αν βάλεις, μπορεί σε κάποια ακραία και απίθανη περίπτωση να μην είναι αρκετά μεγάλη, ενώ όπως αναφέρθηκε στο maximum η αρχική «αυθαίρετη» τιμή είναι συνήθως εύλογη...

τι θα λέγατε λοιπόν ένα πρόβλημα εύρεσης minimum να μετατραπεί σε πρόβλημα εύρεσης maximum;

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

μαξ <-- 0
διάβασε χ,ψ
όσο χ<>0 ή ψ<>0 επανάλαβε
  α <-- τ_ρ(χ^2+ψ^2)
  αν 1/α > μαξ τότε
    μαξ <-- 1/α
  τέλος_αν
  διάβασε χ,ψ
τέλος_επανάληψης
εμφάνισε "η μικρότερη απόσταση που παρατηρήθηκε ήταν", 1/μαξ



ΔΕΝ ΙΣΧΥΕΙ ΠΑΝΤΑ ΑΥΤΟ ΠΟΥ ΛΕΣ.ΔΗΛΑΔΗ ΔΕΝ ΣΗΜΑΙΝΕΙ ΟΤΙ ΤΟ ΜΑΧΙΜΥΜ ΠΑΝΤΑ ΜΠΟΡΩ ΝΑ ΤΟ ΑΡΧΙΚΟΠΟΙΗΣΩ.ΑΝ ΤΟ ΠΡΟΒΛΗΜΑ ΖΗΤΑΓΕ ΤΗ ΜΕΓΑΛΥΤΕΡΗ ΑΠΟΣΤΑΣΗ ΠΟΥ ΠΑΡΑΤΗΡΗ8ΗΚΕ ΤΟΤΕ ΔΕΝ 8Α ΜΠΟΡΟΥΣΑ ΝΑ ΑΡΧΙΚΟΠΟΙΗΣΩ ΤΟ ΜΑΧ ΑΥ8ΕΡΑΙΤΑ.ΑΡΑ Η ΔΥΣΚΟΛΙΑ ΕΓΚΥΕΤΑΙ ΣΤΟ ΤΙ ΖΗΤΑΕΙ ΤΟ ΠΡΟΒΛΗΜΑ ΑΠΟ ΜΑΣ.ΑΝ ΖΗΤΑΓΕ ΜΕΓΑΛΥΤΕΡΗ ΑΠΟΣΤΑΣΗ ΕΠΡΕΠΕ ΝΑ ΔΙΑΒΑΣΩ ΕΞΩ ΤΗΝ ΠΡΩΤΗ ΑΠΟΣΤΑΣΗ ΝΑ ΒΑΛΩ ΤΟ ΜΑΧ ΕΚΕΙ ΚΑΙ ΕΠΕΙΤΑ ΝΑ ΚΑΝΩ ΤΙΣ ΕΠΑΝΑΛΗΨΕΙΣ ΜΟΥ.Η ΑΛΛΙΩΣ ΜΙΑ ΣΥΝ8ΗΚΗ ΑΝ ΜΕΣΑ ΣΤΗΝ ΟΣΟ ΠΟΥ ΕΛΕΓΧΕΙ ΑΝ ΕΙΜΑΣΤΕ ΣΤΗΝ ΠΡΩΤΗ ΕΠΑΝΑΛΗΨΗ ΩΣΤΕ ΝΑ ΑΡΧΙΚΟΠΟΙΗΣΩ ΤΟ ΜΑΧ ΕΚΕΙ ΜΕΣΑ ΚΑΙ ΣΤΙΣ ΥΠΟΛΟΙΠΕΣ ΕΠΑΝΑΛΗΨΕΙΣ ΣΥΝΕΧΙΖΩ ΚΑΝΟΝΙΚΑ

epsilonXi

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

και μια και συζητάμε, για τη μαξ απόσταση, γιατί να μη μπορεί να γίνει μια αυθαίρετη αρχικοποίηση;
-1 πχ

programmer

ναι στο συγκεκριμενο παραδειγμα γινεται.αλλα αν πχ ελεγε να φτιαξεις αλγοριθμο που θα διαβαζει αριθμους απο το χρηστη μεχρι να δωσει σαν απαντηση τη λεξη "τελος" και σου ελεγε βρες το μιν η το μαξ τν αριθμων που εδωσε ο χρηστης δεν θα μπορουσες να κανεις αρχικοποιηση .στο συγκεκριμενο παραδειγμα γινεται βεβαια