Ποια η βασική διαφορά διαδικασιών και συναρτήσεων;
Σκέψη / Μεθοδολογία: Ε ρ ώ τ η σ η σ ύ γ κ ρ ι σ η ς α ν ά μ ε σ α σ ε § 1 0 . 5 . 1 κ α ι § 1 0 . 5 . 2 .
Λύση: Εντοπίζουμε το βασικό διακριτικό γνώρισμα: τι επιστρέφει η καθεμία.
Απάντηση: Η συνάρτηση παράγει και επιστρέφει μία και μόνο τιμή, μέσω εκχώρησης στο ίδιο το όνομά της, και εκτελείται με απλή αναφορά του ονόματός της σε μία έκφραση. Η διαδικασία μπορεί να εκτελεί οποιεσδήποτε ενέργειες, καλείται ρητά με την εντολή ΚΑΛΕΣΕ, και μπορεί να επιστρέφει καμία, μία ή περισσότερες τιμές μέσω των παραμέτρων της.
Πρόσεξε:
Πώς εκτελείται μία συνάρτηση;
Σκέψη / Μεθοδολογία: Κ λ ε ι σ τ ή ε ρ ώ τ η σ η — η ε κ τ έ λ ε σ η π ε ρ ι γ ρ ά φ ε τ α ι ρ η τ ά σ τ ο § 1 0 . 5 . 1 .
Λύση: Περιγράφουμε τον τρόπο κλήσης μιας συνάρτησης, όπως και των ενσωματωμένων συναρτήσεων της γλώσσας.
Απάντηση: Μία συνάρτηση εκτελείται ακριβώς όπως οι ενσωματωμένες συναρτήσεις της γλώσσας: αναφέρεται απλώς το όνομά της μέσα σε μία έκφραση ή εντολή (π.χ. Εμ <- Εμβαδό_κύκλου(R)), και επιστρέφεται η τιμή της στο σημείο της κλήσης.
Πρόσεξε:
Πώς καλείται μία διαδικασία;
Σκέψη / Μεθοδολογία: Κ λ ε ι σ τ ή ε ρ ώ τ η σ η — η κ λ ή σ η π ε ρ ι γ ρ ά φ ε τ α ι ρ η τ ά σ τ ο § 1 0 . 5 . 2 .
Λύση: Δίνουμε τη γενική μορφή της εντολής κλήσης διαδικασίας.
Απάντηση: Μία διαδικασία καλείται με την εντολή ΚΑΛΕΣΕ, ακολουθούμενη από το όνομα της διαδικασίας και, μέσα σε παρενθέσεις, τη λίστα παραμέτρων: ΚΑΛΕΣΕ Όνομα-διαδικασίας (λίστα-παραμέτρων). Η λίστα παραμέτρων δεν είναι υποχρεωτική.
Πρόσεξε:
Ποια η διαφορά τυπικών και πραγματικών παραμέτρων;
Σκέψη / Μεθοδολογία: Κ λ ε ι σ τ ή ε ρ ώ τ η σ η ο ρ ι σ μ ο ύ — δ ί ν ε τ α ι ρ η τ ά σ τ ο § 1 0 . 5 . 3 .
Λύση: Δίνουμε τους δύο ορισμούς παραθέτοντας πού εμφανίζεται η κάθε κατηγορία παραμέτρων.
Απάντηση: Η λίστα των τυπικών παραμέτρων (formal parameter list) καθορίζει τις παραμέτρους στη δήλωση (ορισμό) του υποπρογράμματος. Η λίστα των πραγματικών παραμέτρων (actual parameter list) καθορίζει τις παραμέτρους στην κλήση του υποπρογράμματος.
Πρόσεξε:
Πώς γίνεται η ανταλλαγή των τιμών ανάμεσα στις τυπικές και πραγματικές παραμέτρους; Δώσε ένα παράδειγμα ανταλλαγής παραμέτρων.
Σκέψη / Μεθοδολογία: Ζ η τ ο ύ ν τ α ι δ ύ ο π ρ ά γ μ α τ α : ( α ) π ε ρ ι γ ρ α φ ή τ ο υ μ η χ α ν ι σ μ ο ύ α ν τ α λ λ α γ ή ς , ( β ) σ υ γ κ ε κ ρ ι μ έ ν ο π α ρ ά δ ε ι γ μ α .
Λύση:
Ενδεικτική απάντηση: Κατά την κλήση, οι τιμές των πραγματικών παραμέτρων δίνονται στις αντίστοιχες τυπικές παραμέτρους κατά αντιστοίχιση θέσης (η 1η πραγματική στην 1η τυπική, κ.ο.κ.). Μετά την εκτέλεση, όταν φτάσει το ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ, οι τιμές των τυπικών παραμέτρων επιστρέφουν στις αντίστοιχες πραγματικές. Παράδειγμα: με ΚΑΛΕΣΕ Πράξεις(Α, Β, Διαφ1, Αθρ1) και Α=5, Β=7, η διαδικασία Πράξεις(X, Y, Διαφορά, Άθροισμα) παίρνει X=5, Y=7· υπολογίζει Διαφορά=-2, Άθροισμα=12· και κατά την επιστροφή, οι τιμές αυτές δίνονται πίσω στις Διαφ1=-2 και Αθρ1=12.
Πρόσεξε:
