Στην εντολή ΓΙΑ, ο μετρητής της π.χ.
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5 ΜΕ_ΒΗΜΑ 2
ΕΝΤΟΛΕΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
μετά το τέλος των επαναλήψεων έχει τιμή 7 ή είναι απροσδιόριστη?
Το θέμα αυτό έχει ξανατεθεί και παλιότερα στο forum.Ακολουθώντας τη λογική του σχολικού βιβλίου δηλαδή ότι η δομή για... λειτουργεί όπως η όσο... μετά το τέλος των επαναλήψεων η τιμή του μετρητή θα είναι 7
Και πάλι θα το αναφέρω
Οδηγός για να κατανοήσουμε τέτοια θέματα που αφορούν την δομή "ΓΙΑ" είναι να την μετατρέψουμε σε ισοδύναμη δομή "ΟΣΟ"
Από το ισοδύναμο τμήμα προγράμματος προκύπτει ότι η μεταβλητή Ι θα έχει την τιμή 7 μετά το πέρας των επαναλήψεων
Πράγματι με βάση το σχολικό βιβλίο φαίνεται η «Για» να λειτουργεί σαν την «Όσο» δηλαδή ακριβώς ότι λένε τα παιδιά παραπάνω.
Ωστόσο δεν είναι απόλυτα αυστηρό να λέμε ότι η «Για» μετατρέπεται σε «Όσο» γιατί δεν ξέρουμε τον ακριβή αλγόριθμο μετατροπής . Πχ δεν ξέρουμε πως θα μετατρεπόταν η «Για» σε «Όσο» αν το βήμα ήταν 0. Ότι και να πούμε πάνω σε αυτό θα είναι μάλλον αυθαίρετο (ακόμα κι αν δείχνει λογικό).
Επίσης ένα μικρό σχόλιο πάνω στο ερώτημα του τι τιμή θα έχει το ι μετά το τέλος της «Για». Ένα τέτοιο ερώτημα, αν και μπορεί να απαντηθεί υποθέτοντας τη μετατροπή από Για σε Όσο, θεωρώ πως δεν έχει νόημα. Δεν πρόκειται να το χρειαστεί κανείς το ι μετά το τέλος της «Για». Το ι έχει παίζει το ρόλο της μεταβλητής που θα σαρώσει κάποιες συγκεκριμένες τιμές μέσα στη «Για». Έξω από τη «Για» δεν έχει κανένα ρόλο. Οποιαδήποτε ποσότητα κι αν θέλεις μπορείς να τη βρεις σε διαφορετικό σημείο από το ι.
Θα θεωρούσα άστοχο ένα θέμα σε εξετάσεις που θα ρωτάει την τιμή του ι μετά τη «Για».
Συμφωνώ πάρ' αυτα με τον gpapargi. Έχω διατυπώσει την άποψη μου επί του θέματος στο topic https://alkisg.mysch.gr/steki/index.php?topic=721.0.