Αποστολέας Θέμα: ερώτηση σε δομή Επανάληψης 'Για'...  (Αναγνώστηκε 5989 φορές)

drac

  • Νέος
  • *
  • Μηνύματα: 7
ερώτηση σε δομή Επανάληψης 'Για'...
« στις: 19 Ιαν 2010, 04:27:00 μμ »
Είναι σωστό σε μια δομή επανάληψης 'Για' να χρησιμοποιήσουμε 'Με_βήμα 0' ?? Και ο μετρητής ν' αλλάζει μέσα στην επανάληψη;;
π.χ.:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50 ΜΕ_ΒΗΜΑ 0
    ......
    εντολές
    ......
    i <- i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

toufeki

  • Επισκέπτης
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #1 στις: 19 Ιαν 2010, 04:55:17 μμ »
...με βήμα 0 δε πάμε πουθενά πατριώτη. >:D

..άσε που δεν ικανοποιείται και το κριτήριο της περατότητας.....



drac

  • Νέος
  • *
  • Μηνύματα: 7
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #2 στις: 19 Ιαν 2010, 05:05:47 μμ »
Συμφωνώ εγώ...απλά λέω γιατί αυτή η γλωσσομάθεια το δέχεται: http://spinet.gr/glossomatheia/download/

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #3 στις: 19 Ιαν 2010, 05:10:35 μμ »
Παράθεση
...με βήμα 0 δε πάμε πουθενά πατριώτη

Δείτε και αυτό (αν δεν το έχετε δει ήδη)
https://alkisg.mysch.gr/steki/index.php?topic=1797.15
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

toufeki

  • Επισκέπτης
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #4 στις: 19 Ιαν 2010, 05:26:07 μμ »
...διάβασα προσεκτικά τον διάλογο και ξέρετε τι πέρασε από το νου μου; (όχι ένα βλήμα να όπως έλεγε και ο Ψάλτης σε μια ταινία..) 
Ένας άπειρος διάλογος περί άπειρου που υπήρχε υπάρχει και θα υπάρχει.
Και καλά κάνει βέβαια και υπάρχει αλλιώς δεν θα υπήρχε επιστήμη .....

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2788
  • Πύργος Ηλείας
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #5 στις: 19 Ιαν 2010, 08:48:58 μμ »
Είναι σωστό σε μια δομή επανάληψης 'Για' να χρησιμοποιήσουμε 'Με_βήμα 0' ?? Και ο μετρητής ν' αλλάζει μέσα στην επανάληψη;;
π.χ.:

ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 50 ΜΕ_ΒΗΜΑ 0
    ......
    εντολές
    ......
    i <- i + 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Θα λέγαμε καλύτερα πως δεν είναι "πολιτικώς ορθό"!

toufeki

  • Επισκέπτης
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #6 στις: 19 Ιαν 2010, 09:10:02 μμ »
...α ρε Διπλωμάτη!

Γρήγορα στο Διπλωματικό Σώμα.
Χωρίς καθυστέρηση. >:D

andreas_p

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1018
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #7 στις: 19 Ιαν 2010, 09:11:59 μμ »
Το

i <- i + 2


όπου  i  η μεταβλητή ελέγχου της  Για,  καλό είναι να αποφεύγεται.

Κάνε το ίδιο με Όσο !

drac

  • Νέος
  • *
  • Μηνύματα: 7
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #8 στις: 24 Ιαν 2010, 02:32:15 πμ »
Δεν υπάρχει μια ξεκάθαρη άποψη για το 'με_βημα 0';;
ok...για την περίπτωση που δεν αλλάζει ο μετρητής μέσα στην επανάληψη είναι ξεκάθαρο ότι είναι λάθος, αφού δεν αλλάζει ο μετρητής....
Αλλά ρωτάω για την περίπτωση που αλλάζει ο μετρητής μέσα στην επανάληψη... τότε;;

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2788
  • Πύργος Ηλείας
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #9 στις: 24 Ιαν 2010, 10:46:57 πμ »
Μα σε αυτό αναφερόμαστε!

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #10 στις: 25 Ιαν 2010, 09:13:35 πμ »
O drac αναφέρεται σε τελείως διαφορετικό θέμα από αυτό που συζητούσαμε την άλλη φορά. Μιλάει για την αλλαγή του μετρητή μέσα στη "Για". ΑΥτό πρέπει να αποφεύγεται γιατί δίνει δυανάγνωστο κώδικα. Είναι θέμα σύμβασης μεταξύ προγραμματιστών για να καταλαβαίνει ο ένας τι κάνει ο άλλος (όπως πχ αποφεύφγουμε και τη goto). Δε σημαίνει ότι η αλλαγή του μετρητή δίνει λάθος αποτελέσματα ή ότι δεν υποστηρίζεται. Επειδή το μάθημα είναι εισαγωγικό και τα παιδιά τώρα παίρνουν τις πρώτες τους αρχές καλό είναι να τις παίρνουν σωστά γιατί διαφορετικά μπορεί να αποχτήσουν κακές συνήθειες που θα δυσκολευτούν να τις κόψουν.

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

Ας μου πει κάποιος πόσες φορές θα εκτελεστούν οι παρακάτω βρόχοι:

Βρόχος 1
Για ι από 1 μέχρι 10 με_βήμα 0
  εντολές
Τέλος επανάληψης
 
Βρόχος 2
Για ι από 10 μέχρι 1 με_βήμα 0
  εντολές
Τέλος επανάληψης
 
Θέλω να μου πει ποια είναι η συνθήκη που ελέγχεται και βγαίνει αληθής επ΄άπειρον.

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2788
  • Πύργος Ηλείας
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #11 στις: 25 Ιαν 2010, 10:35:07 πμ »
...

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

Ας μου πει κάποιος πόσες φορές θα εκτελεστούν οι παρακάτω βρόχοι:

Βρόχος 1
Για ι από 1 μέχρι 10 με_βήμα 0
  εντολές
Τέλος επανάληψης
 
Βρόχος 2
Για ι από 10 μέχρι 1 με_βήμα 0
  εντολές
Τέλος επανάληψης
 
Θέλω να μου πει ποια είναι η συνθήκη που ελέγχεται και βγαίνει αληθής επ΄άπειρον.

Παρόλο που ίσως δεν έχει και μεγάλη αξία για τους μαθητές να επιμένουμε πάνω σε αυτό το σημείο (για να μην έχουμε και βαθμολογικά ατυχήματα!), όμως κι εγώ από τη μεριά μου ποτέ δεν δέχτηκα κάτι τέτοιο. Είχα καταλήξει σε αυτό: https://alkisg.mysch.gr/steki/index.php?topic=1797.msg13024#msg13024 (Εικασία 3!)

Δηλαδή στο 1ο παράδειγμά σου θα έχουμε άπειρες επαναλήψεις και στο 2ο θα έχουμε 0 επαναλήψεις... !!!

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #12 στις: 25 Ιαν 2010, 11:47:54 πμ »
Αυτό σημαίνει τα εξής:

όταν το βήμα είναι θετικό  η μετατροπή είναι:
ι<-αρχική_τιμή
Όσο ι<=τελική_τιμή επανάλαβε  ! προσοχή στον συγκριτικό τελεστή
   εντολές
   ι<- ι+β
   Τέλος_επανάληψης

όταν το βήμα είναι αρνητικό η μετατροπή είναι:
ι<-αρχική_τιμή
Όσο ι>=τελική_τιμή επανάλαβε
   εντολές
   ι<- ι+β ! το β είναι αρνητικό και τελικά έχουμε αφαίρεση
Τέλος_επανάληψης

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

Βρόχος 1
ι<-1
Όσο ι<=10 επανάλαβε
   εντολές
   ι<-ι+0
Τέλος_επανάληψης

Βρόχος 2
ι<-10
Όσο ι<=1 επανάλαβε
   εντολές
   ι<-ι+0
Τέλος_επανάληψης

Εδώ έχουμε μια περίπτωση που η ΓΙΑ με βήμα 0 δεν δίνει άπειρες επαναλήψεις.

Όπως είναι αναμενόμενο, εφόσον ο τελεστής προκύπτει από το πρόσημο του βήματος και όχι από το αν η αρχική τιμή είναι μεγαλύτερη ή μικρότερη από την τελική τιμή, χρησιμοποιήσαμε και στις 2 περιπτώσεις το βήματος 0 τον ίδιο συγκριτικό τελεστή που είναι ο "<="

Η αυθαιρεσία είναι η εξής: Με ποιο δικαίωμα βάζουμε στο βήμα 0 τον τελεστή "<=" που μπαίνει στο θετικό βήμα και όχι τον τελεστή ">=" που βάζουμε στο αρνητικό; Το 0 δεν είναι ούτε θετικός ούτε αρνητικός και δείχνουμε κάποιου είδους προτίμηση στους θετικούς. Δεν αντιμετωπίζουμε θετικούς και αρνητικούς με συμμετρικό τρόπο

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

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2788
  • Πύργος Ηλείας
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #13 στις: 26 Ιαν 2010, 11:39:23 πμ »
Η αυθαιρεσία είναι η εξής: Με ποιο δικαίωμα βάζουμε στο βήμα 0 τον τελεστή "<=" που μπαίνει στο θετικό βήμα και όχι τον τελεστή ">=" που βάζουμε στο αρνητικό; Το 0 δεν είναι ούτε θετικός ούτε αρνητικός και δείχνουμε κάποιου είδους προτίμηση στους θετικούς. Δεν αντιμετωπίζουμε θετικούς και αρνητικούς με συμμετρικό τρόπο[/b]

Αν δείχναμε προτίμηση στους αρνητικούς πάλι θα είχαμε το ίδιο πρόβλημα αλλά από την ανάποδη!

Αλλά έτσι κι αλλιώς πάντα προτιμάμε τους θετικούς για τον λόγο ακριβώς ότι είναι θετικοί !!!  ;) Δεν το βλέπω ως αδικία αλλά ως μία προτίμηση... Απ' την άλλη ... (αν και το ανακάλυψα εκ των υστέρων!) ... δεν είναι και τόσο αυθαίρετο... :

Quiz: Από ποιας γλώσσας το help έχω αντιγράψει το εξής: (?)

Value*                        Loop executes if
Positive or 0              counter <= end
Negative                    counter >= end


* To Value αναφέρεται στο βήμα της Για ... και το end στο μέχρι...
« Τελευταία τροποποίηση: 26 Ιαν 2010, 11:55:11 πμ από Νίκος Αδαμόπουλος »

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3185
  • to Iterate is human to Recurse divine
Απ: ερώτηση σε δομή Επανάληψης 'Για'...
« Απάντηση #14 στις: 26 Ιαν 2010, 11:44:43 πμ »

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

Για ι από 1 μέχρι 3 με βήμα -1

θα σου πουν άπειρες, αφού ξεκινάμε από το 1 και μειώνουμε μέχρι να φτάσουμε στο 3. Αυτός ο τρόπος που έχει επιλέξει το βιβλίο (καθηγητή) αντιβαίνει όχι μόνο στην κοινή λογική αλλά και στην διδακτική πρακτική
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr