Δευτέρα 28 Ιουνίου 2010

Άσκηση: βήμα-βήμα εκτέλεση με υποπρογράμματα+μετατροπές

Θεωρήστε το παρακάτω πρόγραμμα
     ΠΡΟΓΡΑΜΜΑ ΑΣΚ
     ΜΕΤΑΒΛΗΤΕΣ
         ΑΚΕΡΑΙΕΣ: μ, λ
         ΠΡΑΓΜΑΤΙΚΕΣ: ρ
     ΑΡΧΗ
          ΔΙΑΒΑΣΕ μ, λ
          ρ <-- Α_Τ(μ-λ)*1.2
          ΓΡΑΨΕ ρ
          ΚΑΛΕΣΕ Δ(μ, λ, ρ)
          ΓΡΑΨΕ ρ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     ΔΙΑΔΙΚΑΣΙΑ Δ(α, β, γ)
     ΜΕΤΑΒΛΗΤΕΣ
         ΑΚΕΡΑΙΕΣ: α, β
         ΠΡΑΓΜΑΤΙΚΕΣ: γ
     ΑΡΧΗ
          γ <-- α^β-0.3
     ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

α) Ποιά είναι η έξοδος του προγράμματος αν οι τιμές
    εισόδου είναι 2 και 1;
β) Ξαναγράψτε το πρόγραμμα χρησιμοποιώντας
    συνάρτηση αντί διαδικασίας.
γ) Ξαναγράψτε το πρόγραμμα χωρίς τη χρήση υποπρο-
    γραμμάτων.

Λύση

   α)
       μ = 2, λ = 1
       ρ = Α_Τ(μ-λ)*1.2 = Α_Τ(2-1)*1.2 = 1*1.2 = 1.2
       Η ΓΡΑΨΕ τυπώνει :      1.2
       Κλήση της Δ με

               Τυπικές       Πραγματικές      Αρχική
               παραμ.          παραμ.                 τιμή
                  α                   μ                         2
                  β                   λ                         1
                  γ                   ρ                         1.2

                  γ = α^β-0.3 = 2^1-0.3 = 2-0.3 = 1.7
      Μόλις ολοκληρωθεί η Δ έχουμε :  ρ = γ = 1.7
      Η ΓΡΑΨΕ τυπώνει :      1.7

   β)
     ΠΡΟΓΡΑΜΜΑ ΑΣΚ2
     ΜΕΤΑΒΛΗΤΕΣ
         ΑΚΕΡΑΙΕΣ: μ, λ
         ΠΡΑΓΜΑΤΙΚΕΣ: ρ
     ΑΡΧΗ
          ΔΙΑΒΑΣΕ μ, λ
          ρ <-- Α_Τ(μ-λ)*1.2
          ΓΡΑΨΕ ρ
          ρ <-- Δ(μ, λ)
          ΓΡΑΨΕ ρ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     ΣΥΝΑΡΤΗΣΗ Δ(α, β) : ΠΡΑΓΜΑΤΙΚΗ
     ΜΕΤΑΒΛΗΤΕΣ
         ΑΚΕΡΑΙΕΣ: α, β
     ΑΡΧΗ
         Δ <-- α^β-0.3
     ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

  γ)
     ΠΡΟΓΡΑΜΜΑ ΑΣΚ3
     ΜΕΤΑΒΛΗΤΕΣ
         ΑΚΕΡΑΙΕΣ: μ, λ
         ΠΡΑΓΜΑΤΙΚΕΣ: ρ
     ΑΡΧΗ
          ΔΙΑΒΑΣΕ μ, λ
          ρ <-- Α_Τ(μ-λ)*1.2
          ΓΡΑΨΕ ρ
          ρ <-- μ^λ-0.3
          ΓΡΑΨΕ ρ
     ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

     

       

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

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