Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

10.5.2 Ορισμός και κλήση διαδικασιών

Κάθε διαδικασία έχει την ακόλουθη δομή. ΔΙΑΔΙΚΑΣΙΑ Όνομα (λίστα παραμέτρων) Τμήμα δηλώσεων ΑΡΧΗ εντολές ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

Κάθε διαδικασία εκτελείται όταν καλείται από το κύριο πρόγραμμα ή άλλη διαδικασία. Η κλήση σε διαδικασία πραγματοποιείται με την εντολή ΚΑΛΕΣΕ, που ακολουθείται από το όνομα της διαδικασίας συνοδευόμενο μέσα σε παρενθέσεις με τη λίστα παραμέτρων.

Η γενική μορφή της εντολής ΚΑΛΕΣΕ είναι

Σύνταξη ΚΑΛΕΣΕ όνομα-διαδικασίας (λίστα-παραμέτρων) Παράδειγμα ΚΑΛΕΣΕ Πράξεις (Α, Β, Διαφορά) Λειτουργία Η εκτέλεση του προγράμματος διακόπτεται και εκτελούνται οι εντολές της διαδικασίας που καλείται. Μετά το τέλος της διαδικασίας η εκτέλεση του προγράμματος συνεχίζεται από την εντολή που ακολουθεί. Η λίστα των παραμέτρων ορίζει τις τιμές που περνούν στη διαδικασία και τις τιμές που αυτή επιστρέφει. Η λίστα παραμέτρων δεν είναι υποχρεωτική.

Στο προηγούμενο παράδειγμα η κλήση των δύο διαδικασιών έγινε με τις εντολές ΚΑΛΕΣΕ Είσοδος_δεδομένων(R) ΚΑΛΕΣΕ Εκτύπωση(Ε)

Σε κάθε περίπτωση κλήσης διαδικασίας μπορεί να γίνεται πέρασμα τιμών μέσω της λίστας παραμέτρων. Πιο συγκεκριμένα, στην περίπτωση της διαδικασίας Είσοδος_δεδομένων γίνεται επιστροφή στο κύριο πρόγραμμα της τιμής της ακτίνας, ενώ στη διαδικασία Εκτύπωση γίνεται μεταβίβαση της τιμής του εμβαδού από το κύριο πρόγραμμα στη διαδικασία. Δηλαδή, η Είσοδος_δεδομένων δέχεται μια τιμή από πληκτρολόγιο, την εκχωρεί στη μεταβλητή Αριθμός και κατά την επιστροφή (μετά το τέλος της διαδικασίας) γίνεται μεταβίβαση αυτής της τιμής στη μεταβλητή R του κύριου προγράμματος. Αντίθετα στη διαδικασία Εκτύπωση κατά την κλήση της μεταβιβάζεται η τιμή της μεταβλητής Ε του κύριου προγράμματος στη μεταβλητή Αποτέλεσμα της διαδικασίας.

Στο συγκεκριμένο παράδειγμα κάθε διαδικασία έχει από μία παράμετρο. Στη γενική περίπτωση μπορούν να υπάρχουν καμία, μία ή περισσότερες παράμετροι. Όταν υπάρχουν πολλές παράμετροι, τότε άλλες χρησιμοποιούνται για να μεταβιβάσουν τιμές στη διαδικασία και άλλες για να επιστρέψουν τιμές στο κύριο πρόγραμμα.

Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται από το κύριο πρόγραμμα ή άλλη διαδικασία. Σε κάθε περίπτωση μετά το τέλος της εκτέλεσης της διαδικασίας γίνεται επιστροφή ακριβώς μετά το σημείο απ' όπου κλήθηκε.

Στη συνέχεια παρουσιάζεται το παράδειγμα 2 υλοποιημένο στις γλώσσες Pascal και Basic.

Προγραμματιστικό περιβάλλον Pascal

PROGRAM example2; VAR r,e:REAL; FUNCTION area(r:REAL):REAL; BEGIN area:=pi*sqr® END; PROCEDURE input(var x:REAL); BEGIN REPEAT write (`Δώσε την ακτίνα:'); readln(x) UNTIL x>0; END;

PROCEDURE output(result: REAL); BEGIN writeln (Το εμβαδό είναι :',result:6:2) END; BEGIN input®; e:=area®; output(e) END.

Προγραμματιστικό περιβάλλον Basic ` Παράδειγμα 3 DECLARE SUB Eisodos (nb!) DECLARE SUB Ektypwsh (res!) DECLARE FUNCTION Emvado! (r!) CLS CALL Eisodos® e = Emvado® CALL Ektypwsh(e) END SUB Eisodos (nb) DO INPUT "Δώσε την ακτίνα : ", nb LOOP UNTIL nb > 0 END SUB SUB Ektypwsh (res) PRINT "Το εμβαδό του κύκλου είναι :"; res END SUB FUNCTION Emvado ® pi = 3.14 Emvado = pi * r ^ 2 END FUNCTION