Εμβέλεια μεταβλητών - σταθερών
Έστω το ακόλουθο πρόγραμμα που έχει γραφεί σε ΓΛΩΣΣΑ και το οποίο :
- διαβάζει δύο ακέραιες τιμές
- καλεί μια συνάρτηση η οποία υπολογίζει και επιστρέφει τον μέσο όρο των δύο αυτών τιμών και
- εμφανίζει το αποτέλεσμα που επέστρεψε η συνάρτηση.
ΠΡΟΓΡΑΜΜΑ Π1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, β
ΑΡΧΗ
ΔΙΑΒΑΣΕ α, β
ΓΡΑΨΕ Σ1(α, β)
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ Σ1(γ, δ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: γ, δ
ΑΡΧΗ
Σ1 <- (γ + δ)/2
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Αν πάμε και προσθέσουμε την εντολή ΓΡΑΨΕ γ στο τέλος του προγράμματος τι θα συμβεί; Το πρόγραμμα δεν θα τρέξει, θα παρουσιαστεί σφάλμα! Η μεταβλητή γ δεν δηλώθηκε στο πρόγραμμα και συνεπώς δεν την αναγνωρίζει. Το ίδιο θα συνέβαινε αν προσπαθούσαμε να χρησιμοποιήσουμε την μεταβλητή α στην συνάρτηση. Με άλλα λόγια, μία μεταβλητή μπορεί να χρησιμοποιηθεί μόνο εκεί που έχει δηλωθεί.
Το τμήμα του προγράμματος που ισχύουν οι μεταβλητές λέγεται εμβέλεια (scope) μεταβλητών.
Οι γλώσσες προγραμματισμού ανάλογα με την εμβέλεια που έχουν οι μεταβλητές τους διακρίνονται σε τρείς κατηγορίες:
- Γλώσσες με Απεριόριστη εμβέλεια
- Γλώσσες με Περιορισμένη εμβέλεια και
- Γλώσσες με Μερικώς περιορισμένη εμβέλεια.
Απεριόριστης εμβέλειας
Σε αυτές τις γλώσσες όλες οι μεταβλητές και όλες οι σταθερές είναι γνωστές και μπορούν να χρησιμοποιούνται σε οποιοδήποτε τμήμα του προγράμματος, άσχετα που δηλώθηκαν. Οι μεταβλητές ονομάζονται καθολικές.
Η απεριόριστη εμβέλεια καταστρατηγεί την αρχή της αυτονομίας των υποπρογραμμάτων, δημιουργεί πολλά προβλήματα και τελικά είναι αδύνατη για μεγάλα προγράμματα με πολλά υποπρογράμματα, αφού ο καθένας που γράφει κάποιο υποπρόγραμμα πρέπει να γνωρίζει τα ονόματα όλων των μεταβλητών που χρησιμοποιούνται στα υπόλοιπα υποπρογράμματα.
Περιορισμένης εμβέλειας
Στην κατηγορία αυτή υπάγεται και η ΓΛΩΣΣΑ. Η περιορισμένη εμβέλεια υποχρεώνει όλες τις μεταβλητές που χρησιμοποιούνται σε ένα τμήμα προγράμματος, να δηλώνονται σε αυτό το τμήμα. Όλες οι μεταβλητές ονομάζονται τοπικές, διότι ισχύουν για το υποπρόγραμμα στο οποίο δηλώθηκαν.
Τα πλεονεκτήματα της περιορισμένης εμβέλειας είναι η απόλυτη αυτονομία όλων των υποπρογραμμάτων και η δυνατότητα να χρησιμοποιείται οποιοδήποτε όνομα, χωρίς να ενδιαφέρει αν το ίδιο χρησιμοποιείται σε άλλο υποπρόγραμμα.
Μερικώς περιορισμένη εμβέλεια
Η περιορισμένη και η απεριόριστη εμβέλεια είναι τα δύο άκρα. Η μερικώς περιορισμένη είναι στη μέση. Εδώ ο προγραμματιστής αποφασίζει ποιές μεταβλητές θέλει να είναι καθολικές και ποιές τοπικές.
Η μερικώς περιορισμένη εμβέλεια προσφέρει μερικά πλεονεκτήματα στον πεπειραμένο προγραμματιστή, αλλά για τον αρχάριο περιπλέκει το πρόγραμμα δυσκολεύοντας την ανάπτυξή του.
Ερωτήσεις ανάπτυξης απο Πανελλαδικές εξετάσεις
Ποιες μεταβλητές ονομάζονται καθολικές;
Η χρήση καθολικών μεταβλητών σε ένα πρόγραμμα καταστρατηγεί μία από τις βασικές αρχές του τμηματικού προγραμματισμού (ιδιότητες που πρέπει να διακρίνουν τα υποπρογράμματα). Να αναφέρετε ποια είναι αυτή η ιδιότητα και να εξηγήσετε γιατί καταστρατηγείται. (2016-Α3)
- Τι ονομάζεται εμβέλεια σε προγραμματιστικό περιβάλλον;
Τι εμβέλεια χρησιμοποιείται στη Γλώσσα; (Ε2017-Α3α, ΕΞ2017-Α3α) Να αναφέρετε και να περιγράψετε το είδος της εμβέλειας (σταθερών, μεταβλητών) που υπάρχει στη ΓΛΩΣΣΑ. (Ε2019-Α5, ΕΞ2019-Α5)