Αποστολέας Θέμα: Μετατροπή Για σε Όσο  (Αναγνώστηκε 1941 φορές)

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 508
  • There can be only one...may it be AEPP.
Μετατροπή Για σε Όσο
« στις: 02 Φεβ 2013, 03:09:23 μμ »
Πιστέυω πως σίγουρα έχω κάνει κάποιο λάθος.

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

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

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

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

Τί στο καλό συμβαίνει.  :'(
Δεν μπορώ να εντοπίσω το λάθος μου.
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

zsdregas

  • Θαμώνας
  • ***
  • Μηνύματα: 48
  • You can't outsmart me cause I am a moron
Απ: Μετατροπή Για σε Όσο
« Απάντηση #1 στις: 02 Φεβ 2013, 04:09:36 μμ »
Αυτές οι δύο είναι πάντα αληθείς, όσο κι αν αλλάζει το κ.

Κώδικας: [Επιλογή]
Όσο κ ≥ κ επανάλαβε
Κώδικας: [Επιλογή]
Όσο κ ≤ κ επανάλαβε
Οπότε ό,ποια από τις δύο εκτελείται θα έχεις τον ατέρμονα βρόγχο.

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 508
  • There can be only one...may it be AEPP.
Απ: Μετατροπή Για σε Όσο
« Απάντηση #2 στις: 02 Φεβ 2013, 04:12:41 μμ »
οκ το καταλαβαίνω.
Αλλά εφόσον έχω μετατροπή απο μια δομή σε άλλη , ο αριθμός των εκτελέσεων έπρεπε να είναι ίδιος σωστά; ακολουθώ τα βήματα μετατροπών και καταλήγω εκεί.
Πως θα έπρεπε να έχω τις συνθήκες;
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

noname

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 189
Απ: Μετατροπή Για σε Όσο
« Απάντηση #3 στις: 02 Φεβ 2013, 04:39:43 μμ »
Δεν βρίσκω κάποιο ιδιαίτερο νόημα σε μια επανάληψη του τύπου:
Κώδικας: [Επιλογή]
Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης
αλλά πέρα από αυτό, στην εντολή Για -όπως εκτελείται στον διερμηνευτή- το από κ , το μέχρι κ και το με_βήμα κ,  δεν είναι το ίδιο με το Για κ. Το από και το μέχρι ορίζονται οριστικά κατά τον πρώτο έλεγχο στον βρόχο και δεν επηρεάζονται από μετέπειτα αλλαγές του κ.
Όταν όμως κάνεις τη μετατροπή, η τελική τιμή
Κώδικας: [Επιλογή]
Όσο κ<=κ επανάλαβε επαναπροσδιορίζεται κάθε φορά αφού η σύγκριση γίνεται κάθε φορά μεταξύ της μεταβλητής και του εαυτού της.

nikolasmer

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 508
  • There can be only one...may it be AEPP.
Απ: Μετατροπή Για σε Όσο
« Απάντηση #4 στις: 02 Φεβ 2013, 04:46:34 μμ »
στην εντολή Για -όπως εκτελείται στον διερμηνευτή- το από κ , το μέχρι κ και το με_βήμα κ,  δεν είναι το ίδιο με το Για κ. Το από και το μέχρι ορίζονται οριστικά κατά τον πρώτο έλεγχο στον βρόχο και δεν επηρεάζονται από μετέπειτα αλλαγές του κ.

Αυτό το οριστικά σημαίνει πως ακόμα και αν μέσα στη Για αλλάξω τις τιμές του από και μέχρι θα έχω πρόβλημα ή το μόνο που δεν πειράζουμε είναι το με_βήμα;
Απ' τα τσακάλια δεν γλυτώνεις μ'ευχές ή παρακάλια
(Κ. Βάρναλης)

Μερεντίτης Νικόλαος
Καθηγητής Πληροφορικής - Φροντιστής

noname

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 189
Απ: Μετατροπή Για σε Όσο
« Απάντηση #5 στις: 02 Φεβ 2013, 05:20:20 μμ »
Αυτό που σου έγραψα είναι το πώς (βλέπω να) εκτελείται μέσα στον διερμηνευτή. Για παράδειγμα στο pseudolglossa.gr το αντίστοιχο κομμάτι κολλάει. :-) Προφανώς έχει οριστεί διαφορετικά ο τρόπος εκτέλεσης.

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

Κώδικας: [Επιλογή]
Για κ από Χ μέχρι κ με_βήμα Β
 ...
Τέλος_επανάληψης


gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 879
Απ: Μετατροπή Για σε Όσο
« Απάντηση #6 στις: 02 Φεβ 2013, 08:29:06 μμ »
Η αρχική ΓΙΑ είναι προβληματική από μόνη της
  Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης

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

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

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 532
Απ: Μετατροπή Για σε Όσο
« Απάντηση #7 στις: 01 Νοέ 2014, 09:57:53 πμ »
Η αρχική ΓΙΑ είναι προβληματική από μόνη της
  Για κ από κ μέχρι κ με_βήμα κ
    Εμφάνισε κ
  Τέλος_επανάληψης

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

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

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

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