Κλήσεις Υποπρογραμμάτων

Κατά την κλήση ενός υποπρογράμματος, διακόπτεται η εκτέλεση του κυρίως προγράμματος και περνάει ο έλεγχος στο υποπρόγραμμα. Τότε, από το κυρίως πρόγραμμα "περνούν" μέσω της λίστας παραμέτρων τιμές. Σε μια διαδικασία οι παράμετροι παίζουν επιπλέον το ρόλο επιστροφής τιμών στο κυρίως πρόγραμμα, κάτι που δεν συμβαίνει σε μια συνάρτηση. Βέβαια, κάθε υποπρόγραμμα μπορεί να καλείται από το κύριο πρόγραμμα αλλά και από άλλο υποπρόγραμμα. Στο επόμενο παράδειγμα αναλύονται οι λεπτομέρειες κλήσης υποπρογραμμάτων και το πέρασμα τιμών μεταξύ των τμημάτων προγραμμάτων

Να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τί θα εκτυπωθεί;

ΠΡΟΓΡΑΜΜΑ Κλήσεις_Υποπρογραμμάτων
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α, Β, Γ
  ΠΡΑΓΜΑΤΙΚΕΣ : ΜΟ
ΑΡΧΗ
  Α <– 1
  Β <– 10
  Γ <– 31.6
  ΚΑΛΕΣΕ Πράξεις (Α, Γ)
  ΚΑΛΕΣΕ Πράξεις (Β, Γ)
  ΓΡΑΨΕ Α, Β, Γ
  Γ <– Γ ^ 2 + Α * Β
  Α <– Α + Τιμή (Γ)
  ΓΡΑΨΕ Α, Β, Γ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
! =========================================
ΔΙΑΔΙΚΑΣΙΑ Πράξεις (αριθμός1, αριθμός2)
ΣΤΑΘΕΡΕΣ
  Χ = 13.2
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: αριθμός1
  ΠΡΑΓΜΑΤΙΚΕΣ : αριθμός2
ΑΡΧΗ
  αριθμός1 <– Τιμή (αριθμός2)
  αριθμός2 <– αριθμός2 - Χ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
! =========================================
ΣΥΝΑΡΤΗΣΗ Τιμή (Χ): ΑΚΕΡΑΙΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ : Χ
  ΑΚΕΡΑΙΕΣ: εκτίμηση
ΑΡΧΗ
  εκτίμηση <- Α_Μ (Τ_Ρ (Χ)) + 1
  Τιμή <- εκτίμηση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 

  Κυρίως Πρόγραμμα  

Διαδικασία

  Συνάρτηση 

 

  Α 

  Β 

  Γ 

  αριθμός1  

  αριθμός2  

  εκτίμηση 

Χ

 Κυρίως πρόγραμμα :

1

10

31.6

       

 1η κλήση διαδικασίας :

     

1

31.6

   

 Κλήση συνάρτησης :

           

  31.6 

 Εκτέλεση συνάρτησης :

         

6 

 

 Επιστροφή στη διαδικασία :

     

6

     

 Εκτέλεση διαδικασίας :

       

18.4

   

 Επιστροφή στο κυρίως πρόγραμμα :

6

 

18.4

       

 2η κλήση διαδικασίας :

      10 18.4    

 Κλήση συνάρτησης :

            18.4

 Εκτέλεση συνάρτησης :

          5  

 Επιστροφή στη διαδικασία :

      5      

 Εκτέλεση διαδικασίας :

        5.2    

 Επιστροφή στο κυρίως πρόγραμμα :  

  5 5.2        

 Εκτέλεση κύριου προγράμματος :

   

57.04

       

 Κλήση συνάρτησης :

              57.04  

 Εκτέλεση συνάρτησης :

          8  

 Επιστροφή στο κυρίως πρόγραμμα και τερματισμός :  

14            

Κατά την 1η κλήση της διαδικασίας πράξεις θα περάσουν: η τιμή της μεταβλητής Α (1) στην μεταβλητή αριθμός1 και η τιμή της μεταβλητής Γ (31.6) στην αριθμός2. Πρέπει να σημειωθεί οτι η σταθερά Χ που ορίστηκε στην διαδικασία δεν έχει σχέση με την ομώνυμη μεταβλητή που δηλώθηκε στη συνάρτηση Τιμή

Στη συνέχεια περνάμε στην εκτέλεση της συνάρτησης Τιμή. Η τετραγωνική ρίζα του 31.6 είναι ο άρρητος αριθμός 5.621387 του οποίου η συνάρτηση Α_Μ επιστρέφει την τιμή 5, άρα η μεταβλητή εκτίμηση θα πάρει την τιμή 6, που είναι και η τιμή που θα επιστρέψει η συνάρτηση κατά την πρώτη κλήση της

Κατά την 2η κλήση της διαδικασίας πράξεις θα περάσουν: η τιμή της μεταβλητής Β (10) που δεν έχει μεταβληθεί ακόμη στην μεταβλητή αριθμός1 και η τιμή της μεταβλητής Γ (18.4) στην αριθμός2.

Στη συνέχεια περνάμε στην εκτέλεση της συνάρτησης Τιμή. Η τετραγωνική ρίζα του 18.4 είναι ο άρρητος αριθμός 4,289522 του οποίου η συνάρτηση Α_Μ επιστρέφει την τιμή 4, άρα η μεταβλητή εκτίμηση θα πάρει την τιμή 5, που είναι και η τιμή που θα επιστρέψει η συνάρτηση κατά την δεύτερη κλήση της

Στην πρώτη εντολή ΓΡΑΨΕ θα εκτυπωθούν οι τιμές:   6, 5, 5.2

Στη συνέχεια εκτελείται η εντολή τροποποίησης του Γ

Ακολουθεί η εκτέλεση της συνάρτησης Τιμή. Η τετραγωνική ρίζα του 35.2 είναι ο άρρητος αριθμός 7.552483 του οποίου η συνάρτηση Α_Μ επιστρέφει την τιμή 7, άρα η μεταβλητή εκτίμηση θα πάρει την τιμή 8, που είναι και η τιμή που θα επιστρέψει η συνάρτηση κατά την τρίτη κλήση της

Στην δεύτερη εντολή ΓΡΑΨΕ θα εκτυπωθούν οι τμές:   14, 5, 57.04


Ημερομηνία τελευταίας τροποποίησης: 12/2/2004
Επικοινωνία: Τσιωτάκης Παναγιώτης