Πιστέυω πως σίγουρα έχω κάνει κάποιο λάθος.
Το παρακάτω ορίζεται έτσι δεν είναι;
Διάβασε κ
Αν κ ≠ 0 τότε
Για κ από κ μέχρι κ με_βήμα κ
Εμφάνισε κ
Τέλος_επανάληψης
Τέλος_αν
και απ' οτι φαίνεται εκτελείται μια φορά.
Κάνω μετατροπή σε όσο και έχω ατέρμον.
Αν κ ≠ 0 τότε
κ ← κ
Αν κ < 0 τότε
Όσο κ ≥ κ επανάλαβε
Εμφάνισε κ
κ ← κ - 1
Τέλος_επανάληψης
αλλιώς
Όσο κ ≤ κ επανάλαβε
Εμφάνισε κ
κ ← κ + 1
Τέλος_επανάληψης
Τέλος_αν
Τέλος_αν
Τέλος α2
Τί στο καλό συμβαίνει. :'(
Δεν μπορώ να εντοπίσω το λάθος μου.
Αυτές οι δύο είναι πάντα αληθείς, όσο κι αν αλλάζει το κ.
Όσο κ ≥ κ επανάλαβε
Όσο κ ≤ κ επανάλαβε
Οπότε ό,ποια από τις δύο εκτελείται θα έχεις τον ατέρμονα βρόγχο.
οκ το καταλαβαίνω.
Αλλά εφόσον έχω μετατροπή απο μια δομή σε άλλη , ο αριθμός των εκτελέσεων έπρεπε να είναι ίδιος σωστά; ακολουθώ τα βήματα μετατροπών και καταλήγω εκεί.
Πως θα έπρεπε να έχω τις συνθήκες;
Δεν βρίσκω κάποιο ιδιαίτερο νόημα σε μια επανάληψη του τύπου:
Για κ από κ μέχρι κ με_βήμα κ
Εμφάνισε κ
Τέλος_επανάληψης
αλλά πέρα από αυτό, στην εντολή Για -όπως εκτελείται στον διερμηνευτή- το από κ , το μέχρι κ και το με_βήμα κ, δεν είναι το ίδιο με το Για κ. Το από και το μέχρι ορίζονται οριστικά κατά τον πρώτο έλεγχο στον βρόχο και δεν επηρεάζονται από μετέπειτα αλλαγές του κ.
Όταν όμως κάνεις τη μετατροπή, η τελική τιμή Όσο κ<=κ επανάλαβε
επαναπροσδιορίζεται κάθε φορά αφού η σύγκριση γίνεται κάθε φορά μεταξύ της μεταβλητής και του εαυτού της.
Παράθεση από: noname στις 02 Φεβ 2013, 04:39:43 ΜΜ
στην εντολή Για -όπως εκτελείται στον διερμηνευτή- το από κ , το μέχρι κ και το με_βήμα κ, δεν είναι το ίδιο με το Για κ. Το από και το μέχρι ορίζονται οριστικά κατά τον πρώτο έλεγχο στον βρόχο και δεν επηρεάζονται από μετέπειτα αλλαγές του κ.
Αυτό το
οριστικά σημαίνει πως ακόμα και αν μέσα στη Για αλλάξω τις τιμές του
από και
μέχρι θα έχω πρόβλημα ή το μόνο που δεν πειράζουμε είναι το
με_βήμα;
Αυτό που σου έγραψα είναι το πώς (βλέπω να) εκτελείται μέσα στον διερμηνευτή. Για παράδειγμα στο pseudolglossa.gr το αντίστοιχο κομμάτι κολλάει. :-) Προφανώς έχει οριστεί διαφορετικά ο τρόπος εκτέλεσης.
Αν ακολουθήσουμε τον τρόπο εκτέλεσης που περιέγραψες αρχικά, τότε οποιοσδήποτε βρόχος με τελική τιμή κ θα κολλάει. :-)
Για κ από Χ μέχρι κ με_βήμα Β
...
Τέλος_επανάληψης
Η αρχική ΓΙΑ είναι προβληματική από μόνη της
Για κ από κ μέχρι κ με_βήμα κ
Εμφάνισε κ
Τέλος_επανάληψης
Ο κ αλλάζει σε κάθε επανάληψη, αλλά ο κ είναι ταυτόχρονα αρχική τιμή, τελική τιμή και βήμα
το να αλλάζουμε αυτές τις τιμές όσο εκτελείται η για, είπαμε, είναι προβληματικό (και νομίζω απαγορευμένο στην ΑΕΠΠ)
Παράθεση από: gthal στις 02 Φεβ 2013, 08:29:06 ΜΜ
Η αρχική ΓΙΑ είναι προβληματική από μόνη της
Για κ από κ μέχρι κ με_βήμα κ
Εμφάνισε κ
Τέλος_επανάληψης
Ο κ αλλάζει σε κάθε επανάληψη, αλλά ο κ είναι ταυτόχρονα αρχική τιμή, τελική τιμή και βήμα
το να αλλάζουμε αυτές τις τιμές όσο εκτελείται η για, είπαμε, είναι προβληματικό (και νομίζω απαγορευμένο στην ΑΕΠΠ)
καλημέρα σε όλους
να πω και εγώ την άποψή μου... συμφωνώ μα τον συνάδελφο gthal, εγώ προσωπικά έχω καταλάβει ότι στο ΑΕΠΠ δεν αλλάζουμε τις τιμές της ΓΙΑ μέσα στην επανάληψη..... επίσηε θεωρώ πως είναι ολόσωστη η δομή
Για λ από κ μέχρι κ με_βήμα κ ...δηλαδή όλες οι τιμές μπορεί να είνια ίδιες, εκτός φυσικά το βήμα 0, και πάντα κάνει 1 επανάληψη, απλά ο μετρητής πρέπει να είναι κάποιο διαφορετική μεταβλητή