Κυριακή, 10 Οκτωβρίου 2010

Άσκηση : Βήμα-βήμα εκτέλεση (Όσο+Αν..τότε..αλλιώς)

Αν η τιμή εισόδου είναι 60, τι θα εμφανίσει το παρακάτω
σύνολο εντολών;
      Διάβασε α
      Όσο α > 0 επανάλαβε
          Αν α > 40 τότε
                β <-- α mod 35
          αλλιώς
                β <-- α mod 21
          Τέλος_αν
          α <-- α-β
          Εμφάνισε α, β
      Τέλος_επανάληψης
Τι παρατηρείτε;

Λύση

      α = 60
      1η επανάληψη
             Αφού α > 40 = 60 > 40 = Αληθής έχουμε:
                   β = α mod 35 = 60 mod 35 = 25
             α = α-β = 60-25 = 35
             Η Εμφάνισε τυπώνει :
                    35      25
      2η επανάληψη
             Αφού α > 40 = 35 > 40 = Ψευδής έχουμε:
                   β = α mod 21 = 35 mod 21 = 14
             α = α-β = 35-14 = 21
             Η Εμφάνισε τυπώνει :
                    21      14
      3η επανάληψη
             Αφού α > 40 = 21 > 40 = Ψευδής έχουμε:
                   β = α mod 21 = 21 mod 21 = 0
             α = α-β = 21-0= 21
             Η Εμφάνισε τυπώνει :
                    21      0
      4η επανάληψη
             Αφού α > 40 = 21 > 40 = Ψευδής έχουμε:
                   β = α mod 21 = 21 mod 21 = 0
             α = α-β = 21-0= 21
             Η Εμφάνισε τυπώνει :
                    21      0
      κ.ο.κ.

Παρατηρούμε ότι από τη στιγμή που το β παίρνει την τιμή 0
το α θα διατηρήσει την τιμή 21 επ' άπειρον και κατά συνέπεια
η Όσο..επανάλαβε δεν πρόκειται ποτέ να τερματιστεί! Σε κάθε 
επανάληψη της λοιπόν (από την 3η και μετά) θα εμφανίζει 
τις τιμές:  21   0

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου