Παίρνω το θάρρος να βάλω μια άσκηση για τους μαθητές που παρακολουθούν τα θέματα στο στέκι.
Πιστεύω οτι είναι μια καλή άσκηση η οποία έχει μια μικρή παγίδα που θα βοηθήσει τους μαθητές να καταλάβουν την διαφορά συνάρτησης απο διαδικασία.
Δεν ξέρω αν επιτρέπεται να αναρτήσω μια άσκηση ή όχι.
Η παρακάτω συνάρτηση, υπολογίζει το γινόμενο 2 ακεραίων αριθμών με την μέθοδο του πολλαπλασιασμού αλα ρώσικα.
Να μετατρέψετε την παρακάτω συνάρτηση σε Διαδικασία.
ΣΥΝΑΡΤΗΣΗ Αλγ1(α,β):ακέραια
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:α,β,Αθρ
Αρχή
Αθρ <-- 0
Όσο α > 0 επανάλαβε
Αν α mod 2 <> 0 τότε
Αθρ <-- Αθρ + β
Τέλος_αν
α <-- α div 2
β <--2 * β
Τέλος_επανάληψης
Αλγ1<--Αθρ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Φυσικά και μπορείς να αναρτήσεις ασκήσεις! Όμως η συνάρτηση έχει μερικά προβλήματα, εκτός αν ο σκοπός είναι τελικά να διορθωθεί η συνάρτηση και όχι η μετατροπή
Τι προβλήματα;
Σαν συνάρτηση θα έπρεπε να'χει τμήμα δηλώσεων και το Αλγ1 είναι το όνομα της συνάρτησης οπότε μόνο εκχώρηση μπορεί να γίνει σε αυτό και όχι να συμπεριληφθεί σε έκφραση (Αλγ1<-- Αλγ1 + β) :) εκτός αν περνούσες παραμέτρους και είχαμε αναδρομή
Θα το μαρτυρήσω: Φαντάζομαι πως η παγίδα έχει να κάνει με την επιστροφή των τιμών των παραμέτρων... Δεν λέω περισσότερα!
Ακριβώς αυτή είναι η παγίδα.
Παράθεση από: Stefevan στις 18 Μαΐου 2012, 09:33:49 ΜΜ
Σαν συνάρτηση θα έπρεπε να'χει τμήμα δηλώσεων και το Αλγ1 είναι το όνομα της συνάρτησης οπότε μόνο εκχώρηση μπορεί να γίνει σε αυτό και όχι να συμπεριληφθεί σε έκφραση (Αλγ1<-- Αλγ1 + β) :) εκτός αν περνούσες παραμέτρους και είχαμε αναδρομή
Έχεις δίκιο.
Το έγραψα πολύ πρόχειρα και δεν τα πρόσεξα αυτά. Λάθος μου.
Απλά ο στόχος μου ήταν άλλος.
Στο να παρατηρήσουν την διαφορά συμπεριφοράς των παραμέτρων στην συνάρτηση και στην διαδικασία.
Θα το διορθώσω άμεσα
το κατάλαβα ότι είναι πρόχειρα γραμμένο :P όντως το σημαντικό είναι αυτό που λέτε! :)
Πάντως κατά την προσωπική μου άποψη είναι ένα καλό θέμα που σε κάνει να καταλάβεις τις διαφορές.
Όπως πέρυσι που έβαλαν κάτι απλό αλλά πείραξαν τις παραμέτρους, έβαλαν ίδια ονόματα και διαφορετική σειρά και μπέρδεψαν κόσμο! :P υπάρχουν 2-3 πράγματα που αν ο μαθητής τα ξέρει δεν θα μπερδευτεί
πάντως νομίζω πως δεν θα έβρισκαν πολλοί τη λύση ωραία παγίδα :P
το συγκεκριμένο πρόβλημα εξετάζει περισσότερο κατανόηση εννοιών ή παρατηρητικότητα?
Διότι άλλο να το δώσουμε σε τάξη και άλλο σε διαγώνισμα όπου ο χρόνος είναι πιεσμένος.
Ο στόχος είναι οι μονάδες που θα χάσει ένας μαθητής να αφορουν έλλειμα κατανόησης και όχι κάτι που δεν είδε από βιασύνη.
Εδώ δηλαδή ο μαθητής που δεν θα δει ότι οι παράμετροι αλλάζουν δεν σημαίνει ότι δεν έχει καταλάβει ότι αλλάζουν.
Επίσης νομίζω ότι παρόμοιο θέμα υπάρχει και στο φετινό διαγώνισμα των καθηγητητών της Χίου στο θέμα Β2.
Εκεί όμως τους ζητάνε τι θα εμφανιστεί, και τους προϊδεάζουν ότι κάτι δεν πάει καλά, οπότε δεν μπορεί να χαρακτηριστεί σαν παγίδα.
πιστεύω πως δεν έχει να κάνει με την παρατηρητικότητα! έχει να κάνει με το πόσο έτοιμος είσαι να φτιάξεις ότι σου ζητήσουν. αν έχεις μάθει μόνο τα βασικά δύσκολα θα πάει το μυαλό σου παραπέρα.
Δες τη διατύπωση στο αντίστοιχο θέμα των καθηγητών της Χίου και θα καταλάβεις τι εννοώ.
Εξετάζουν ακριβώς το ίδιο πράγμα χωρίς όμως να βάζουν παγίδες. Τα ερωτήματα είναι έτσι τοποθετημένα ώστε να προετοιμάζουν τον μαθητή και να ελέγχουν καλά την κατανόηση σε βασικές έννοιες.
δίκιο έχεις! ΔΜ2 :)
Θεωρώ οτι απλά η συγκεκριμένη άσκηση είναι πολύ καλή άσκηση προετοιμασίας.
Στις ασκήσεις προετοιμασίας δεν είναι καλό να βάζουμε κάποιες παγίδες;
εγώ πιστεύω ναι, για να μην το βρεις ξαφνικά στις εξετάσεις και τα χάσεις
Κατά τη γνώμη μου και αφού δεν γνωρίζουμε αν στο κυρίως πρόγραμμα χρησιμοποιούνται οι μεταβλητές α, β μετά την κλήση της συνάρτησης δεν είναι κακό να τις αφήσουμε να αλλάξουν με την διαδικασία...
ή με άλλα λόγια καλό είναι να δοθεί και το κυρίως πρόγραμμα ώστε να ξέρουν τα παιδιά πως χρησιμοποιείται η συνάρτηση.
Παρόλα αυτά μια καλή άσκηση.
Παράθεση από: ggfiogos στις 20 Μαΐου 2012, 09:39:28 ΜΜ
Κατά τη γνώμη μου και αφού δεν γνωρίζουμε αν στο κυρίως πρόγραμμα χρησιμοποιούνται οι μεταβλητές α, β μετά την κλήση της συνάρτησης δεν είναι κακό να τις αφήσουμε να αλλάξουν με την διαδικασία...
ή με άλλα λόγια καλό είναι να δοθεί και το κυρίως πρόγραμμα ώστε να ξέρουν τα παιδιά πως χρησιμοποιείται η συνάρτηση.
Παρόλα αυτά μια καλή άσκηση.
Θεωρώ οτι άσχετα με το αν στο κυρίως πρόγραμμα οι παράμετροι χρησιμοποιούνται ή όχι, μετά την επιστροφή απο το υποπρόγραμμα, δεν είναι σωστό να αλλάζουν οι τιμές τους.
Αφού η συνάρτηση δεν τις επιστρέφει έτσι και η αντίστοιχη διαδικασία θα πρέπει, παρόλο που τις επιστρέφει να έχουν την ίδια τιμή, οπότε στην ουσία να είναι σαν να μην τις επιστρέφει όπως κάνει και η συνάρτηση.
αναλόγως τι θέλουμε ... σε ένα πρόγραμμα πχ. με καταθέσεις και αναλήψεις από ΑΤΜ θα θέλαμε να αλλάζουν οι τιμές των πραγματικών παραμέτρων. πχ μετά από μια κατάθεση ... ΔΙΑΔΙΚΑΣΙΑ ΚΑΤΑΘΕΣΗ(ΥΠΟΛΟΙΠΟ, ΠΟΣΟ_ΚΑΤΑΘΕΣΗΣ)... το ΥΠΟΛΟΙΠΟ θέλουμε να αλλάξει έτσι κ αλλιώς ::)