Μετατροπή από μία εντολή επανάληψης σε άλλη

Ξεκίνησε από Σπύρος Δουκάκης, 04 Απρ 2011, 03:03:14 ΜΜ

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

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

Στο 5ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής, στα Ιωάννινα (1-3 Απριλίου 2011) προσπαθήσαμε να παρουσιάσουμε μία ολοκληρωμένη προσέγγιση για την μετατροπή ενός αλγόριθμου ή ενός τμήματος αλγόριθμου από μία εντολή επανάληψης σε μία άλλη, εφόσον αυτή είναι εφικτή.

Πέρδος, Α., Δουκάκης, Σ., & Γιαννοπούλου, N. (2011). Αλγοριθμική προσέγγιση της μετατροπής από μία εντολή επανάληψης σε άλλη, Πρακτικά 5ου Πανελληνίου Συνεδρίου Καθηγητών Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης με θέμα: «Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση - Ο ρόλος του καθηγητή Πληροφορικής στο νέο σχολείο», 1-3 Απριλίου 2011, Ιωάννινα, σελ. 164-173.

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

Το σημαντικότερο είναι η αλγοριθμική προσέγγιση μετατροπής της Όσο...επανάλαβε σε Για...από...μέχρι όταν αυτή η μετατροπή είναι δυνατή.

Μπορείτε να διαβάσετε ή να μεταφορτώσετε την εργασία που παρουσιάστηκε στο συνέδριο από τον σύνδεσμο http://wp.me/pykbG-2b ή το συνημμένο.

dream

#1
Καλησπέρα ,

Προκειμένου να παρουσιαστεί καλύτερα και πληρέστερα (τολμώ να πω) το δύσκολό για τους μαθητές θέμα της μετατροπής τμήματος αλγόριθμού από Όσο σε Για επισυνάπτω και την προτεινόμενη μεθοδολογία που παρουσίασα στο 5ο Συνέδριο Διδακτική της Πληροφορικής, Αθήνα, Απρίλιος 2010 .

Η μεθοδολογία που επισυνάπτω είναι ολοκληρωμένη και περιλαμβάνει παραδείγματα αξιοποίησης-επαλήθευσης  της  προτεινομενης  μεθοδολογίας. .

Με εκτίμηση,
Δρίμτζιας Βασίλης

Καθηγητής Πληροφορικής 1ο ΓΕΛ Ηγουμενίτσας

nikipap

διαβασα τις 2 εργασιεσ.
μπορει καποιοσ να μου εξηγησει γιατι για παραδειγμα προσθετουμε +0.01 αν καποιο απο τα τρια τ1, τ2, τ3 εχει δεκαδικα ψηφια.
δηλαδη θελω το λογο για να μπορεσω να το εξηγησω στους μαθητες

ευχαριστω

dream

Αγαπητέ nikipap,

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

μεταβλητή←τιμή1
Όσο μεταβλητή  < τιμή2 επανάλαβε           !αντίστοιχα ισχύουν και αν συνθήκη της Όσο είναι : μεταβλητή  > τιμή2
        Εντολές   
        μεταβλητή←μεταβλητή + τιμή3
Τέλος_επανάληψης

Θα πρέπει επίσης να ισχύουν τα εξής :
(i)τιμή1 < τιμή2  , προκειμένου οι εντολές να εκτελούνται τουλάχιστον μία φορά.
(ii)τιμή3 > 0 , προκείμενου να μη δημιουργηθεί ατέρμονη επανάληψη.

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


1ος Τρόπος : Σε μια τέτοια περίπτωση αυτό που λέω στους μαθητές μου (που είναι πολύ εύκολο να το κατανοήσουν) είναι να βρούνε για ποια τιμή του μετρητή επανάληψης επαναλαμβάνονται οι εντολές της Όσο για τελευταία φορά και αυτή την τιμή να βάλουν ως τελική (ως τιμή2 δηλαδή) στην εντολή Για .

ή εναλλακτικά

2ος Τρόπος:
•   Αν τιμή1,τιμή2,τιμή3 είναι ακέραιοι αριθμοί, τότε απλά μειώνουμε (κατ' ελάχιστο) την τιμή2 κατά 1 .
•   Αν  τιμή1 ή/και τιμή2 ή/και τιμή3 είναι πραγματικός αριθμός , τότε απλά μειώνουμε την τιμή2 κατά (κατ' ελάχιστο)  0,1 αν υπάρχει πραγματικός αριθμός με μόνο ένα μόνο δεκαδικό ψηφίο. Είτε μειώνουμε την τιμή2 κατά (κατ' ελάχιστο)  0,01 αν υπάρχει πραγματικός αριθμός με δύο δεκαδικά ψηφία κ.ο.κ.

Θα δώσω παραδείγματα επεξήγησης του 2ου τρόπου , αν και πιστεύω ότι ο 1ος τρόπος είναι πολύ πιο κατανοητός για τους μαθητές.

Παράδειγμα 1ο : Η τιμή1 και η τιμή2 και η τιμή3 είναι Ακέραιοι αριθμοί
Υ←τιμή1
Όσο Υ <  τιμή2 επανάλαβε
         Εμφάνισε Υ
         Υ← Υ + τιμή3
Τέλος_επανάληψης

Και έχουμε :
(α) τιμή1= 2 , τιμή2=9 και τιμή3=1

Ισοδύναμη μετατροπή σε Για :

Για Υ από 2 μέχρι 8
Εμφάνισε Υ
Τέλος_επανάληψης

(β) τιμή1= 2 τιμή2=21 και τιμή3=4

Ισοδύναμη μετατροπή σε Για :

Για Υ από 2 μέχρι 18 με_βήμα 4
Εμφάνισε Υ
Τέλος_επανάληψης

Σημείωση : Μπορούμε να βάλουμε ως τιμή2 οποιαδήποτε τιμή που ανήκει στο διάστημα [18..21]

Αν δηλαδή τιμη1.τιμή2, τιμή3 είναι Ακέραιοι αριθμοί τότε μειώνοντας την  τιμή1 κατά (κατ' ελάχιστο) 1 εξασφαλίζουμε σίγουρά τον ίδιο αριθμό επαναλήψεων στο τμήμα της Όσο με αυτό της Για.


Παράδειγμα 2ο : Κάποια από τις τιμές : τιμή1 , τιμή2 ,τιμή3   ή/και όλες είναι Πραγματικοί αριθμοί.

Τότε βλέπουμε ποια τιμή έχει τα περισσότερα σημαντικά ψηφία μετά την υποδιαστολή πχ. είναι η τιμή2=3,893 και πόσα είναι αυτά και το μόνο που χρειάζεται για να εξασφαλίσουμε τον ίδιο αριθμό επαναλήψεων στο τμήμα της Για με το αντίστοιχο της Όσο είναι να μειώσουμε την τιμή2 κατά (κατ' ελάχιστο) 0,001 στο παράδειγμα μας. 

Πιο αναλυτικά :

Υ←τιμή1
Όσο Υ <  τιμή2 επανάλαβε
         Εμφάνισε Υ
         Υ← Υ + τιμή3
Τέλος_επανάληψης

Και
(α) τιμή1= 2 , τιμή2=9 και τιμή3=0,1

Ισοδύναμη μετατροπή σε Για :
Για Υ από 2 μέχρι 8,9
Εμφάνισε Υ
Τέλος_επανάληψης

(β) τιμή1= 2 τιμή2=9,95 και τιμή3=0,5

Ισοδύναμη μετατροπή σε Για :
Για Υ από 2 μέχρι 9,94 με_βήμα 0,5
Εμφάνισε Υ
Τέλος_επανάληψης
Σημείωση : Μπορούμε να βάλουμε ως τιμή2 οποιαδήποτε τιμή που ανήκει στο διάστημα [9,5  .. 9,99]


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

Για παράδειγμα :
Υ←7,65
Όσο Υ <  584,47 επανάλαβε
         Εμφάνισε Υ
         Υ← Υ + 0,12
Τέλος_επανάληψης

Τότε αν μειώσουμε την τιμή2 κατά -0,01 τότε εξασφαλίζουμε τον ίδιο αριθμό επαναλήψεων σίγουρα και δεν χρειάζεται να υπολογίσουμε την τιμή για την οποία επαναλαμβάνονται για τελευταία φορά οι εντολές της ¨Όσο που στο συγκεκριμένο παράδειγμα είναι χρονοβόρα η διαδικασία υπολογισμού.

Για Υ από 7,65μέχρι 584,46 με_βήμα 0,12
         Εμφάνισε Υ
Τέλος_επανάληψης


Δρίμτζιας Βασίλης
Καθηγητής Πληροφορικής , 1ο ΓΕΛ Ηγουμενίτσας
users.sch.gr/vdrimtzias

nikipap

Αρα δεν υπαρχει καποια αποδειξη στον δευτερο τροπο. Είναι τυποποιηση και οχι σκέψη...
Εντάξει, αλλά δεν μου αρέσει να μαθαίνουν κανόνες. Ο 1ος τρόπος πως προκύπτει; Δηλαδή πως μετρας;

By the way ειμαι γυναικα

Νίκη

Αθανάσιος Πέρδος

Παράθεση από: nikipap στις 07 Απρ 2011, 02:18:44 ΜΜ
διαβασα τις 2 εργασιεσ.
μπορει καποιοσ να μου εξηγησει γιατι για παραδειγμα προσθετουμε +0.01 αν καποιο απο τα τρια τ1, τ2, τ3 εχει δεκαδικα ψηφια.
δηλαδη θελω το λογο για να μπορεσω να το εξηγησω στους μαθητες

ευχαριστω


Δεν υπάρχει υπάρχει κάποιος λόγος ή κάποια απόδειξη. Απλά παρατηρείς τις αριθμητικές τιμές και αφού γνωρίζεις την τελική την οποία δεν πρέπει να φτάσει, την αλλάζεις κατά  0,1 ή 0,01 ανάλογα με τα πόσα σημαντικά ψηφία έχει κάποιο δεκαδικό μέρος. Δεν είναι μεθοδολογία αλλά παρατήρηση γνωστών αριθμητικών τιμών. Είναι ένας "μπακάλικος" και εύκολος τρόπος για να θέσεις μια τελική τιμή στην Εντολή Για.
Για αυτό το λόγο ο παραπάνω τρόπος αποτυγχάνει να δώσει λύση αν τεθεί θέμα της παρακάτω μορφής.

Διάβασε Α, Μ
μτ <-- Α
Όσο μτ < Μ επανάλαβε
    Εμφάνισε μτ
    μτ <-- μτ + 2
Τέλος_επανάληψης

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

@dream
Περιμένω να δω την καλύτερη και πληρέστερη μεθοδολογία που λύνει το παραπάνω θέμα.

nikipap

Άρα, απόδειξη υπαρχει. Αυτο που προτεινει ο dream, ειναι μια υποπερίπτωση της περίπτωσης και αξιοποιείται μόνο αν ξερουμε τις τιμες των τ1 τ2 τ3.
Μαζεύοντας όλα οσα ειπωθηκαν, με την αποδειξη απο την εργασια του Περδου, μπορούμε να βρούμε την τελευταία τιμή για την οποία παίζει η Όσο και αυτη βαζουμε στην Για. Με την προσεγγιση του Δριμτζια οποια τιμη ειναι μεσα στο ευρος μπορει να μπει...
Στην εργασια στο συνεδριο της Πεκαπ, αναφερουν οτι η εργασια του Δριμτζα είναι λάθος. Βλέπω αυτη που εχει αναρτησει ο Δριμτζας εδω και δεν εχει το λαθος που αναφερει η εργασία... Έχει αλλαξει κάτι;

mikeg

Συγγνώμη αλλά τι νόημα έχουν όλα αυτά. Ποιο το νόημα στο να προσπαθείς να βγάλεις μεθοδολογίες για μετατροπή από μια δομή σε μια άλλη?
Στις άλλες γλώσσες που υπάρχει η break και όλοι χρησιμοποιούν μια δομή
for i=1 to N
  if (...) then
     break;

άρα τερματίζουν τον βρόχο όποτε θέλουν, δεν είναι όλα αυτά ανούσια?

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

Παράθεση από: nikipap στις 09 Απρ 2011, 09:45:52 ΠΜ
Άρα, απόδειξη υπαρχει. Αυτο που προτεινει ο dream, ειναι μια υποπερίπτωση της περίπτωσης και αξιοποιείται μόνο αν ξερουμε τις τιμες των τ1 τ2 τ3.
Μαζεύοντας όλα οσα ειπωθηκαν, με την αποδειξη απο την εργασια του Περδου, μπορούμε να βρούμε την τελευταία τιμή για την οποία παίζει η Όσο και αυτη βαζουμε στην Για. Με την προσεγγιση του Δριμτζια οποια τιμη ειναι μεσα στο ευρος μπορει να μπει...
Στην εργασια στο συνεδριο της Πεκαπ, αναφερουν οτι η εργασια του Δριμτζα είναι λάθος. Βλέπω αυτη που εχει αναρτησει ο Δριμτζας εδω και δεν εχει το λαθος που αναφερει η εργασία... Έχει αλλαξει κάτι;

http://dide.ilei.sch.gr/keplinet/education/docs/syn_dp2010_drimtzias.pdf

... κι αν σε ενδιαφέρει γενικότερα: http://dide.ilei.sch.gr/keplinet/education/articles-alg.php

dream

#9
Επειδή διαβάζω διάφορα και προκείμενου να ξεδιαλύνω τις επιχειρούμενες εντυπώσεις θα περιγράψω εν συντομία τη μεθοδολογία μου :

Αν η Όσο έχει την ακόλουθη Γενική Μορφή :

μεταβλητή←τιμή1
Όσο μεταβλητή  ≤  {ή ≥ } τιμή2 επανάλαβε
        Εντολές   
        μεταβλητή←μεταβλητή + τιμή3
Τέλος_επανάληψης

Και επίσης πρέπει να ισχύουν τα εξής :
(i)τιμή1   ≤ {ή ≥ }   τιμή2  , προκειμένου οι εντολές να εκτελούνται τουλάχιστον μία φορά.
(ii)τιμή3  > 0 {ή < }   , προκείμενου να μη δημιουργηθεί ατέρμονη επανάληψη.

Η ισοδύναμη μετατροπή σε Για είναι  :
Για μεταβλητή από τιμή1 μέχρι τιμή2 με_βήμα  τιμή3
       Εντολές
Τέλος_επανάληψης

Είναι η απλή περίπτωση μετατροπής.

Υπάρχει περίπτωση όμως να έχουμε 3 διαφοροποιήσεις στη μορφή της  Όσο, που τις ονομάζω 3 Διαφοροποιήσεις της Γενική Μορφής και είναι  :

1η Διαφοροποίηση συμβαίνει όταν λείπει το ίσον στη συνθήκη της Όσο.  Δηλαδή έχουμε : μεταβλητή  <  {ή > } τιμή2 .
Τρόπος αντιμετώπισης :
θα πρέπει να βρούμε ποια είναι η τιμή για την οποία επαναλαμβάνονται για τελευταία φορά οι εντολές της Όσο και να τη θέσουμε ως τιμή2 στην εντολή Για. Αυτό μπορεί να υπολογίζεται εύκολα (Βλέπε παράδειγμα 1 στο τέλος του μηνύματος) ή μπορεί να υπολογίζεται πιο δύσκολα (Βλέπε παράδειγμα 2 στο τέλος του μηνύματος). Και μπορούμε να βρούμε την τιμή αυτή χρησιμοποιώντας έναν τρόπο από τους ακόλουθους:
(α) Παρατηρώντας τις αριθμητικές τιμές του τμήματος της Όσο και βρίσκοντας για ποια τιμή επαναλαμβάνονται για τελευταία φορά οι εντολές της Όσο
(β) Αν τιμή1,τιμή2,τιμή3 είναι ακέραιοι αριθμοί, τότε απλά μειώνουμε (κατ' ελάχιστο) την τιμή2 κατά 1 .
Αν  τιμή1 ή/και τιμή2 ή/και τιμή3 είναι πραγματικός αριθμός , τότε απλά μειώνουμε την τιμή2 κατά (κατ' ελάχιστο)  0,1 αν υπάρχει πραγματικός αριθμός με μόνο ένα μόνο δεκαδικό ψηφίο. Είτε μειώνουμε την τιμή2 κατά (κατ' ελάχιστο)  0,01 αν υπάρχει πραγματικός αριθμός με δύο δεκαδικά ψηφία κ.ο.κ.
(γ) Μπορούμε να χρησιμοποιήσουμε τον τύπο υπολογισμού τελικής τιμής του κ. Πέδρου.


2η Διαφοροποίηση, συμβαίνει όταν στο τμήμα εντολών της Όσο, η εντολή με την οποία αυξάνεται η τιμή του μετρητή επανάληψης κατά την τιμή του βήματος δεν είναι η τελευταία εντολή πριν το Τέλος_επαναλήψης (η συνθήκη της Όσο είναι : μεταβλητή  ≤  {ή ≥ } τιμή2 )
Και παράλληλα διακρίνουμε τις εξής περιπτώσεις :

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

(β)ο μετρητής επανάληψης συμμετέχει σε κάποια από τις επόμενες εντολές. Δεν επηρεάζει όμως και κάποια από τις προηγούμενες εντολές.
Τρόπος αντιμετώπισης :
Προσθέτουμε στην τιμή1 και στην τιμή2 ,  την τιμή3 (δηλαδή την τιμή του βήματος). Δηλαδή η ισοδύναμη μετατροπή είναι:
Για μεταβλητή από (τιμή1 + τιμή3) μέχρι (τιμή2 + τιμή3) με_βήμα τιμή3
       Εντολές
Τέλος_επανάληψης

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

Για νέα_μεταβλητή από τιμή1 μέχρι τιμή2 με_βήμα τιμή3
        Εντολές   
        μεταβλητή←μεταβλητή + τιμή3 
        Εντολές
Τέλος_επανάληψης

3η Διαφοροποίηση συμβαίνει, όταν δεν υπάρχει η περίπτωση ίσον στη συνθήκη της Όσο και επίσης η εντολή με την οποία αυξάνεται η τιμή του μετρητή επανάληψης κατά την τιμή του βήματος δεν είναι η τελευταία εντολή πριν το Τέλος_επαναλήψης. Δηλαδή συνδυάζονται και η 1η και η 2η Διαφοροποίηση.
Τρόπος αντιμετώπισης
Σε αυτή την περίπτωση, μετατρέπουμε την Όσο σε Για αντιμετωπίζοντας την 1η διαφοροποίηση όπως αναλύσαμε και στη συνέχεια αντιμετωπίζουμε τη 2η διαφοροποίηση.

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

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


Με εκτίμηση,
Δρίμτζιας Βασίλης



Υ.Γ.

1.  Συναδελφικές ερωτήσεις – απορίες

Προς κ. Πέδρο,

Στο παρακάτω παράδειγμα , στο 1ο παράδειγμα τι θα λέγατε στους μαθητές σας: Να χρησιμοποιήσουν τον τύπο : κ = Α_Μ((τ2-τ1)/β) , στη συνέχεια να βρουνε την τελική τιμή από τον τύπο : τπ2=τ1+κ*β και αν η τελική τιμή τπ2=τ2 τότε κάντε τπ2=τ1+κ*β-β.
Και αν σας ρωτούσαν "Μα γιατί Κύριε  να κάνουμε όλα αυτά . Η τελική τιμή βρίσκεται εύκολα , είναι η τιμή 788"
Τι θα τους λέγατε ?

Ότι είναι για «μπακάλικο» ..., όπως γράψατε παραπάνω.

Και αν έχουν να αντιμετωπίσουν άσκηση όπως το 2ο παράδειγμα, τότε πάλι θα χρησιμοποιήσουν τον τύπο για να βρουν την τιμή του κ, μετά την τιμή τπ2 και αν είναι τπ2=τ2 τότε τπ2=τ1+κ*β-β.
Έχετε σκεφθεί τι πράξεις θα πρέπει να κάνουν ?
Έχετε σκεφθεί , σας έχει περάσει καθόλου από το μυαλό σας , ότι οι μαθητές σας μπορεί να μην  καταλαβαίνουν γιατί κάνουν τις πράξεις αυτές , ότι μπορεί το μόνο που θα καταλαβαίνουν είναι ότι τις κάνουν γιατί έτσι το θέλετε εσείς.

Και για ποιο λόγο να μην βρουν κατευθείαν την τελική τιμή μειώνοντας απλά κατά 0,01 την τιμή2.

Αφού όπως παραπάνω λέτε
«Απλά παρατηρείς τις αριθμητικές τιμές και αφού γνωρίζεις την τελική την οποία δεν πρέπει να φτάσει, την αλλάζεις κατά  0,1 ή 0,01 ανάλογα με τα πόσα σημαντικά ψηφία έχει κάποιο δεκαδικό μέρος. Δεν είναι μεθοδολογία αλλά παρατήρηση γνωστών αριθμητικών τιμών. Είναι ένας "μπακάλικος" και εύκολος τρόπος για να θέσεις μια τελική τιμή στην Εντολή Για. »

Λέτε είναι εύκολος τρόπος για να θέσεις μια τελική τιμή στην Εντολή Για.
Τι σας ενοχλεί μετά, άραγε ?

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


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

Μπορείτε σας παρακαλώ να μας πείτε ποια είναι η λύση που βαθμολογήσατε ή θα βαθμολογούσατε ως σωστή τότε , αν ήσασταν βαθμολογητής στις Πανελλήνιες.

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


Σας ευχαριστώ εκ των προτέρων.



Παραδείγματα που αναφέρονται στο παραπάνω κείμενο

Παράδειγμα 1ο :
Χ←2
Υ← 6
Όσο Υ < 789 επανάλαβε
         Χ← Χ +2
         Υ← Υ + 2
Τέλος_επανάληψης

Παράδειγμα 2ο :
Υ←7,6
Όσο Υ <  584,47 επανάλαβε
         Εμφάνισε Υ
         Υ← Υ + 0,12
Τέλος_επανάληψης


Αθανάσιος Πέρδος

Παράθεση από: mikeg στις 09 Απρ 2011, 10:00:10 ΠΜ
Συγγνώμη αλλά τι νόημα έχουν όλα αυτά. Ποιο το νόημα στο να προσπαθείς να βγάλεις μεθοδολογίες για μετατροπή από μια δομή σε μια άλλη?
Στις άλλες γλώσσες που υπάρχει η break και όλοι χρησιμοποιούν μια δομή
for i=1 to N
  if (...) then
     break;

άρα τερματίζουν τον βρόχο όποτε θέλουν, δεν είναι όλα αυτά ανούσια?

Δηλαδή εσύ διδάσκεις στους μαθητές σου που δίνουν πανελλαδικά το μάθημα το εξής:
Για μτ από Α μέχρι Μ με_βήμα 2
  Αν μτ = Μ τότε
      Έξοδος ! ή όπως αλλιώς θέλεις πες το
  αλλιώς 
      Εμφάνισε μτ
  Τέλος_αν
Τέλος_επανάληψης

Ξέρεις στον προγραμματισμό υπάρχει και το συντακτικό κάθε γλώσσας που πρέπει να ακολουθηθεί.
Αλλιώς χειρίζεται η basic που γράφεις, την εντολή for, αλλιώς η C++.
Αν πας όμως να τις διδάξεις παρόλο που δεν είναι δημιουργήματα φυσικών και μαθηματικών όπως αναφέρεις σε άλλο μήνυμα σου για την ΑΕΠΠ, θα πρέπει να τονίσεις τη διαφορά.
Άρα στο συγκεκριμένο μάθημα ασχολούμαστε με το συντακτικό όπως το περιγράφει το διδακτικό πακέτο. Ως καθηγητές πρέπει να προετοιμάσουμε τους μαθητές να γράψουν όσο καλύτερα γίνεται. Κατά την άποψη μου λοιπόν αν και έχω πτυχίο τμήματος φυσικής, έχει νόημα η συγκεκριμένη συζήτηση.


Αθανάσιος Πέρδος

Κύριε Δρίμτζια λέγομαι Πέρδος και όχι Πέδρος.
Αν και "μπακάλης" μιας και με χαρακτηρίζετε έτσι, χαίρομαι που η μεθοδολογία μας (είμαστε τρεις που τη γράψαμε) τυγχάνει αναφοράς σε μία καλύτερη και πληρέστερη παρουσίαση.
Παράθεση από: dream στις 09 Απρ 2011, 06:01:47 ΜΜ
[(γ) Μπορούμε να χρησιμοποιήσουμε τον τύπο υπολογισμού τελικής τιμής του κ. Πέδρου.

Τώρα όσον αφορά εμένα, το συγκεκριμένο θέμα, επειδή δεν κλήθηκα να βαθμολογήσω στις επαναληπτικές, θα το βαθμολόγούσα θεωρώντας ότι οι αριθμοί είναι ακέραιοι. Άλλωστε και η ΚΕΕ έτσι τους θεώρησε με τη λύση της παρόλο που ήταν λάθος ακόμη και για ακέραιους αριθμούς. Διαφορετικά ούτε εγώ μπορούσα να δώσω λύση τότε. Λύση για την γενική περίπτωση δόθηκε φέτος με την συγκεκριμένη απόδειξη. Για αυτό εξηγούσα αρκετά χρόνια στους μαθητές μου ότι ήταν αστοχία το θέμα της ΚΕΕ και ότι δεν έχω βρει αλλά ούτε έχω δεί λύση για πραγματικούς. Αρκετά χρόνια μετά, βέβαια δημοσιεύτηκε μια προτεινόμενη λύση στο στέκι με διαφορετική λογική από αυτή που προτείνουμε αλλά μάλλον θα τη χαρακτήριζα ad hoc και όχι γενική μεθοδολογία. Αν ψάξετε θα την βρείτε. Όσον αφορά τις γνωστές αριθμητικές τιμές ,τόσα χρόνια με τον ίδιο τρόπο δουλεύαμε και δουλεύουμε κύριε Δρίμτζια.  Και ναι πολύ πριν δημοσιεύσετε την εργασία σας τους έλεγα, αλλά και συνεχίζω να τους λέω ότι είναι ένας "μπακάλικος" τρόπος για να δώσουμε λύση, από τη στιγμή που δεν είμαι σε θέση να το εξηγήσω με απόδειξη αλλά μόνο με αριθμητικό παράδειγμα.
Αν γράφατε στο πρώτο μήνυμα σας με τον τρόπο που κλείνετε το συγκεκριμένο πριν από τον Υ.Γ. και όχι αλαζονικά σχετικά με πληρέστερη και καλύτερη εργασία που θα παρουσιάσετε, όταν στην ΕΤΠΕ αλλά και στο site σας μέχρι τις 2 Απριλίου η ανάρτηση για την οποία περηφανεύεστε περιείχε σαφέστατα λάθη, δεν θα ανταλλάσαμε τέτοιου είδους μηνύματα αλλά θα διεξάγονταν ένας γόνιμος διάλογος σχετικά με το πως θα μπορέσουμε να βοηθήσουμε τους μαθητές.

Υ.Γ.
Προς Κ. Δρίμτζια
Θεωρώ τιμή μου που δούλευα από τα 10 μέχρι τα 20 σε μπακάλικο τα καλοκαίρια για να βγάλω το χαρτζηλικι μου.       

 

nikipap

#12
Συνάδελφοι έλεος για το ποια είναι καλύτερη εργασία!
Αυτό που με θυμώνει ακόμα περισσότερο είναι ότι η εργασία του Δρίμτζια που δημοσιεύτηκε στο συνεδριο έχει λάθος.
Παρόλα αυτά όπως μας είπε άλλα πραγματα διδάσκει στους μαθητές του και άλλα δημοσίευσε στο συνέδριο...Απαράδεκτο...

Αθανάσιος Πέρδος

Παράθεση από: nikipap στις 11 Απρ 2011, 09:03:45 ΠΜ
Συνάδελφοι έλεος για το ποια είναι καλύτερη εργασία!
Αυτό που με θυμώνει ακόμα περισσότερο είναι ότι η εργασία του Δρίμτζια που δημοσιεύτηκε στο συνεδριο έχει λάθος.
Παρόλα αυτά όπως μας είπε άλλα πραγματα διδάσκει στους μαθητές του και άλλα δημοσίευσε στο συνέδριο...Απαράδεκτο...


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

MARIA THEOHARI

Στην αλγοριθμική προσέγγιση της μετατροπής από μία εντολή επανάληψης σε άλλη , για τη μετατροπή από
ΟΣΟ σε ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ υπάρχει η μεθοδολογία:
Αν συνθήκη τότε
  Αρχή_επανάληψης
         Εντολές
  Μέχρις_ότου όχι(συνθήκη)
Τέλος_αν

Θα μπορούσε ισοδύναμα να χρησιμοποιηθεί το:
Αρχή_επανάληψης
    Αν συνθήκη τότε
           Εντολές
    Τέλος_αν
Μέχρις_ότου όχι(συνθήκη)
ή είναι λάθος το ότι μπαίνει μια φορά στην αρχή_επανάληψης ακόμα και αν δεν εκτελεί κάτι;

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

Το ερώτημά σου έχει συζητηθεί και στο παρελθόν.

Αν θέλεις δες το https://alkisg.mysch.gr/steki/index.php?topic=1142.0

Παράθεση από: MARIA THEOHARI στις 12 Απρ 2011, 09:41:10 ΠΜ
Στην αλγοριθμική προσέγγιση της μετατροπής από μία εντολή επανάληψης σε άλλη , για τη μετατροπή από
ΟΣΟ σε ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ υπάρχει η μεθοδολογία:
Αν συνθήκη τότε
  Αρχή_επανάληψης
         Εντολές
  Μέχρις_ότου όχι(συνθήκη)
Τέλος_αν

Θα μπορούσε ισοδύναμα να χρησιμοποιηθεί το:
Αρχή_επανάληψης
    Αν συνθήκη τότε
           Εντολές
    Τέλος_αν
Μέχρις_ότου όχι(συνθήκη)
ή είναι λάθος το ότι μπαίνει μια φορά στην αρχή_επανάληψης ακόμα και αν δεν εκτελεί κάτι;

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

#16
Επανήλθε στο μυαλό μου σε κάποια φάση το θέμα της μετατροπής από την Όσο σε Για στην περίπτωση που ο συγκριτικός τελεστής είναι αυστηρά μικρότερος ή αυστηρά μεγαλύτερος και διαπίστωσα το εξής:

Σε περίπτωση αυστηρής ανισότητας (> ή <) όταν οι τ1, τ2 και β έχουν συγκεκριμένη αριθμητική τιμή, η τελική τιμή της εντολής Για, για την οποία προκύπτει ισοδύναμος αλγόριθμος, μπορεί να τεθεί απλά ως εξής:

Αν β >(<) 0 τότε τ2 = τ2 -(+) 10

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

Με άλλα λόγια δεν είναι απαραίτητος όλος αυτός ο διαχωρισμός σε περιπτώσεις (ακέραιων και πραγματικών ή προσθέτω ή αφαιρώ ένα ή 0,1 ή 0,01 ανάλογα με το αν... ), όπως έχει ειπωθεί. Όλη η ιστορία είναι μία γραμμή.

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

Στην περίπτωση που οι τ1, τ2 και β δεν έχουν συγκεκριμένη αριθμητική τιμή τότε:

Βήμα 1:   Υπολογισμός των φορών που αλλάζει η μεταβλητή κατά το βήμα για να πλησιάσει ή να φτάσει την τελική τιμή, όχι όμως να την ξεπεράσει,
                στη γενική μορφή της εντολής Όσο...επανάλαβε: κ = Α_Μ((τ2 - τ1) / β)
Βήμα 2:   Εύρεση της τελευταίας τιμής που λαμβάνει πραγματικά η μεταβλητή της εντολής Όσο...επανάλαβε στη γενική της μορφή: τπ2 = τ1 + κ * β
Βήμα 3:   Εύρεση της πραγματικά τελικής τιμής αν στην περίπτωση της αυστηρής ανισότητας ισχύει τπ2 = τ2, από τον τύπο τπ2 = τ1 + κ * β - β

ή αλγοριθμικά

κ ← Α_Μ((τ2 - τ1) / β)
τπ2 ← τ1 + κ * β
Αν τπ2 = τ2 τότε τπ2 ← τπ2 - β

gpapargi

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

Στα πλαίσια της Γ λυκείου και των πανελληνίων εξετάσεων, τι ακριβώς ζητάμε όταν θέλουμε μετατροπή μια δομή επανάληψης σε μια άλλη;

1) Ζητάμε οι 2 κώδικες να έχουν την ίδια έξοδο για την ίδια είσοδο;
2) Ζητάμε οι 2 κώδικες να έχουν την ίδια έξοδο για την ίδια είσοδο και την ίδια πολυπλοκότητα;
3) Ζητάμε οι 2 κώδικες να κάνουν ακριβώς τα ίδια πράγματα με ακριβώς την ίδια σειρά;
4) Ζητάμε κάτι άλλο; Αν ναι, τι ακριβώς;

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

Αθανάσιος Πέρδος

1) Με βάση τους διαγωνισμούς πληροφορικής ισοδύναμα τμήματα αλγορίθμου είναι αυτά που για ίδια είσοδο δίνουν ίδια έξοδο. Βέβαια εκεί εξετάζεται και ο χρόνος εκτέλεσης κατί που στο πλαίσιο της ΑΕΠΠ δεν είναι εφικτό.
2) Η πολυπλοκότητα είναι εκτός ύλης άρα δεν μπορούμε να μίλάμε σε τέτοια βάση.
3) Είναι αδύνατον να γίνουν όλες οι μετατροπές και να εκτελούνται οι εντολές με την ίδια σειρά αφού είναι διαφορετικός ο τρόπος λειτουργίας τους.
Μάλλον αν κρίνουμε και από τα θέματα των πανελλαδικών, αυτό που ζητάμε είναι να υλοποιηθεί ένα τμήμα αλγορίθμου με κάποια άλλη εντολή επανάληψης, εφόσον αυτό είναι εφικτό, ώστε να προκύπτουν ίδια αποτελέσματα για ίδια δεδομένα.Καλό όμως είναι, μιας και τέτοιου είδους θέματα εξετάζονται συχνά πυκνά, να υπάρξει ένα διδακτικό συμβόλαιο το οποίο να ξεκαθαρίζει τι ακριβώς ζητάμε από τους μαθητές. Ή η εκφώνηση να είναι έτσι δομημένη που να μην αφήνει περίπτωση παρερμηνείας.
Νομίζω ότι μια διευκρύνηση από το Π.Ι. θα έλυνε το θέμα.
 

gpapargi

Για το 1 συμφωνώ κι εγώ. Να και ένα παράδειγμα:

Ας πούμε ότι η εκφώνηση δίνει τη σειριακή αναζήτηση με Όσο και ζητάει μετατροπή σε Μέχρις_ότου. Ο μαθητής γράφει τη δυαδική (αντί για τη σειριακή αναζήτηση) με μέχρις_ότου. Έχουμε ίδια έξοδο για την ίδια είσοδο. Αλλά είναι φανερό ότι ο μαθητής δεν ελέγχθηκε σε αυτό που θέλαμε. Άρα μια τέτοια προσέγγιση δε μας κάνει για το λύκειο. Φυσικά για τους διαγωνισμούς δεν υπάρχει πρόβλημα να πούμε: «αντί για τη σειριακή αναζήτηση έκανα ισοδύναμο αλγόριθμο που τρέχει πιο γρήγορα». Εκεί τους κάνει. Εμάς όμως δε μας κάνει.

Για το 2 επίσης συμφωνώ. Έχω κι εκεί ένα αντιπαράδειγμα που είχα αναφέρει και παλιότερα: Σε πίνακα 2 διαστάσεων να δώσεις μέσο όρο στήλης σαρώνοντας κατά στήλη (με όσο) και ο μαθητής να γυρίσει μέσο όρο στήλης σαρώνοντας κατά γραμμή (με μέχρις)ότου). Πάλι δεν έκανε αυτό που θέλουμε.

Το 3 θέλει κουβέντα. Σε κάποιες περιπτώσεις είναι δυνατόν να εκτελούνται τα ίδια βήματα και με την ίδια σειρά, όπως πχ κάθε μετατροπή μεταξύ Όσο και μέχρις_ότου. Σε τέτοιες περιπτώσεις ορίζεται η μετατροπή με αυτό τον τρόπο και τέτοιες μόνο ασκήσεις πρέπει να ζητάμε.

Πχ
Όσο συνθήκη επανάλαβε
  Ομάδα εντολών
Τέλος_επανάληψης

Αν συνθήκη τότε
  Αρχή_επανάληψης
    Ομάδα εντολών
  Μέχρις_ότου όχι (συνθήκη)
Τέλος_αν

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

Δεν είναι ίδια η μετατροπή της Όσο με αλλαγή μετρητή στη μέση σε Για. Μπορείς να δώσεις ίδια έξοδο για ίδια είσοδο αλλά έχεις αλλοιώσει τη σειρά.

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

Αθανάσιος Πέρδος

Αν όμως δοθεί το παρακάτω

χ<--3
όσο χ<=8 επανάλαβε
   Εμφάνισε χ
   χ <-- χ + 2
Τέλος_επανάληψης

και δοθεί ως μετατροπή

χ<--3
Αρχή_επανάληψης
Εμφάνισε χ
   χ <-- χ + 2
Μέχρις_ότου όχι(χ<=8)

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

Άρα μέσα στο πλαίσιο του μαθήματος όπως έχει οριστεί μέσα στο διδακτικό πακέτο και με βάση τις διευκρινήσεις του Π.Ι. εγώ θα πρότεινα να καταλήξουμε στην παραδοχή "ίδια είσοδος - ίδια έξοδος"


gpapargi

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

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

Το βασικό είναι να δοθεί ορισμός που ανταποκρίνεται σε αυτό που αισθανόμαστε ότι θέλουμε να εξετάσουμε που είναι ουσιαστικά το «να κάνεις τα ίδια με την άλλη εντολή». Το να βάλεις την παραπανίσια συνθήκη δεν του κάνει και κακό του μαθητή. Ίσα ίσα που θα καταλάβει και καλύτερα τη λειτουργία των εντολών. Το μόνο κακό είναι ότι έρχεται σε αντίθεση με πράγματα που θεωρούμε δεδομένα. Και τελικά ο κώδικας με την παραπανίσια εντολή είναι και πιο σωστός αφού αυτό ακριβώς γίνεται.  Δηλαδή αν θέλεις να κάνεις ακριβώς τα ίδια πράγματα, όντως η παραπανίσια εντολή δεν είναι παραπανίσια αλλά αναγκαία. Χωρίς βέβαια αυτό να σημαίνει ότι πρόκειται για σοβαρό σφάλμα.

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

Αθανάσιος Πέρδος

Το παράδειγμα που δίνεις είναι ιδιαίτερη περίπτωση και δεν ξέρω και τι ακριβώς θα εξετάζαμε αν δοθεί.
Έστω όμως ότι δίνονταν τέτοιο παράδειγμα. Μπορούμε να πάμε σε διατύπωση της μορφής  «να κάνεις τα ίδια με την άλλη εντολή» και συμπληρώνω εγώ "χωρίς όμως να αλλάξεις τη λογική του τμήματος αλγορίθμου μέσα στο σώμα της επανάληψης".
Εξάλλου σε ένα θέμα μετατροπής θα πρέπει να μας ενδιαφέρει πως συντάσεται η δομή επανάληψης και όχι τι κάνει ο αλγόριθμος που υλοποιείται με τη χρήση της επανάληψης.
Νομίζω ότι η κατάλληλη εκφώνηση μπορεί να ξεκαθαρίσει τι ακριβώς ζητάμε σε μία μετατροπή από μία εντολή επανάληψης σε μία άλλη.
Διαφορετικά και όπως έχουν δοθεί οι εκφωνήσεις μέχρι τώρα στις πανελλαδικές προτείνω "ίδια είσοδος - ίδια έξοδος".

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

gpapargi

Την εργασία την είδα (βέβαια όχι με πολλή λεπτομέρεια). Ξεκαθαρίζει ότι ασχολείται με το ίδια είσοδος-ίδια έξοδος, οπότε στο πλαίσιο αυτό δεν υπάρχει πρόβλημα.
Παρένθεση:
(Από ότι είδα ασχολείται και με περιπτώσεις μετατροπής που η Όσο με γνήσια ανισότητα γίνεται Για. Εδώ αλλάζει η συνθήκη δηλαδή αλλάζουν τα ακριβή βήματα. Η Όσο ελέγχει πχ αν χ<10 και η Για ελέγχει αν χ<=10. Επίσης υπάρχουν και περιπτώσεις που δε θυμάμαι αν αναφέρονται στην εργασία, αλλά υπάρχουν σε ασκήσεις που κυκλοφορούν και έχω λύσει τέτοιες που ο μετρητής της όσο αλλάζει στη μέση)

Ξαναλέω όμως ότι η εργασία κινείται στο πλαίσιο «ίδια είσοδος ίδια έξοδος» οπότε με αυτή την παραδοχή δεν υπάρχει κάποια διαφωνία.

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

Για να δεις με ένα παράδειγμα τι σου λέω φαντάσου πχ ότι δίνεται κώδικας που υπολογίζει το άθροισμα 100 όρων της ακολουθίας 1/ν γραμμένος σε όσο με το ν να ξεκινάει από 1 και να φτάνει στο 100. Στη μετατροπή σε μέχρις_ότου ο μαθητής γράφει την εντολή με το ν να ξεκινάει από το 100 και να φτάνει στο 1.

Σίγουρα η «λογική» δεν άλλαξε, αλλά πάλι ο μαθητής δεν έκανε αυτό που θέλουμε.

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

Αθανάσιος Πέρδος

Όσον αφορά την εργασία προτείνει τρόπο μετατροπής για όλες τις δυνατές περιπτώσεις αλλά δεν είναι αυτό τώρα το θέμα μας.
Η φράση "λογική του αλγορίθμου" ούτε εμένα μου αρέσει. Έχεις δίκαιο μάλλον μία αναφορά στα βήματα και τη σειρά τους θα ήταν καλύτερη διατύπωση.
Τελικά όμως καταλήγω σε  δύο πράγματα Ή μια διατύπωση της ακόλουθης μορφής "Να μετατραπεί το τμήμα αλγορίθμου ώστε αντί της εντολής Για να χρησιμοποιηθεί η εντολή Μέχρι_ότου." και από εκεί και πέρα αφού κάθε απάντηση επιστημονικά τεκμηριωμένη είναι αποδεκτή ας γράψει ο μαθητής όπως νομίζει τις υπόλοιπές εντολές αρκεί να δίνουν ο αρχικός αλγόριθμος και αυτός με την μετατροπή τα ίδια αποτελέσματα, ή αυτός που βάζει τα θέματα ας ξεκαθαρίσει με μία σαφέστατη διατύπωση τι ακριβώς θέλει να δεί κατά την μετατροπή.
Άρα μάλλον συμφωνούμε ότι μέσω της διατύπωσης μπορούμε να ορίσουμε ξεκάθαρα όπως λές, τι ακριβώς αξιολογούμε.