Τρίτη, 28 Σεπτεμβρίου 2010

Είναι ισοδύναμα;

Αν η τιμή εισόδου και στα δύο τμήματα εντολών είναι ο ίδιος
ακέραιος,υπάρχει ισοδυναμία ανάμεσα στα τμήματα
αυτά;
   
     Τμήμα Α

           Διάβασε λ
           α <-- (4*λ+18) mod 2
           β <-- β*3
           γ <-- (12*λ+4) div 4
           Εμφάνισε α*1000, β^2, γ-3*λ-5 

      Τμήμα Β

           Διάβασε λ
           γ <-- 3*λ+1
           β <-- γ+2-3*λ
           α <-- (5*λ+10) mod 5
           Εμφάνισε α, A_T(β-12), α-β-1 

Λύση

       Τμήμα Α
           Το λ παίρνει μια τιμή εισόδου.
           α = (4*λ+18) mod 2 = 0   (επειδή το α είναι άρτιο)
           β = α+3 = 0+3 = 3
           γ = (12*λ+4) div 4 = 4*(3*λ+1) div 4 = 3*λ+1
           Αφού α*1000 = 0*1000 = 0, β^2 = 3^2 = 9 και
           γ-3*λ-5 = (3*λ+1)-3*λ-5 = -4, η Εμφάνισε τυπώνει:
                 0       9      -4

       Τμήμα Β
          Το λ παίρνει μια τιμή εισόδου.
           γ = 3*λ+1
           β = γ+2-3*λ = (3*λ+1)+2-3*λ = 3
           α = (5*λ+10) mod 5 = (λ+2)*5 mod 5 = 0
           Αφού Α_Τ(β-12) = Α_Τ(3-12) = Α_Τ(-9) = 9 και
           α-β-1 = 0-3-1 = -4,  η Εμφάνισε τυπώνει:
                  0       9      -4


       Συμπέρασμα: Αφού και στα δύο τμήματα εντολών, οι τελικές
                               τιμές των μεταβλητών είναι ίδιες και η έξοδος
                               των αποτελεσμάτων κοινή, υπάρχει ισοδυναμία
                               μεταξύ τους.

            

1 σχόλιο:

  1. Καλησπέρα,
    Πολύ ωραία η άσκηση! Απλώς έχω μια ερώτηση. Προφανώς στην εκφώνηση, στο τμήμα Α, η 3η γραμμή είναι β <-- α*3 κι όχι β <-- β*3, διαφορετικά η λύση είναι λάθος.

    ΑπάντησηΔιαγραφή