DataStructures: Procedure-Theory

Σύνταξη

  1. ΔΙΑΔΙΚΑΣΙΑ ΟΝΟΜΑ(ΛΙΣΤΑ ΠΑΡΑΜΕΤΡΩΝ)
  2. ! ΤΜΗΜΑ ΔΗΛΩΣΕΩΝ
  3. ΑΡΧΗ
  4.   ...
  5. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΗΜΑΝΤΙΚΗ ΠΑΡΑΤΗΡΗΣΗ: Η διαδικασία δεν επιστρέφει τιμή στο πρόγραμμα ή υποπρόγραμμα που την καλεί με τον τρόπο που το κάνουν οι συναρτήσεις. Η επιστροφή τιμών γίνεται μέσω της λίστα παραμέτρων. Σωστά διαβάσατε: τιμών. Μπορεί, δηλαδή, η διαδικασία να επιστρέψει όσες τιμές θέλουμε. Αυτό γίνεται δίνοντας τιμές σε κάποιες ή όλες τις μεταβλητές της λίστας παραμέτρων.

Παράδειγμα: Να γράψετε διαδικασία η οποία θα δέχεται τρεις πραγματικούς αριθμούς και θα επιστρέφει την τιμή του μεγαλύτερου και την τιμή του μικρότερου.

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

  1. ΔΙΑΔΙΚΑΣΙΑ ΜΙΝ_ΜΑΧ(Χ, Υ, Ζ, ΜΙΝ, ΜΑΧ)
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΠΡΑΓΜΑΤΙΚΕΣ: Χ, Υ, Ζ, ΜΙΝ, ΜΑΧ
  4. ΑΡΧΗ
  5.   ΜΙΝ <- Χ
  6.   ΜΑΧ <- Υ
  7.   ΑΝ Υ < ΜΙΝ ΤΟΤΕ
  8.     ΜΙΝ <- Υ
  9.   ΤΕΛΟΣ_ΑΝ
  10.   ΑΝ Ζ < ΜΙΝ ΤΟΤΕ
  11.     ΜΙΝ <- Ζ
  12.   ΤΕΛΟΣ_ΑΝ
  13.   ΑΝ Υ > ΜΑΧ ΤΟΤΕ
  14.     ΜΑΧ <- Υ
  15.   ΤΕΛΟΣ_ΑΝ
  16.   ΑΝ Ζ > ΜΙΝ ΤΟΤΕ
  17.     ΜΑΧ <- Ζ
  18.   ΤΕΛΟΣ_ΑΝ
  19. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΠΑΡΑΤΗΡΗΣΕΙΣ

Κλήση Διαδικασίας

Οι διαδικασίες δεν μπορούν να εκτελεστούν από μόνες τους. Δεν αποτελούν εκτελέσιμα προγράμματα. Αποτελούν, όμως, αυτόνομα τμήματα προγράμματος (υποπρογράμματα) τα οποία μπορούν να κληθούν από προγράμματα ή άλλα υποπρογράμματα.

Για να κληθεί μία διαδικασία χρησιμοποιείται η ακόλουθη εντολή στο κυρίως πρόγραμμα.

ΚΑΛΕΣΕ ΟΝΟΜΑ(ΛΙΣΤΑ ΠΑΡΑΜΕΤΡΩΝ)

Παράδειγμα: Να γράψετε ένα πρόγραμμα το οποίο θα διαβάζει τρεις τιμές και θα εμφανίζει την μικρότερη και την μεγαλύτερη. Να γίνει κλήση της διαδικασίας ΜΙΝ_ΜΑΧ.

  1. ΠΡΟΓΡΑΜΜΑ ΜΙΚΡΟΤΕΡΟ_ΜΕΓΑΛΥΤΕΡΟ
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΠΡΑΓΜΑΤΙΚΕΣ: Α, Β, Γ, ΜΙΚΡΗ, ΜΕΓΑΛΗ
  4. ΑΡΧΗ
  5.   ΔΙΑΒΑΣΕ Α, Β, Γ
  6.   ΚΑΛΕΣΕ ΜΙΝ_ΜΑΧ(Α, Β, Γ, ΜΙΚΡΗ, ΜΕΓΑΛΗ)
  7.   ΓΡΑΨΕ "Η ΜΙΚΡΟΤΕΡΗ ΤΙΜΗ ΕΙΝΑΙ: ", ΜΙΚΡΗ, ", ΚΑΙ Η ΜΕΓΑΛΥΤΕΡΗ: ", ΜΕΓΑΛΗ
  8. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Στη γραμμή 6 βλέπουμε την κλήση της διαδικασίας. Οι μεταβλητές Α, Β, Γ παίρνουν τιμές στη γραμμή 5 ενώ οι μεταβλητές ΜΙΚΡΗ και ΜΕΓΑΛΗ δεν παίρνουν τιμή. Οι τιμές των Α, Β, Γ αντιγράφονται στις μεταβλητές Χ, Υ, Ζ της διαδασίας. Η διαδικασία αποδίδει τιμές στις τοπικές μεταβλητές της ΜΙΝ και ΜΑΧ. Οι τιμές αυτές, μετά το τέλος της διαδικασίας αντιγράφονται στις μεταβλητές ΜΙΚΡΗ και ΜΕΓΑΛΗ.

Κλήση με Παράμετρο Πίνακα

Ισχύει ότι και στην περίπτωση των συναρτήσεων. Δηλαδή:

Όταν θέλουμε να περάσουμε ένα πίνακα ως παράμετρο τότε προσέχουμε τα εξής:

Στο παρακάτω παράδειγμα δίνονται:

Η διαδικασία βρίσκει και επιστρέφει τη μικρότερη και τη μεγαλύτερη τιμή από τα στοιχεία ενός πίνακα.

  1. ΠΡΟΓΡΑΜΜΑ ΠΕΡΑΣΜΑ_ΠΙΝΑΚΑ_ΣΕ_ΔΙΑΔΙΚΑΣΙΑ
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΑΚΕΡΑΙΕΣ: Α[100], ΜΙΝ, ΜΑΧ, Ι
  4. ΑΡΧΗ
  5.   ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
  6.     ΔΙΑΒΑΣΕ Α[Ι]
  7.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  8.   ΚΑΛΕΣΕ ΜΙΝ_ΜΑΧ(Α, ΜΙΝ, ΜΑΧ)
  9.   ΓΡΑΨΕ ΜΙΝ, ΜΑΧ
  10. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
  11.  
  12. ΔΙΑΔΙΚΑΣΙΑ ΜΙΝ_ΜΑΧ(Τ, Ε, Μ)
  13. ΜΕΤΑΒΛΗΤΕΣ
  14.   ΑΚΕΡΑΙΕΣ: Τ[100], Ι, Ε, Μ
  15. ΑΡΧΗ
  16.   Ε <- Τ[1]
  17.   Μ <- Τ[1]
  18.   ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 100
  19.     ΑΝ Ε > Τ[Ι] ΤΟΤΕ
  20.       Ε <- Τ[Ι]
  21.     ΤΕΛΟΣ_ΑΝ
  22.     ΑΝ Μ < Τ[Ι] ΤΟΤΕ
  23.       Μ <- Τ[Ι]
  24.     ΤΕΛΟΣ_ΑΝ
  25.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  26. ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Ασκήσεις

Page last modified on 21-04-2008 (19:15)