Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 4 : Υποπρογράμματα I. Αλέξανδρος Τζάλλας

Σχετικά έγγραφα
Προγραμματισμός Ι Ενότητα 6 :

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 5 : Υποπρογράμματα II. Αλέξανδρος Τζάλλας

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

Δομές Δεδομένων Ενότητα 1

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 9 : Εγγραφές, Σύνολα. Αλέξανδρος Τζάλλας

Προγραμματισμός Διαδικτύου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 12 : Ασκήσεις Επανάληψης Β. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 7 : Πίνακες I. Αλέξανδρος Τζάλλας

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Προγραμματισμός Διαδικτύου

Λειτουργικά Συστήματα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχιτεκτονική υπολογιστών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Αρχιτεκτονική υπολογιστών

Αντικειμενοστραφής Προγραμματισμός

Ιστορία της μετάφρασης

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 3 : Εντολές Επανάληψης. Αλέξανδρος Τζάλλας

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Αρχιτεκτονική υπολογιστών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 2 : Σύνολα & Σχέσεις (2/2) Αλέξανδρος Τζάλλας

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Διοικητική των επιχειρήσεων

Φωνολογική Ανάπτυξη και Διαταραχές

Λειτουργικά Συστήματα

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Νοσηλευτική Σεμινάρια

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λειτουργικά Συστήματα

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Εισαγωγή στους Αλγορίθμους

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 13 : Ασκήσεις Επανάληψης Γ. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Λειτουργικά Συστήματα

Προγραμματισμός Διαδικτύου

Διοικητική των επιχειρήσεων

Νοσηλευτική Σεμινάρια

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Προγραμματισμός Διαδικτύου

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Διδακτική της Πληροφορικής

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Αρχιτεκτονική υπολογιστών

Αντικειμενοστραφής Προγραμματισμός

Εκκλησιαστικό Δίκαιο

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Αρχιτεκτονική υπολογιστών

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Ιστορία της μετάφρασης

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 12 : Μορφές Αγοράς Καραμάνης Κωνσταντίνος

Μάρκετινγκ Αγροτικών Προϊόντων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 8: ΈλεγχοςΡοήςΑνοικτούΒρόχου Φώτης Βαρζιώτης

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διοίκηση Ανθρώπινων Πόρων

Γεωργική Εκπαίδευση Ενότητα 9

Προγραμματισμός και Εφαρμογές Υπολογιστών

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Ι Ενότητα 4 : Υποπρογράμματα I Αλέξανδρος Τζάλλας

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε Προγραμματισμός Ι Αλέξανδρος Τζάλλας Λέκτορας Άρτα, 2015 Ενότητα 4 : Υποπρογράμματα I

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

4 Χρηματοδότηση Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Ηπείρου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Σκοποί ενότητας Να αναλυθεί με ακρίβεια η χρησιμότητα/σκοπός των υποπρογραμμάτων στην pascal. Να περιγραφούν οι συντακτικοί κανόνες των διαδικασιών. Να γίνει κατανοητός ο ρόλος, τρόπος σύνταξης και οι διαφορές τοπικών & καθολικών δεδομένων. Να γίνει κατανοητός ο ρόλος, τρόπος σύνταξης και οι διαφορές παραμέτρων τιμής & παραμέτρων μεταβλητής. 5 5

Περιεχόμενα ενότητας Υποπρογράμματα Διαδικασίες Δομή Διαδικασιών Τοπικά & καθολικά δεδομένα Παράμετροι τιμής Παράμετροι μεταβλητής 6 6

Εισαγωγή Ένας τρόπος επίλυσης πολύπλοκων προβλημάτων είναι ο χωρισμός τους σε μικρότερα και απλούστερα και στην συνέχεια η επίλυση αυτών των μικρότερων και απλούστερων προβλημάτων Τα μικρότερα μπορούν επίσης να χωρισθούν σε ακόμη μικρότερα και απλούστερα μέχρι του σημείου να είναι απλή η επίλυση τους Η μέθοδος αυτή επίλυσης προβλημάτων ονομάζεται «από πάνω προς τα κάτω» (top down). Τα υποπρογράμματα είναι ο μηχανισμός που προσφέρει η Pascal για την υλοποίηση αυτή της μεθόδου επίλυσης σύνθετων προβλημάτων 7 7

Υποπρογράμματα Η Pascal διαθέτει δύο τύπους υποπρογραμμάτων: Τις διαδικασίες (procedures) Τις συναρτήσεις (functions) 8 8

Διαδικασίες 1/3 Παράδειγμα program paradeigma; procedure minima; {Διαδικασία με όνομα minima} write( Μήνυμα της διαδικασίας ); end; {Κύριο πρόγραμμα} write( Μήνυμα του κυρίως προγράμματος ); minima; {Kλήση τις διαδικασίας} end. 9 9

Διαδικασίες 2/3 Παράδειγμα: Yπολογισμού εμβαδού ορθογωνίου program Emvado_orthogwniou; var a, b, emvado : integer; {--------------------------------------} procedure Eisagwgi_dedomenwn; write( Δώσε μήκη πλευρών ); write( a= ); readln(a); write( b= ); readln(b); end; {--------------------------------------} procedure Ypologismos_emvadou; emvado := a * b; end; {--------------------------------------} procedure Emfanisi_apotelesmatos; writeln( Το εμβαδόν είναι:,emvado); end; {--------------------------------------} Eisagwgi_dedomenwn; Ypologismos_emvadou; Emfanisi_apotelesmatos; end. program Emvado_orthogwniou; var end. a,b,emvado: integer; write( Δώσε μήκη πλευρών ); write( a= ); readln(a); write( b= ); readln(b); emvado:= a * b; writeln( Το εμβαδόν είναι:,emvado); 10 1

Διαδικασίες 3/3 Διαδικασία (procedure) είναι ένας από τους δύο τύπους υποπρογραμμάτων που υποστηρίζει η Pascal. Μια διαδικασία μπορεί να σχεδιαστεί έτσι ώστε να αποτελεί ένα ανεξάρτητο και αυτοδύναμο πρόγραμμα, το οποίο παίρνει ένα ή περισσότερα δεδομένα εισόδου παράγει ένα ή περισσότερα αποτελέσματα εξόδου Η σχεδίαση ανεξάρτητων διαδικασιών επιτρέπει την ανάπτυξη και τη δοκιμή της κάθε μιας χωριστά 11 1

Δομή Διαδικασιών 1/2 Έχουν ίδια δομή με τα προγράμματα της Pascal Αποτελούνται από τρία τμήματα Την επικεφαλίδα της διαδικασίας Το τμήμα δηλώσεων Το σώμα της διαδικασίας Επικεφαλίδα Διαδικασίας; Τμήμα δηλώσεων; Σώμα κυρίως προγράμματος; program paradeigma; var a, b, c : integer; a:=5 ; b:=10; c:=a+b; write(c); end. procedure paradeigma; var a, b, c : integer; a:=5 ; b:=10; c:=a+b; write(c); end. end 12 1

Δομή Διαδικασιών 2/2 Η επικεφαλίδα της διαδικασίας αποτελείται από: την λέξη procedure ένα όνομα μία λίστα παραμέτρων PROCEDURE PROCEDURE Όνομα Διαδικασίας Όνομα Διαδικασίας (Λίστα παραμέτρων) (Λίστα Παραμέτρων) Το όνομα χαρακτηρίζει την διαδικασία και χρησιμοποιείται για την κλήση / εκτέλεση της από το υπόλοιπο πρόγραμμα Η λίστα παραμέτρων είναι μια λίστα μεταβλητών που χρησιμοποιείται για ανταλλαγή δεδομένων μεταξύ της διαδικασίας και του κυρίως προγράμματος 13 1

Κλήση διαδικασιών Η κλήση μιας διαδικασίας (από το κυρίως πρόγραμμα ή από άλλη διαδικασία) γίνεται με την εκτέλεση μιας πρότασης που περιέχει το όνομα της. Μετά την κλήση (και εκτέλεση) μιας διαδικασίας, το πρόγραμμα συνεχίζει με τις υπόλοιπες εντολές του προγράμματος Πως λειτουργεί ο μεταφραστής end. Κυρίως πρόγραμμα Εντολή-1 Κλήση διαδικασίας Α Εντολή-2 procedure A; Εντολές της διαδικασίας Α end; 14 1

Τοπικά & καθολικά δεδομένα Τα δεδομένα που περιέχει το τμήμα δηλώσεων του κύριου προγράμματος λέγονται καθολικά (global), γιατί μπορούν να χρησιμοποιηθούν σε όλο το πρόγραμμα και στις διαδικασίες που υπάρχουν μέσα σε αυτό Αντίθετα τα δεδομένα που περιέχει το τμήμα δηλώσεων μιας διαδικασίας (σταθερές, μεταβλητές, κλπ) λέγονται τοπικά (local), γιατί αναγνωρίζονται μόνο μέσα στη διαδικασία όπου ορίζονται και δεν επηρεάζουν ή επηρεάζονται από τις δηλώσεις του κύριου προγράμματος ή άλλων διαδικασιών ακόμη και αν έχουν το ίδιο όνομα 15 1

Παράδειγμα program paradeigma; const a = 10; var b, c, d : integer; { ------------------------- } procedure prosthesi; var x, y : integer; write( Δώσε δύο αριθμούς ); read(x, y); c := x + y; write(c); b := c; write(a); end; { ------------------------- } write(b); prosthesi; write(b); write(c); d := x + y;{λάθος γιατί οι x και y είναι άγνωστες στο κυρίως πρόγραμμα} Οι μεταβλητές b, c, d ισχύουν για όλο το πρόγραμμα. Ακόμη και μέσα στο υποπρόγραμμα prosthesi Οι μεταβλητές x, y ισχύουν μόνο μέσα στο υποπρόγραμμα prosthesi. Στο υπόλοιπο πρόγραμμα δεν αναγνωρίζονται από τον μεταφραστή write(a); end. 16 1

Παράμετροι Μια διαδικασία όπως και ένα πρόγραμμα σχεδιάζεται για να εκτελεί κάποιες δουλειές / επεξεργασίες πάνω σε κάποια δεδομένα Μια διαδικασία λοιπόν απαιτεί έναν τρόπο επικοινωνίας τόσο με το κύριο πρόγραμμα όσο και με τις άλλες διαδικασίες Ένας τρόπος επικοινωνίας είναι οι καθολικές μεταβλητές Ο τρόπος αυτός παρουσιάζει σημαντικά μειονεκτήματα. Ένας άλλος τρόπος (ο συνηθέστερος) είναι οι παράμετροι (parameters) Είσοδος τιμών Πρόγραμμα Έξοδος αποτελεσμάτων Είσοδος τιμών Διαδικασία Έξοδος αποτελεσμάτων 17 1

Παράμετροι 1/4 Η επικεφαλίδα μιας διαδικασίας περιέχει (προαιρετικά) εκτός από το όνομα της και μια λίστα μεταβλητών και τους τύπους δεδομένων τους. Οι μεταβλητές αυτές αναγνωρίζονται μόνο μέσα στη διαδικασία όπου δηλώνονται (τοπικές) Ονομάζονται τυπικές παράμετροι (formal parameters) γιατί οι πραγματικές τους τιμές δεν είναι γνωστές μέχρι την κλήση της διαδικασίας Κυρίως πρόγραμμα και άλλα υποπρογράμματα Δεδομένα procedure prosthesi(x,y: integer; z:real ; c: char)......... end; 18 1

Παράμετροι 2/4 program asterakia_oxi_perasma_timwn; procedure emfanise_stars; var i : integer; for i:=1 to 10 do write('*'); end; {--------------------------} emfanise_stars; end. Eκδοχή στην οποία ο αριθμός των αστεριών εισάγεται από τον χρήστη program asterakia_perasma_timwn; var asterakia:integer; procedure emfanise_stars(a: integer); var Τυπική i : integer; παράμετρος (τιμής) for i:=1 to a do write('*'); end; {--------------------------} emfanise_stars(10); end. Πραγματική παράμετρος write( Posa asterakia na emfanisw? ); read(asterakia); emfanise_stars(asterakia); end. 19 1

Παράμετροι 3/4 Παράμετροι τιμής (value parameters) χρησιμοποιούνται μόνο για να διοχετεύσουμε τιμές μέσα στη διαδικασία και για τον λόγο αυτό ονομάζονται και παράμετροι εισόδου Παράμετροι μεταβλητής (variable parameters) χρησιμοποιούνται επιπλέον για καταχώρηση αποτελεσμάτων και διοχέτευση τους έξω από τη διαδικασία και για το λόγο αυτό ονομάζονται και παράμετροι εξόδου Οι παράμετροι μεταβλητής δηλώνονται με τη λέξη κλειδί var πριν από το όνομα τους 2

Παράμετροι 4/4 Κυρίως πρόγραμμα και άλλα υποπρογράμματα Δεδομένα procedure parad2e (a,b: integer; var c:real; var e: char)......... end; Παράμετροι τιμής Παράμετροι μεταβλητής λόγω του var Παράμετροι μεταβλητής λόγω του var 21 2

Πραγματικοί Παράμετροι 1/2 Για να καλέσουμε μια διαδικασία με παραμέτρους, δίπλα στο όνομα της διαδικασίας βάζουμε μέσα σε παρένθεση μια λίστα τιμών, τόσες όσες είναι και οι τυπικές παράμετροι της διαδικασίας Οι τιμές αυτές ονομάζονται πραγματικές παράμετροι (actual parameters) Οι τιμές των πραγματικών παραμέτρων τοποθετούνται στις τυπικές παραμέτρους της διαδικασίας κατά την κλήση της program paradrp; var x, y : integer; Παράμετροι τιμής (χωρίς var) parad2e (5.2, 10.4, 12, A ); end. Πραγματικές παράμετροι Παράμετροι μεταβλητής (με var) procedure parad2e(a,b: real ; var c: integer ; var e:char) write(a, b, c, e) end; Τυπικές παράμετροι 22 2

Πραγματικοί Παράμετροι 2/2 Οι πραγματικές παράμετροι αντιστοιχούν μία προς μία στις τυπικές παραμέτρους της διαδικασίας Ειδικότερα: Ο αριθμός των πραγματικών παραμέτρων πρέπει να είναι ίσος με τον αριθμό των τυπικών παραμέτρων της αντίστοιχης διαδικασίας Κάθε πραγματική παράμετρος αντιστοιχεί στην τυπική παράμετρο που κατέχει την ίδια θέση στη λίστα των τυπικών παραμέτρων Ο τύπος δεδομένων κάθε πραγματικής παραμέτρου πρέπει να συμφωνεί με τον τύπο της αντίστοιχης τυπικής παραμέτρου 23 2

Προσοχή 1/2 Πραγματικές παράμετροι Τυπικές παράμετροι τιμής Οι πραγματικές παράμετροι που αντιστοιχούν σε τυπικές παραμέτρους τιμής, κατά την κλήση της διαδικασίας αντικαθιστούν μόνο την τιμή τους στις παραμέτρους της διαδικασίας Αυτές οι πραγματικές παράμετροι μπορεί να είναι σταθερές, μεταβλητές ή εκφράσεις Στην περίπτωση των μεταβλητών η τιμή τους παραμένει ίδια μετά την κλήση της διαδικασίας program parametroi_timis; var x, y, athroisma : integer; {---------------------------------} procedure prosthesi( a, b, c : integer); c := a + b; write( To athroisma einai, c) end; {---------------------------------} x := 5; y := 10; prosthesi(x, y, athroisma); write( To athroisma einai, athroisma); end. To athroisma einai 15 To athroisma einai 0 24 2

Προσοχή 2/2 Πραγματικές παράμετροι Τυπικές παράμετροι τιμής Οι πραγματικές παράμετροι που αντιστοιχούν σε τυπικές παραμέτρους μεταβλητής, κατά την κλήση της διαδικασίας αντικαθιστούν την διεύθυνση τους στις παραμέτρους της διαδικασίας Αυτό έχει σαν αποτέλεσμα ότι οποιαδήποτε αλλαγή στις παραμέτρους μεταβλητής μέσα στην διαδικασία, προκαλεί και αλλαγή των πραγματικών παραμέτρων που αντιστοιχούν σε αυτές. Για τον λόγο αυτό οι πραγματικές παράμετροι μπορεί να είναι μόνο μεταβλητές program parametroi_metavlitis; var x,y,athroisma: integer; {---------------------------------} procedure prosthesi(a,b:integer; var c:integer); c := a + b; writeln('to athroisma einai', c); end; {---------------------------------} x := 5; y := 10; prosthesi(x, y, athroisma); writeln('to athroisma einai', athroisma); end. To athroisma einai 15 Έτσι εξηγείται πως οι παράμετροι μεταβλητής χρησιμοποιούνται και για To athroisma einai 15? εξαγωγή δεδομένων από ένα υποπρόγραμμα 25 2

Συμπεράσματα - Aνακεφαλαίωση Υπάρχουν δύο τρόποι επικοινωνίας μιας διαδικασίας με το κύριο πρόγραμμα και τα άλλα υποπρογράμματα: οι καθολικές μεταβλητές οι παράμετροι Υπάρχουν δύο είδη τυπικών παραμέτρων: Οι παράμετροι τιμής (μόνο εισάγουν δεδομένα στη διαδικασία) Καθολικές μεταβλητές Είσοδος τιμών Παράμετροι τιμής Παράμετροι μεταβλητής Διαδικασία Καθολικές μεταβλητές Έξοδος αποτελεσμάτων Παράμετροι μεταβλητής Οι παράμετροι μεταβλητής (και εισάγουν και εξάγουν δεδομένα στην / από την διαδικασία) 26 2

Τυπικές παράμετροι Παράμετροι τιμής vs. Παράμετροι μεταβλητής program byreference; var katholiki: integer; program byvalue; var katholiki: integer; procedure proc(topiki :integer); writeln('τοπική = ', topiki); topiki := 333; writeln('τοπική = ', topiki); end; procedure proc(var topiki :integer); writeln('τοπική = ', topiki); topiki := 333; writeln('τοπική = ', topiki); end; katholiki := 5; proc(katholiki); writeln('καθολική = ', katholiki); end. katholiki := 5; proc(katholiki); writeln('καθολική = ', katholiki); end. 27 2

2 Βιβλιογραφία Βλαχάβας Ι. (1994). Η γλώσσα προγραμματισμού Pascal. Εκδόσεις Γαρταγάνης Διονύσιος. Κάβουρας Ι.Κ. (1999). Δομημένος Προγραμματισμός με Pascal. Εκδόσεις Κλειδάριθμος. Αλεβίζου Θ., & Καμπουρέλης Α. (1995). Μαθήματα Προγραμματισμού: Εισαγωγη με τη Γλώσσα Pascal. Εκδόσεις Παπασωτηρίου. Cooper D. (1993). Oh! Pascal!, An Introduction to Computing, του. Εκδόσεις Norton. Larry R.N. (1998). Advanced Programming in Pascal with Data Structures. Εκδόσεις Macmillan USA. Τσελίκης Γ.Σ., Τσελίκας Ν.Δ. (2012). C: από τη Θεωρία στην Εφαρμογή (B' Έκδοση). Εκδόσεις Παπασωτηρίου. Aho A.V., Hopcroft J.E., & Ullman J.D. (1974). The design and analysis of computer algorithms. Εκδόσεις Addison Wesley. Abelson Η., Sussman G.J., Sussman J. (1985). Structure and Interpretation of Computer Programs, MIT Press, McGraw Hill Book Company.

2 29 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Αλέξανδρος Τζάλλας. Προγραμματισμός Ι. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/openclass/courses/comp111/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 3

3 Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

3 Τέλος Ενότητας Υποπρογράμματα Ι