Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Δομή επανάληψης => Γ΄ Λυκείου => Εντολή ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ => Μήνυμα ξεκίνησε από: zwoula στις 26 Ιαν 2010, 11:45:58 ΠΜ

Τίτλος: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: zwoula στις 26 Ιαν 2010, 11:45:58 ΠΜ
Κώδικας [Επιλογή]
  Για i απο 1 μεχρι 10
διαβασε β[i]
τελος_επαναληψης

εμφανισε β[i]
\

        :(  :-
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Νίκος Αδαμόπουλος στις 26 Ιαν 2010, 11:50:25 ΠΜ
Εσύ τι πιστεύεις ότι θα κάνει;
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: evry στις 26 Ιαν 2010, 11:53:22 ΠΜ
Θα εμφανίζει το ίδιο με αυτό

 
Κώδικας [Επιλογή]
Για i από 1 μέχρι 10
       Διάβασε β[i]
   Τέλος_Επανάληψης
   Εμφάνισε β[i-1]


Zwoula στο διόρθωσα γιατί οι αγκύλες φαίνονται μόνο μέσα σε κώδικα (είναι το κάγκελο στις επιλογές)

Αυτό που εσύ ζητάς είναι λάθος γιατί όταν βγει έξω το i θα είναι 11 και δεν υπάρχει τέτοιο στοιχείο αν ο πίνακας είναι 10 θέσεων
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Νίκος Αδαμόπουλος στις 26 Ιαν 2010, 12:00:45 ΜΜ
Επ! Ζαβολιά, το άλλαξες! Δεν είχες βάλει πίνακα! Έτσι, ναι, πράγματι: Είναι μια καλή ερώτηση!!!

Η γνώμη μου είναι ότι πλέον έτσι περνάς την λεπτή κόκκινη γραμμή! Δεν ορίζεται πουθενά το τι γίνεται με τον μετρητή έξω απλό την Για...

Κάποιοι θα .... .... μα τι .... τι στο καλό ...... συνέχεια θα το αλλάζεις;;;; Αποφάσισε και άστο λίγο σταθερό!!!  :D :D :D  ;D ;D ;D
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: evry στις 26 Ιαν 2010, 12:07:49 ΜΜ
Νίκο εγώ το άλλαξα, γιατί οι αγκύλες δεν φαίνονταν

Παράθεση από: Νίκος Αδαμόπουλος στις 26 Ιαν 2010, 12:00:45 ΜΜ
Επ! Ζαβολιά, το άλλαξες! Δεν είχες βάλει πίνακα! Έτσι, ναι, πράγματι: Είναι μια καλή ερώτηση!!!

Η γνώμη μου είναι ότι πλέον έτσι περνάς την λεπτή κόκκινη γραμμή! Δεν ορίζεται πουθενά το τι γίνεται με τον μετρητή έξω απλό την Για...

Κάποιοι θα .... .... μα τι .... τι στο καλό ...... συνέχεια θα το αλλάζεις;;;; Αποφάσισε και άστο λίγο σταθερό!!!  :D :D :D  ;D ;D ;D
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: zwoula στις 26 Ιαν 2010, 01:03:06 ΜΜ
αρα τι θα γινει? δεν ικανοποιει καποιο κριτηριο? αναλογα με ποιο κεφαλαιο του βιβλιου θα απαντησουμε??? καποιο κεφαλαιο υποστηριζει οτι θα εμφανιστει το β10 οποτε ολα μια χαρα και καποιο αλλο οτι θα πρεπει να εμφανισει το β11 και εκει υπαρχει προβλημα... αρα?
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: gthal στις 26 Ιαν 2010, 01:12:41 ΜΜ
πού ακριβώς υποστηρίζεται ότι θα εμφανιστεί το β[10] ?
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Λάμπρος Μπουκουβάλας στις 26 Ιαν 2010, 01:28:24 ΜΜ
Παράθεση από: zwoula στις 26 Ιαν 2010, 11:45:58 ΠΜ
Κώδικας [Επιλογή]
  Για i απο 1 μεχρι 10
διαβασε β[i]
τελος_επαναληψης

εμφανισε β[i]
\

        :(  :-

αν ο πίνακάς σου είναι 10 θέσεων, τότε ι=11 μετά την ολοκλήρωση της επανάληψης (τρέξε το σε διάγραμμα ροής και θα το δεις).
Επομένως θα επιχειρήσει να εμφανίσει το β[11], το οποίο δεν υπάρχει.

πρόκειται για λογικό λάθος. runtime error...
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: zwoula στις 29 Ιαν 2010, 01:27:46 ΜΜ
στο κεφαλαιο 2 αφηνει να εννοειθει οτι η τελευταια τιμη του i θα ειναι το 10 ενω στο κεφαλαιο 8 λεει οτι η τελευταια τιμη που θα παρει θα ειναι το 11
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: andreas_p στις 29 Ιαν 2010, 02:56:42 ΜΜ
Παράθεση από: zwoula στις 29 Ιαν 2010, 01:27:46 ΜΜ
στο κεφαλαιο 2 αφηνει να εννοειθει οτι η τελευταια τιμη του i θα ειναι το 10 ενω στο κεφαλαιο 8 λεει οτι η τελευταια τιμη που θα παρει θα ειναι το 11

Να εννοηθεί ...

ΟΧΙ.   

Σελ. 43  Σχ. 2.6 , όταν βγαίνει από την επανάληψη, i=101  !!!
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: zwoula στις 29 Ιαν 2010, 05:26:53 ΜΜ
εμενα λεει τελικη τιμη (=100)
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: xaidi στις 29 Ιαν 2010, 08:37:15 ΜΜ
Μετά το πέρας της επανάληψης ο μετρητής έχει τιμή ίση με 11.

Β[i-1] είναι το σωστό ώστε να εμφανίσει το τελευταίο κελί του πίνακα....

Αν το i παρέμενε 10 δεν θα έβγαινε από την επανάληψη, παίρνει την επόμενη τιμή ώστε να τελειώσει η ρουτίνα
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: gthal στις 29 Ιαν 2010, 10:28:54 ΜΜ
Παράθεση από: zwoula στις 29 Ιαν 2010, 05:26:53 ΜΜ
εμενα λεει τελικη τιμη (=100)
εννοεί την τελευταία τιμή για την οποία θα εκτελεστεί η επανάληψη
όταν το i γίνει 101 η επανάληψη δεν εκτελείται και βγαίνουμε από το βρόχο (άρα τελειώνει με τιμή 101)
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: P.Tsiotakis στις 30 Ιαν 2010, 07:51:16 ΜΜ
αν και είναι σωστές οι απαντήσεις, το πάω ένα βήμα πίσω και αναφέρω

οτι ΔΕ ΜΑΣ ΕΝΔΙΑΦΕΡΕΙ (δεν πρέπει τουλάνιστον) τι τιμή έχει ο μετρητής του Για, μετά το πέρας της επανάληψης
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: gthal στις 30 Ιαν 2010, 09:37:19 ΜΜ
Κι εγώ Παναγιώτη απαντώντας τα παραπάνω θυμήθηκα την ημερίδα όπου συζητήθηκε κάτι σχετικό.
Δε συμφωνώ όμως απόλυτα.
Σίγουρα μας ενδιαφέρει με τι τιμή τερματίζει μια ισοδύναμη ΟΣΟ, έτσι δεν είναι ; Διότι σε κάποια προβλήματα ίσως να θέλουμε να συνεχίσουμε από εκεί και κάτω. (Απλά στη ΓΙΑ το "από κει και κάτω" το ξέρουμε εκ των προτέρων: τελική τιμή +1, γιαυτό υποθέτω δε μας ενδιαφέρει για την ΓΙΑ)
Οπότε ποιο το overhead στο να καταλάβει ο μαθητής ότι όμοια λειτουργεί και η ΓΙΑ;
Κατά τη γνώμη μου είναι ζήτημα κατανόησης ότι η ΓΙΑ είναι μια ΟΣΟ. Και ότι δεν είναι μια μαγική εντολή που "προβλέπει" πότε θα σταματήσει και όποιος το πιστεύει αυτό (ή τον αφήνουμε να το πιστεύει)παρεκκλίνει από την αλγοριθμική σκέψη !
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: pgrontas στις 31 Ιαν 2010, 04:24:36 ΜΜ
Η άποψη μου είναι  ότι δεν μπορούμε να πούμε ότι δεν μας ενδιαφέρει, γιατί θα χαλάσουμε την θέωρηση που έχει ο μαθητής για τις μεταβλητές.

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

Σαφώς η καλύτερη λύση είναι αυτή που ακολουθείται στις πιο πρόσφατες παραλλαγές της C (C++, Java, C#), όπου η μεταβλητή - μετρητής στον βρόχο, μπορεί να δηλωθεί τοπικά στο μπλοκ του βρόχου και να μην είναι ορατή από τα υπόλοιπα μπλοκ. Αλλά...
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: evry στις 31 Ιαν 2010, 04:32:58 ΜΜ
  Υπάρχουν περιπτώσεις που μας ενδιαφέρει η τιμή του μετρητή μετά το τέλος της επανάληψης. Για παράδειγμα στην συγχώνευση για να ξέρουμε που σταματήσαμε.
   Η άποψη αυτή περί της τιμής του μετρητή μετά τη Για εντάσσεται σε ένα μεγαλύτερο πλαίσιο στρεβλώσεων που έχει δημιουργήσει το μάθημα και ο τρόπος που διδάσκεται του στυλ "Η για είναι η προτιμότερη δομή για προκαθορισμένο πλήθος επαναλήψεων", "δεν αλλάζουμε τον μετρητή μέσα στη Για γιατί είναι λάθος (και όχι κακή πρακτική)" κα.
  Τέτοιοι κανόνες ίσως να μας βοηθούν στη διδασκαλία σε κάποιες περιπτώσεις αλλά δεν βασίζονται πάνω σε κανένα απολύτως επιστημονικό κριτήριο.
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Λάμπρος Μπουκουβάλας στις 01 Φεβ 2010, 10:07:42 ΠΜ
Παράθεση από: Τσιωτάκης Παναγιώτης στις 30 Ιαν 2010, 07:51:16 ΜΜ
αν και είναι σωστές οι απαντήσεις, το πάω ένα βήμα πίσω και αναφέρω

οτι ΔΕ ΜΑΣ ΕΝΔΙΑΦΕΡΕΙ (δεν πρέπει τουλάνιστον) τι τιμή έχει ο μετρητής του Για, μετά το πέρας της επανάληψης

Μερικές φορές μας ενδιαφέρει. Και σε πανελλαδικές έχουμε δει και ίσως το δούμε ξανά.
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: P.Tsiotakis στις 01 Φεβ 2010, 04:35:11 ΜΜ
όταν η Αλεξάνδρα ΨΑλτίδου είπε στην ημερίδα επι λέξει: "Δεν πρέπει να ενδιαφέρει κανέναν η τιμή του Για μετά την επανάληψη", μονολόγησα "Ναι, αλλά πρέπει να το ξέει και ο κανένας"
εννοώντας τον θεματοδότη των εξετάσεων.

Πάντως Ευρυπίδη, ωραίο το παράδειγμά σου, αλλά μπορείς να πάρεις μετρητές και να μη χρειάζεται ο μετρητής του Για!!
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Laertis στις 01 Φεβ 2010, 07:18:59 ΜΜ
Παράθεση από: Τσιωτάκης Παναγιώτης στις 01 Φεβ 2010, 04:35:11 ΜΜ
Πάντως Ευρυπίδη, ωραίο το παράδειγμά σου, αλλά μπορείς να πάρεις μετρητές και να μη χρειάζεται ο μετρητής του Για!!

Χμμ οπότε κακώς η μεταβλητή στην εντολή Για λέγεται μετρητής ...
Πάντα υπάρχουν τρόποι να βρει λύση κανείς ...
Αυτό είναι σαν να έχεις ένα ρολόι που χάνει ή τρέχει και αντί να προσπαθήσεις να το φτιάξεις για να βλέπεις τη σωστή ώρα ή να το πετάξεις και να πάρεις άλλο, βάζεις ταυτόχρονα ένα άλλο δίπλα σε αυτό στον τοίχο να μετρά την κανονική ώρα και τα βλέπεις και τα 2.
Ώρα Τόκιο ο μετρητής Για, ώρα Ελλάδας ο εμβόλιμος μετρητής  :)
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Σπύρος Δουκάκης στις 02 Φεβ 2010, 11:20:31 ΠΜ
Η μεταβλητή της Για αποτελεί βοηθητική μεταβλητή και υπάρχει μόνο για να "περιορίζει" τη δομή Για, ώστε να εκτελείται συγκεκριμένο αριθμό επαναλήψεων.

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

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

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

ΣΔ

ΥΓ: Είναι κρίμα να γινόμαστε μεταγλωττιστές


Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Σπύρος Δουκάκης στις 13 Απρ 2010, 12:07:30 ΠΜ
Και να που τα πράγματα παραμένουν μπερδεμένα και ο Παναγιώτης καλώς μονολογεί και φαίνεται ότι θα πρέπει πάλι να λέμε τα ίδια και τα ίδια... παρότι είναι γνωστά, έχουν ειπωθεί, έχουν συζητηθεί αλλά...

Ήδη το ανέφερε ο Ευριπίδης για το διαγώνισμα ΟΕΦΕ 2010...

Πρόκειται για ένα ακόμα μοναδικό θέμα...

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 3
  Β[Ι] <- ΕΠΙΤΥΧΙΑ (Χ)
  Χ <- Χ -1
  ΓΡΑΨΕ Β[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Ι

Ποια είναι η τιμή του Ι; Ποιος μοναδικός νους το σκέφτηκε να μπει η εντολή Γράψε Ι; Ή εργάστηκαν πολλά μυαλά μαζί;

Παράθεση από: Τσιωτάκης Παναγιώτης στις 01 Φεβ 2010, 04:35:11 ΜΜ
όταν η Αλεξάνδρα ΨΑλτίδου είπε στην ημερίδα επι λέξει: "Δεν πρέπει να ενδιαφέρει κανέναν η τιμή του Για μετά την επανάληψη", μονολόγησα "Ναι, αλλά πρέπει να το ξέει και ο κανένας"
εννοώντας τον θεματοδότη των εξετάσεων.

Πάντως Ευρυπίδη, ωραίο το παράδειγμά σου, αλλά μπορείς να πάρεις μετρητές και να μη χρειάζεται ο μετρητής του Για!!
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: evry στις 13 Απρ 2010, 12:39:19 ΠΜ
Βασικά δεν εννοούσα αυτό. Αυτό είναι πταίσμα. Το παρακάτω μου έκανε εντύπωση

Κ <- 1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 60 ΜΕ ΒΗΜΑ Κ
   .......
   Κ <- 1
   .........
    ΟΣΟ ....
          Κ <- Κ + 1
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: P.Tsiotakis στις 13 Απρ 2010, 10:53:06 ΠΜ
διέρρευσε το απόρρητο διαγώνισμα;

Το μόνο που απομένει για την κατάρρευση είναι να γυρίσουμε στην ευρωδραχμή.
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: evry στις 13 Απρ 2010, 11:08:38 ΠΜ
βασικά απλά μπήκα στο σάιτ και το κατέβασα. Δεν είναι κλειδωμένο, από ότι φαίνεται φέτος το έχουν διαθέσιμο για το κοινό
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: Αλεξόπουλος Ανδρέας στις 13 Απρ 2010, 12:55:18 ΜΜ
βασικά αυτό που έγραψα και σε ένα άλλο thread λίγο πριν (πριν δω οτι είχατε γράψει εδώ την λύση), είναι πως για μένα είναι απαράδεκτος αυτός ο τρόπος επίλυσης. Αυτό με το ΜΕ_ΒΗΜΑ Κ , και τη μεταβολή του μέσα στο ΓΙΑ, δε μπορώ να καταλάβω πώς το σκέφτηκε κάποιος. Εκτός του ότι δεν το θεωρώ σωστό στα πλαίσια του μαθήματος είναι πολύ πιο απλό και κατανοητό να γίνει με ΟΣΟ
Τίτλος: Απ: τι θα εμφανισει?η δε θα εμφανισει?
Αποστολή από: P.Tsiotakis στις 13 Απρ 2010, 01:08:22 ΜΜ
https://alkisg.mysch.gr/steki/index.php?topic=1291.msg24744#msg24744