Αποστολέας Θέμα: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:  (Αναγνώστηκε 1571 φορές)

katkal

  • Θαμώνας
  • ***
  • Μηνύματα: 33
Καλημέρα. Έχουμε το κάτω κομμάτι αλγορίθμου (το οποίο το πήρα από βιβλίο) σε ΌΣΟ και θέλουμε να το μετατρέψουμε σε ΓΙΑ ...ΑΠΟ...ΜΕΧΡΙ:
--------------------------------------------------------------------------------
Α<--2
Οσο  Α<10 επανάλαβε
     Α<--Α+2
     Διάβασε Β
    Εμφάνισε Β
Τέλος_επανάληψης

Και μετατρέπεται σε

Για Α από 4 μέχρι 10 με_βήμα 2
    διάβασε Β
    εμφάνισε Β
Τέλος_επανάληψης
--------------------------------------------------------------------------------------
Εαν το κάνω στο χαρτί  για την περίπτωση του ΟΣΟ η αρχική τιμή του Α είναι:
   2 και μετά 4,
   4 και  μετά 6
   6 και μετά 8
    8 και μετά 10 και σταματά εκει. άρα γίνονται 4 επαναλήψεις.

Γιατί ο μετρητής στην ΓΙΑ ..ΑΠΟ..ΜΕΧΡΙ πρέπει να ξεκινάει από 4 και όχι απο 2;
 

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3044
  • to Iterate is human to Recurse divine
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #1 στις: 30 Οκτ 2016, 08:54:49 πμ »
Έχεις δίκιο, διότι τα δυο τμήματα αλγορίθμου που παραθέτεις δεν κάνουν ακριβώς το ίδιο πράγμα γιατί η τελική τιμή του Α είναι διαφορετική σε κάθε περίπτωση. Η σωστή λύση είναι από 2 και όχι από 4.
Στην πρώτη βγαίνει με 10 ενώ στη δεύτερη με 12
Θα το δεις αν αλλάξεις τη σειρά των εντολών και πας την αύξηση του Α στο τέλος αφού τα Α και Β είναι ανεξάρτητα μεταξύ τους.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

katkal

  • Θαμώνας
  • ***
  • Μηνύματα: 33
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #2 στις: 30 Οκτ 2016, 09:12:41 πμ »
Το πήρα από βιβλίο γνωστού συγγραφέα (δεν ξέρω αν θα πρέπει να πω το όνομά του) και αναγράφει το εξής:
Εδώ υπάρχει διπλή εξαίρεση, διότι το βήμα είναι στην αρχή και λείπει η ισότητα. Επειδή η αυξηση του μετρητή Α είναι στην αρχή η επανάληψη θα έπρεπε να ήταν από 4 μέχρι 12. όμως , λείπει η ισότητα άρα το "μέχρι" παραμένει 10.

Για τη τιμή 10 και όχι 12 το καταλαβαίνω. Αρα το βιβλιο για την τιμή 2 και όχι 4 έχει λάθος;

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3044
  • to Iterate is human to Recurse divine
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #3 στις: 30 Οκτ 2016, 09:20:14 πμ »
Εξαρτάται τι λέει η εκφώνηση. Αν λέει να το ξαναγράψεις με Για ώστε να εμφανίζει τα ίδια δεν είναι λάθος.
Αν όμως μιλάει γενικά ότι ξαναγράφουμε τον ίδιο αλγόριθμο με άλλο τρόπο δεν είναι σωστό αφού στο τέλος δεν έχουν όλες οι μεταβλητές την ίδια τιμή.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

katkal

  • Θαμώνας
  • ***
  • Μηνύματα: 33
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #4 στις: 30 Οκτ 2016, 09:26:34 πμ »
Λέει η άσκηση : να μετατραπούν οι ακολουθίες εντολών σε Για...από ....μέχρι.

επανέρχομαι πάλι στην ερώτησή μου: Γιατι ξεκινάει την Για από 4 και όχι από 2 εφόσον εαν καταγράψω στο χαρτί τις τιμές της μεταβλητής Α λαμβάνουν τις τιμές που έγραψα στην αρχή.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3044
  • to Iterate is human to Recurse divine
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #5 στις: 30 Οκτ 2016, 09:46:50 πμ »
Νομίζω ότι ο καλύτερος τρόπος είναι αυτός που έχεις επιλέξει, δηλαδή να καταγράψεις στο χαρτί τις τιμές των μεταβλητών και στη συνέχεια να προσπαθήσεις να σχεδιάσεις μια Για που να δίνει τις ίδιες τιμές ή στην χειρότερη περίπτωση να καταλήγει στις ίδιες τιμές.

Το σκεπτικό που περιγράφεται για μένα δεν είναι σωστό.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

katkal

  • Θαμώνας
  • ***
  • Μηνύματα: 33
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #6 στις: 30 Οκτ 2016, 09:55:24 πμ »
ευχαριστώ.

pvs

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 107
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #7 στις: 11 Νοέ 2016, 11:39:11 μμ »
Καλημέρα. Έχουμε το κάτω κομμάτι αλγορίθμου (το οποίο το πήρα από βιβλίο) σε ΌΣΟ και θέλουμε να το μετατρέψουμε σε ΓΙΑ ...ΑΠΟ...ΜΕΧΡΙ:
--------------------------------------------------------------------------------
Α<--2
Οσο  Α<10 επανάλαβε
     Α<--Α+2
     Διάβασε Β
    Εμφάνισε Β
Τέλος_επανάληψης

Και μετατρέπεται σε

Για Α από 4 μέχρι 10 με_βήμα 2
    διάβασε Β
    εμφάνισε Β
Τέλος_επανάληψης
--------------------------------------------------------------------------------------
Εαν το κάνω στο χαρτί  για την περίπτωση του ΟΣΟ η αρχική τιμή του Α είναι:
   2 και μετά 4,
   4 και  μετά 6
   6 και μετά 8
    8 και μετά 10 και σταματά εκει. άρα γίνονται 4 επαναλήψεις.

Γιατί ο μετρητής στην ΓΙΑ ..ΑΠΟ..ΜΕΧΡΙ πρέπει να ξεκινάει από 4 και όχι απο 2;
Δοκίμασε και αυτό νομίζω είναι πιο κατανοητό
Για Α από 2 μέχρι 8 με_βήμα 2
  Διάβασε Β
  Εμφάνισε Β
Τέλος_επανάληψης
Επίσης με βάση την εκφώνηση προσωπικά καταλαβαίνω ότι ο στόχος είναι να γίνουν 4 επαναλήψεις.

Κωστας τζιαννης

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 182
Απ: ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:
« Απάντηση #8 στις: 03 Μάι 2017, 03:28:45 πμ »
Καλημέρα. Έχουμε το κάτω κομμάτι αλγορίθμου (το οποίο το πήρα από βιβλίο) σε ΌΣΟ και θέλουμε να το μετατρέψουμε σε ΓΙΑ ...ΑΠΟ...ΜΕΧΡΙ:
--------------------------------------------------------------------------------
Α<--2
Οσο  Α<10 επανάλαβε
     Α<--Α+2
     Διάβασε Β
    Εμφάνισε Β
Τέλος_επανάληψης

Και μετατρέπεται σε

Για Α από 4 μέχρι 10 με_βήμα 2
    διάβασε Β
    εμφάνισε Β
Τέλος_επανάληψης
--------------------------------------------------------------------------------------
Εαν το κάνω στο χαρτί  για την περίπτωση του ΟΣΟ η αρχική τιμή του Α είναι:
   2 και μετά 4,
   4 και  μετά 6
   6 και μετά 8
    8 και μετά 10 και σταματά εκει. άρα γίνονται 4 επαναλήψεις.

Γιατί ο μετρητής στην ΓΙΑ ..ΑΠΟ..ΜΕΧΡΙ πρέπει να ξεκινάει από 4 και όχι απο 2;
ΑΝ ξεκινησει απο 2 τοτε θα κανει 5 και οχι 4 επαναληψεις.το μπερδεμα γινεται γιατι στην οσο ο μετρητης αλλαζει στην αρχη και οχι στο τελος.η αρχικη οσο ειναι ισοδυναμη με την παρακατω
  Α <- 4
  ΟΣΟ Α <= 10 ΕΠΑΝΑΛΑΒΕ

    ΔΙΑΒΑΣΕ Β
    ΓΡΑΨΕ Β
    Α <- Α + 2
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
αρα πλεον γινεται φανερη η ισοδυναμη της σε για.ΠΡΟΣΟΧΗ!!!στην ισοτητα στην συνθηκη.αν δεν ειχαμε <= θα εκανε 3 και οχι 4 επαναληψεις