Μετατροπή Για σε Όσο

Ξεκίνησε από nikolasmer, 02 Φεβ 2013, 03:09:23 ΜΜ

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

nikolasmer

Πιστέυω πως σίγουρα έχω κάνει κάποιο λάθος.

Το παρακάτω ορίζεται έτσι δεν είναι;

Διάβασε κ
Αν κ ≠ 0 τότε
  Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης
Τέλος_αν

και απ' οτι φαίνεται εκτελείται μια φορά.
Κάνω μετατροπή σε όσο και έχω ατέρμον.

Αν κ ≠ 0 τότε
  κ ← κ
  Αν κ < 0 τότε
    Όσο κ ≥ κ επανάλαβε
      Εμφάνισε κ
      κ ← κ - 1
    Τέλος_επανάληψης
  αλλιώς
    Όσο κ ≤ κ επανάλαβε
      Εμφάνισε κ
      κ ← κ + 1
    Τέλος_επανάληψης
  Τέλος_αν
Τέλος_αν
Τέλος α2

Τί στο καλό συμβαίνει.  :'(
Δεν μπορώ να εντοπίσω το λάθος μου.
Μερεντίτης Νικόλαος
Πληροφορικός

zsdregas

Αυτές οι δύο είναι πάντα αληθείς, όσο κι αν αλλάζει το κ.

Όσο κ ≥ κ επανάλαβε


Όσο κ ≤ κ επανάλαβε


Οπότε ό,ποια από τις δύο εκτελείται θα έχεις τον ατέρμονα βρόγχο.

nikolasmer

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

noname

Δεν βρίσκω κάποιο ιδιαίτερο νόημα σε μια επανάληψη του τύπου:
Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης

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

nikolasmer

Παράθεση από: noname στις 02 Φεβ 2013, 04:39:43 ΜΜ
στην εντολή Για -όπως εκτελείται στον διερμηνευτή- το από κ , το μέχρι κ και το με_βήμα κ,  δεν είναι το ίδιο με το Για κ. Το από και το μέχρι ορίζονται οριστικά κατά τον πρώτο έλεγχο στον βρόχο και δεν επηρεάζονται από μετέπειτα αλλαγές του κ.

Αυτό το οριστικά σημαίνει πως ακόμα και αν μέσα στη Για αλλάξω τις τιμές του από και μέχρι θα έχω πρόβλημα ή το μόνο που δεν πειράζουμε είναι το με_βήμα;
Μερεντίτης Νικόλαος
Πληροφορικός

noname

Αυτό που σου έγραψα είναι το πώς (βλέπω να) εκτελείται μέσα στον διερμηνευτή. Για παράδειγμα στο pseudolglossa.gr το αντίστοιχο κομμάτι κολλάει. :-) Προφανώς έχει οριστεί διαφορετικά ο τρόπος εκτέλεσης.

Αν ακολουθήσουμε τον τρόπο εκτέλεσης που περιέγραψες αρχικά, τότε οποιοσδήποτε βρόχος με τελική τιμή κ θα κολλάει. :-)

Για κ από Χ μέχρι κ με_βήμα Β
 ...
Τέλος_επανάληψης



gthal

Η αρχική ΓΙΑ είναι προβληματική από μόνη της
  Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης

Ο κ αλλάζει σε κάθε επανάληψη, αλλά ο κ είναι ταυτόχρονα αρχική τιμή, τελική τιμή και βήμα
το να αλλάζουμε αυτές τις τιμές όσο εκτελείται η για, είπαμε, είναι προβληματικό (και νομίζω απαγορευμένο στην ΑΕΠΠ)
Φιλικά,
Γιώργος Θαλασσινός

Λαμπράκης Μανώλης

Παράθεση από: gthal στις 02 Φεβ 2013, 08:29:06 ΜΜ
Η αρχική ΓΙΑ είναι προβληματική από μόνη της
  Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης

Ο κ αλλάζει σε κάθε επανάληψη, αλλά ο κ είναι ταυτόχρονα αρχική τιμή, τελική τιμή και βήμα
το να αλλάζουμε αυτές τις τιμές όσο εκτελείται η για, είπαμε, είναι προβληματικό (και νομίζω απαγορευμένο στην ΑΕΠΠ)

καλημέρα σε όλους

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

Για λ από κ μέχρι κ με_βήμα κ ...δηλαδή όλες οι τιμές μπορεί να είνια ίδιες, εκτός φυσικά το βήμα 0, και πάντα κάνει 1 επανάληψη, απλά ο μετρητής πρέπει να είναι κάποιο διαφορετική μεταβλητή