Όταν έθεσα το ερώτημα δεν πίστευα ότι θα ασχοληθείτε τόσο με αυτό.
Έτσι έφτιαξα μια απόδειξη για τ2>τ1 και β>0 (για να ειμαι σίγουρος) και το έστειλα στο στέκι. Ο τύπος που κατέληξα ήταν αυτός του Αντρέα, αλλά επειδή δε θυμόμουν πως ορίζεται το ακέραιο μέρος για αρνητικούς αριθμούς απέφυγα να ασχοληθώ με τη γενική περίπτωση. Τώρα όμως νομίζω ότι αξίζει τον κόπο.
Η πλήρης επίλυση του προβλήματος έχει ενδιαφέρον και ίσως είναι μια διδακτική άσκηση για το μάθημα. Σκεφτήτε ότι υπάρχει και η περίπτωση β=0 που δεν καλύπτεται από τον παραπάνω τύπο.
Παραθέτω παρακάτω μια απόδειξη του τύπου.
Ο μετρητής παίρνει τιμές
ι=τ1+ν*β (σχέση 1)
όπου ν φυσικός αριθμός (0,1,2,3...)
Έστω ττ η τελική τιμή μετρητή. Άρα το ττ σίγουρα μπορεί να γραφτεί στη μορφή
Ττ=τ1+κ*β (2)
για κάποιο κ. Προσπαθούμε να εντοπίσουμε αυτό το κ.
Διακρίνουμε 3 περιπτώσεις
Περίπτωση 1
β=0. Σε αυτή την περίπτωση ο βρόχος είναι ατέρμων.
Περίπτωση 2
β>0
Εδώ η εντολή διακόπτεται για τη μικρότερη τιμή του κ που επαληθεύει την
ττ>τ2. Η σχέση αυτή λύνεται ως προς κ και προκύπτει κ>(τ2-τ1)/β
Επειδή θέλουμε το μικρότερο δυνατό κ έχουμε
Αν τ2<τ1, το κλάσμα βγαίνει αρνητικό και άρα κ=0
Αν τ2>τ1 ισχύει
κ=Α_Μ((τ2-τ1)/β)+1 (3)
Περίπτωση 3
β<0
Εδώ η εντολή διακόπτεται για τη μικρότερη τιμή του κ που επαληθεύει την
Ττ<τ2. Η σχέση αυτή λύνεται ως προς κ και προκύπτει πάλι κ>(τ2-τ1)/β. Το β είναι αρνητικό και με τη διαίρεση αλλάζει η φορά της ανισότητας.
Επειδή θέλουμε το μικρότερο δυνατό κ έχουμε
Αν τ2>τ1, το κλάσμα βγαίνει αρνητικό και άρα κ=0
Αν τ2<τ1 ισχύει
κ=Α_Μ((τ2-τ1)/β)+1
Βλέπουμε λοιπόν ότι αν τα τα τ2-τ1 και β είναι ομόσημα τότε ισχύει ο τύπος
κ=Α_Μ((τ2-τ1)/β)+1
Αν τα τ2-τ1 και β είναι ετερόσημα τότε κ=0.
Αν θέλουμε όλα να καλύπτονται από τον ίδιο τύπο (3) μπορούμε να γράψουμε το κ σαν
κ/2+Α_Τ(κ)/2
Έτσι αν τι κ είναι θετικό μένει αμετάβλητο. Αν είναι αρνητικό τότε μηδενίζεται.
Ο ν στη σχέση (1) παίρνει τιμές 0,1,2...κ. Για κάθε τιμή του ν (εκτός την κ που είναι η τελευταία) προκαλείται επανάληψη του βρόχου. ʼρα το πλήθος των επαναλήψεων είναι κατά 1 μικρότερο από το σύνολο των διαφορετικών τιμών που παίρνει ο ν (που είναι κ+1). Επειδή ο ν ξεκινάει από 0 καταλήγουμε στο ότι το πλήθος των επαναλήψεων είναι κ.
Αντικαθιστώντας την (3) μέσα στη (2) βγαίνει η τελική τιμή του μετρητή
ττ=τ1+κ*β (4)
Νομίζω κάλυψα τις περιπτώσεις αλλά μπορεί να μου ξέφυγε κάτι. Το κοιτάτε και μου λέτε.
Θα μπορούσε να ζητηθεί αλγόριθμος που να του δίνουμε τ1, τ2 και β και να ζητάει το πλήθος των επαναλήψεων κα την τελική τιμή του μετρητή.
Αρχικά πίστευα ότι μια τέτοια άσκηση ίσως δεν είναι για την ΑΕΠΠ γιατί η δυσκολία είναι κυρίως μαθηματική ενώ δεν παρουσιάζει κάποια δυσκολία σχετικά με το χειρισμό των δομών επιλογής, ακολουθίας. Τελικά όμως πρέπει να διακριθούν περιπτώσεις και η άσκηση είναι διδακτική.
Αν ξεχάσουμε τον έλεγχο για β=0 παραβιάζουμε την καθοριστικότητα.
Επίσης η άσκηση θα τιμωρήσει τον μαθητή που θα βάλει την εντολή «Για» να τρέξει και μετά θα τυπώσει το μετρητή, αφού μπορεί να πέσει σε ατέρμονα βρόχο και να παραβιάσει ο αλγόριθμος την περατότητα.
Η μόνη μου επιφύλαξη, πέρα από τη δυσκολία, είναι αν τέτοια πράγματα πρέπει να συνοδεύονται από απόδειξη ή όχι. Η απόδειξη νομίζω ότι είναι αναγκαία για να είμαστε σίγουροι, αλλά από την άλλη μια απόδειξη τύπου είναι καθαρά μαθηματικό ζήτημα. Το συγκεκριμένο ερώτημα είναι γενικότερο από αυτή την άσκηση. Όταν πρέπει να εξάγουμε σχέσεις πρέπει να τις αποδεικνύουμε ή αρκεί η μέθοδος των δοκιμών μέχρι να βρούμε τον τύπο;
Τι λέτε;