|
Συναρτήσεις
Η ΓΛΩΣΣΑ επιτρέπει τη δημιουργία συναρτήσεων από το χρήστη, οι οποίες μπορούν στη
συνέχεια να χρησιμοποιηθούν όπως και οι ενσωματωμένες
συναρτήσεις. Το αποτέλεσμα κάθε συνάρτησης έχει πάντα τιμή κάποιου τύπου δεδομένων
και δηλώνεται μετά τις παραμέτρους της συνάρτησης (ΑΚΕΡΑΙΑ,
ΠΡΑΓΜΑΤΙΚΗ, ΧΑΡΑΚΤΗΡΑΣ ή
ΛΟΓΙΚΗ). Οι συναρτήσεις δεν επιτρέπεται να επιστρέφουν πίνακες. Όλες οι
συναρτήσεις πρέπει να περιέχουν μία εντολή του τύπου ΌνομαΣυνάρτησης <- τιμή, ώστε να επιστρέφουν
κάποια τιμή στο καλών υποπρόγραμμα.
Παράδειγμα:
ΠΡΟΓΡΑΜΜΑ Συναρτήσεις
!Παράδειγμα υλοποίησης συναρτήσεων.
!Υλοποιεί τις συναρτήσεις ΑπόλυτηΤιμή και Μέγιστος.
ΑΡΧΗ
ΓΡΑΨΕ Μέγιστος(ΑπόλυτηΤιμή(-2), 1) !Θα γράψει «2»
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΣΥΝΑΡΤΗΣΗ ΑπόλυτηΤιμή(χ): ΑΚΕΡΑΙΑ
!Βρίσκει την απόλυτη τιμή του χ χωρίς να χρησιμοποιήσει την Α_Τ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: χ
ΑΡΧΗ
ΑΝ χ >= 0 ΤΟΤΕ
ΑπόλυτηΤιμή <- χ
ΑΛΛΙΩΣ
ΑπόλυτηΤιμή <- -χ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ Μέγιστος(α, β): ΑΚΕΡΑΙΑ
!Επιστρέφει το Μέγιστο μεταξύ των α και β
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: α, β
ΑΡΧΗ
ΑΝ α >= β ΤΟΤΕ
Μέγιστος <- α
ΑΛΛΙΩΣ
Μέγιστος <- β
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Παρατηρήσεις:
- Αν δεν υπάρχει εντολή τύπου ΌνομαΣυνάρτησης <- τιμή στο εσωτερικό μιας συνάρτησης
ο Διερμηνευτής εμφανίζει σφάλμα εκτέλεσης, ώστε να ειδοποιηθεί ο χρήστης για την
παράλειψη.
- Αν το όνομα μιας συνάρτησης εμφανιστεί οπουδήποτε αλλού εκτός από το αριστερό
μέρος μιας ανάθεσης τιμής προκαλείται αναδρομή. Το ίδιο συμβαίνει στις περισσότερες
γλώσσες προγραμματισμού.
- Σαν παράμετρος μπορεί να περαστεί οτιδήποτε έχει τιμή, όπως μεταβλητές, πίνακες,
σταθερές, εκφράσεις, ακόμα και εκφράσεις που περιέχουν κλήση συναρτήσεων.
- Οι παράμετροι στις συναρτήσεις περνιούνται με τιμή, δηλαδή οποιαδήποτε
αλλαγή στις τυπικές παραμέτρους μιας συνάρτησης δεν επηρεάζει τις πραγματικές παραμέτρους
της συνάρτησης.
- Μία συνάρτηση χωρίς παραμέτρους δηλώνεται και καλείται χωρίς παρενθέσεις.
- Επιτρέπονται μέχρι 1000 αναδρομικές κλήσεις (μία συνάρτηση να καλεί τον
εαυτό της). Αν γίνουν παραπάνω εμφανίζεται το μήνυμα «Υπερχείλιση στοίβας» και το
πρόγραμμα τερματίζεται. Φυσικά επαναληπτικές κλήσεις επιτρέπονται απεριόριστες.
- Μπορείτε να δείτε κάποιες ιδιαιτερότητες της ΓΛΩΣΣΑΣ στη
μεταβίβαση παραμέτρων.
|
|