Ορίσματα και εμβέλειες
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Δομή των συναρτήσεων και διαδικασιών
Οι συναρτήσεις και οι διαδικασίες έχουν τη μορφή ενός προγράμματος.
Μετά την επικεφαλίδα της συνάρτησης ή της διαδικασίας ορίζουμε:
- Σταθερές
- Μεταβλητές
- Άλλες συναρτήσεις και διαδικασίες
- Τις εντολές που θα εκτελεστούν
Παράδειγμα:
program Example;
const
g = 9.81;
var
height : real;
procedure clearScreen;
const
numLines = 24;
var
count : integer;
begin
count := 0;
while count < numLines do
writeln;
end;
begin
clearScreen;
readln(height);
writeln(sqrt(2 * height / g), 's')
end.
Ορίσματα
Οι τυπικές παράμετροι (formal parameters) που ορίζονται
στην επικεφαλίδα της συνάρτησης ή της διαδικασίας μας επιτρέπουν να
της περνάμε τιμές.
Στο σώμα της συνάρτησης ή της διαδικασίας οι παράμετροι αυτές έχουν την
τιμή την οποία περάσαμε κατά την κλήση και μπορούμε να τις χρησιμοποιήσουμε
σαν μεταβλητές.
Ορίζουμε δύο είδη παραμέτρων:
- παράμετρος τιμής (value parameter)
-
Αλλαγές στην τιμή της παραμέτρου στο σώμα της διαδικασίας ή της
συνάρτησης δεν αντικατοπτρίζονται έξω από τη συνάρτηση.
Παράδειγμα ορισμού:
procedure test(i : integer);
- παράμετρος μεταβλητής (variable parameter)
-
Αλλαγές στην τιμή της παραμέτρου στο σώμα της διαδικασίας ή της
συνάρτησης αλλάζουν την τιμή της μεταβλητής η οποία υποχρεωτικά
δώθηκε σαν παράμετρος κατά την κλήση.
Παράδειγμα ορισμού:
procedure test(var i : integer);
Εμβέλεια
- Τα ίδια ονόματα μπορούν να επαναχρησιμοποιούνται χωρίς πρόβλημα μέσα σε
συναρτήσεις και διαδικασίες.
- Όταν αναφερόμαστε σε ένα όνομα με το οποίο έχουν οριστεί πολλές
οντότητες τότε αναφερόμαστε στην οντότητα η οποία βρίσκεται στο
εσώτερο σημείο ορισμού σε σχέση με το σημείο χρήσης.
- Μπορούμε να φανταστούμε το πρόγραμμα και τις διαδικασίες σαν κουτιά το
ένα μέσα στο άλλο. Κάθε κουτί βλέπει αυτά που έχουν οριστεί έξω από αυτό
(εκτός αν τα έχει ορίσει και το ίδιο) αλλά τα εξωτερικά κουτιά δεν βλέπουν
τι έχει οριστεί στα εσωτερικά κουτιά.
- Απτό σχετικό παράδειγμα αποτελεί η λειτουργία της τοπικής αυτοδιοίκησης.
Σε κάθε επίπεδο ισχύουν οι κανόνες που ορίζονται στα ανώτερα επίπεδα
(αντίστοιχα οι μεταβλητές που ορίσθηκαν έξω από τη διαδικασία), αλλά
μπορούν να οριστούν και νέοι κανόνες οι οποίοι φυσικά δεν ισχύουν στα
ανώτερα επίπεδα (αντίστοιχα, έξω από τη διαδικασία).
Παράδειγμα
program Test;
var
a : integer; {a1}
procedure Dummy;
var
a : integer; {a2}
begin
a := 3 {use a2}
end;
begin
a := 8 {use a1}
end.
Βιβλιογραφία
- Θ. Αλεβίζου, Α. Καμπουρέλη
Μαθήματα προγραμματισμού: Εισαγωγή με τη γλώσσα Pascal.
σ. 167-175.
Θυμέλη, 1995.
- Doug Cooper and
Michael Clancy.
Oh! Pascal, pages 67–98.
W. W. Norton & Company, second edition, 1985.
Ασκήσεις
Pascal 03
- Να γραφεί πρόγραμμα σε Pascal το οποίο να περιέχει τα
παρακάτω στοιχεία:
- Διαδικασία INC με όρισμα παράμετρο μεταβλητής η οποία να αυξάνει
την τιμή της κατά 1.
- Διαδικασία COUNT με όρισμα παράμετρο τιμής η οποία να τυπώνει τους
αριθμούς από την τιμή αυτή μέχρι το 10 κάνοντας χρήση της διαδικασίας
INC.
- Κλήση της διαδικασίας COUNT με όρισμα σε μεταβλητή για να τυπωθούν
οι αριθμοί από το 3 μέχρι το 10.
- Εκτύπωση της τιμής της παραπάνω μεταβλητής μετά το τέλος της
διαδικασίας.
- Όλες οι μεταβλητές και τα ονόματα των ορισμάτων στο πρόγραμμα
να είναι ίδια.
(Η απαίτηση αυτή έχει εκπαιδευτικό μόνο χαρακτήρα. Κανονικά όλες
οι μεταβλητές πρέπει να ονοματίζονται με τρόπο ώστε να αποφεύγεται
η πιθανότητα σύγχυσης.)
Περισσότερες λεπτομέρειες για τις ασκήσεις