ΜΕΤΑΤΡΟΠΗ ΟΣΟ ΣΕ ΓΙΑ....ΑΠΟ...ΜΕΧΡΙ . ΕΡΩΤΗΣΗ ΣΕ ΑΣΚΗΣΗ:

Ξεκίνησε από katkal, 30 Οκτ 2016, 08:41:30 ΠΜ

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

katkal

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

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

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

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

evry

Έχεις δίκιο, διότι τα δυο τμήματα αλγορίθμου που παραθέτεις δεν κάνουν ακριβώς το ίδιο πράγμα γιατί η τελική τιμή του Α είναι διαφορετική σε κάθε περίπτωση. Η σωστή λύση είναι από 2 και όχι από 4.
Στην πρώτη βγαίνει με 10 ενώ στη δεύτερη με 12
Θα το δεις αν αλλάξεις τη σειρά των εντολών και πας την αύξηση του Α στο τέλος αφού τα Α και Β είναι ανεξάρτητα μεταξύ τους.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

katkal

Το πήρα από βιβλίο γνωστού συγγραφέα (δεν ξέρω αν θα πρέπει να πω το όνομά του) και αναγράφει το εξής:
Εδώ υπάρχει διπλή εξαίρεση, διότι το βήμα είναι στην αρχή και λείπει η ισότητα. Επειδή η αυξηση του μετρητή Α είναι στην αρχή η επανάληψη θα έπρεπε να ήταν από 4 μέχρι 12. όμως , λείπει η ισότητα άρα το "μέχρι" παραμένει 10.

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

evry

Εξαρτάται τι λέει η εκφώνηση. Αν λέει να το ξαναγράψεις με Για ώστε να εμφανίζει τα ίδια δεν είναι λάθος.
Αν όμως μιλάει γενικά ότι ξαναγράφουμε τον ίδιο αλγόριθμο με άλλο τρόπο δεν είναι σωστό αφού στο τέλος δεν έχουν όλες οι μεταβλητές την ίδια τιμή.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

katkal

Λέει η άσκηση : να μετατραπούν οι ακολουθίες εντολών σε Για...από ....μέχρι.

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

evry

Νομίζω ότι ο καλύτερος τρόπος είναι αυτός που έχεις επιλέξει, δηλαδή να καταγράψεις στο χαρτί τις τιμές των μεταβλητών και στη συνέχεια να προσπαθήσεις να σχεδιάσεις μια Για που να δίνει τις ίδιες τιμές ή στην χειρότερη περίπτωση να καταλήγει στις ίδιες τιμές.

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


pvs

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

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

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

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

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

Παράθεση από: katkal στις 30 Οκτ 2016, 08:41:30 ΠΜ
Καλημέρα. Έχουμε το κάτω κομμάτι αλγορίθμου (το οποίο το πήρα από βιβλίο) σε ΌΣΟ και θέλουμε να το μετατρέψουμε σε ΓΙΑ ...ΑΠΟ...ΜΕΧΡΙ:
--------------------------------------------------------------------------------
Α<--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 επαναληψεις