Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Σχετικά έγγραφα
ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

Υποπρογράµµατα Συναρτήσεις. Στόχοι Μαθήµατος. Οι µαθητές να µπορούν:

Κεφάλαιο 10 ο Υποπρογράµµατα

ιαφάνειες παρουσίασης #3

ΕΠΑ.Λ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική Προγραµµατισµός Υπολογιστών Κεφάλαιο 9 Σηµειώσεις 03. Εντολή Εκχώρησης - Αντικατάστασης

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Pascal. 15 Νοεμβρίου 2011

ιαφάνειες παρουσίασης #4

ιαφάνειες παρουσίασης #4

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ

Pascal. 26 Οκτωβρίου 2011

Κεφάλαιο 12 : ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ 03 Συναρτήσεις

Pascal - Βασικές Έννοιες

ιαφάνειες παρουσίασης #5

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

- program p_name(output); - uses crt;

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

Κεφάλαιο 7: Υπορουτίνες

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Pascal, απλοί τύποι, τελεστές και εκφράσεις

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

επιµέλεια Θοδωρής Πιερράτος

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

Κεφάλαιο 5ο: Εντολές Επανάληψης

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Κεφάλαιο 12 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

Προγραμματισμός Ι Ενότητα 6 :

Λογισµικό (Software SW) Γλώσσες

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Γ ΤΑΞΗ ΗΜΕΡΗΣΙΟΥ ΕΠΑ.Λ ΜΑΘΗΜΑ ΕΙ ΙΚΟΤΗΤΑΣ ΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΚΦΩΝΗΣΕΙΣ

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013

for for for for( . */

Συναρτήσεις. Υποπρόγραμμα

Αποτελέσματα προόδου

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

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

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

Δομές ελέγχου. ομαδοποίηση εντολών εκτέλεση εντολών υπό συνθήκη επανάληψη εντολών

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

- program p_name(input) - uses crt

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

Υπο-προγράμματα στη Fortran

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΑΠΑΝΤΗΣΕΙΣ. α- Σωστό β- Σωστό γ- Λάθος δ- Λάθος ε- Σωστό στ- Σωστό

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

Παράμετροι. Αναδρομή. Σχεδίαση Διεπαφής Χρήστη ΠΕΡΙΕΧΟΜΕΝΑ

Γραπτές εξετάσεις στο μάθημα: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Θ) Εισηγητής: Γεωργίου Χρήστος ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ. Β. Χαρακτήρας(Αλφαριθμητικά)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 12 : Υποπρογράµµατα 1 ο Φύλλο Εργασιών: Διαδικασίες ΑΠΑΝΤΗΣΕΙΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

Προγραμματισμός PASCAL

Επικοινωνία:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ιαφάνειες παρουσίασης #2

Ανάπτυξη και Σχεδίαση Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κανονική εξέταση, Φεβρουάριος 2005

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

a = 10; a = k; int a,b,c; a = b = c = 10;

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2007

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Κεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Transcript:

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Συναρτήσεις ΣΥΝΑΡΤΗΣΕΙΣ 1.1. Ο λόγος ύπαρξης των συναρτήσεων Όπως είδαµε µία διαδικασία µπορεί να υπολογίζει περισσότερα από ένα αποτελέσµατα τα οποία επιστρέφει χρησιµοποιώντας παραµέτρους µεταβλητής. Παράδειγµα 1 : Η παρακάτω διαδικασία sum_avg δέχεται ως δεδοµένα δύο αριθµούς και υπολογίζει το άθροισµα και τη µέση τιµή τους. 1 program sum_average; 2 var x,y,sum:integer; avg:real; 4 5 procedure sum_avg(a,b:integer; var ath:integer; var mo:real); 6 begin 7 ath := a+b; 8 mo := ath / 2; 9 end; 10 11 begin 12 write(' ώσε δύο αριθµούς χωρισµένους µε κενό:'); 1 readln(x,y); 14 sum_avg(x,y,sum,avg); 15 writeln('αθροισµα:', sum); 16 writeln('μέση τιµη:', avg:0:2); Στο παραπάνω παράδειγµα η διαδικασία sum_avg χρειάζεται δύο τιµές ως δεδοµένα (δύο αριθµούς) και παράγει δύο αποτελέσµατα (άθροισµα και µέση τιµή). Συνεπώς έχει δύο παραµέτρους τιµής (a,b) µέσω των οποίων δέχεται τα δεδοµένα έχει δύο παραµέτρους µεταβλητής (ath, mo) στις οποίες τοποθετεί τα δύο αποτελέσµατα στο κυρίως πρόγραµµα διαβάζονται δύο τιµές στις µεταβλητές x, y και καλείται η διαδικασία sum_avg(x,y,sum,avg)οπότε η τιµή της µεταβλητής x εκχωρείται στη µεταβλητή a της διαδικασίας και η τιµή της µεταβλητής y εκχωρείται στη µεταβλητή b της διαδικασίας. Η διαδικασία βάζει στη µεταβλητή ath το άθροισµα και στη µεταβλητή mo το µέσο όρο. Συνεπώς όταν ολοκληρωθεί η εκτέλεση της διαδικασίας, το κυρίως πρόγραµµα βρίσκει στη µεταβλητή sum το άθροισµα και στη µεταβλητή avg το µέσο όρο. Αν ο µόνος λόγος που χρειαζόµαστε το µέσο όρο είναι απλώς για να τον τυπώσουµε δεν θα ήταν πιο απλό αν µπορούσαµε να γράψουµε κάτι σαν αυτό writeln('μέση τιµη:', avg(x,y):0:2); 1

Παράδειγµα 2 : Αν υποθέσουµε ότι θέλουµε ένα υποπρόγραµµα που θα δέχεται ως δεδοµένα δύο αριθµούς, έστω m και n και θα υπολογίζει τη δύναµη m n. 1 program dynami; 2 var m,n,pow:integer; 4 procedure power(basi, ekth:integer; var dyn:integer); 5 var I:integer; 6 begin 7 dyn := 1; 8 for I := 1 to ekth do 9 dyn := dyn*basi; 10 end; 11 12 begin 1 write(' ώσε τη βάση και τον εκθέτη : '); 14 readln(m,n); 15 power(m,n,pow); 16 writeln(m, ' εις την ', n, ' = ', pow); Αν µπορούσαµε να γράψουµε τη γραµµή 16 του παραπάνω προγράµµατος κάπως έτσι writeln(m, ' εις την ', n, ' = ', power(m,n)). Δηλαδή για τον υπολογισµό της δύναµης να καλούσαµε ένα είδος συνάρτησης (µε την έννοια που την γνωρίζουµε από τα µαθηµατικά) η οποία να µας επιστρέφει το αποτέλεσµα στο σηµείο όπου κλήθηκε. Θα ήταν πιο απλά καθώς δεν θα χρειαζόταν να χρησιµοποιούµε παραµέτρους µεταβλητής και το υποπρόγραµµα δεν θα χρειαζόταν να πειράζει καθολικές µεταβλητές παρά µόνο τοπικές. 1.2. Συναρτήσεις Όταν λοιπόν ένα υποπρόγραµµα θέλουµε να παράγει ένα µόνο αποτέλεσµα (τιµή) και δεν χρειάζεται να επιφέρει αλλαγές σε µεταβλητές εκτός των τοπικών µπορεί να υλοποιηθεί σαν συνάρτηση. Οι συναρτήσεις είναι ο δεύτερος τύπος υποπρογραµµάτων της Pascal. Μια συνάρτηση είναι ένα υποπρόγραµµα που α. δέχεται έναν αριθµό δεδοµένων εισόδου, β. εκτελεί κάποια επεξεργασία γ. και παράγει σαν αποτέλεσµα µία µόνο τιµή. Μια συνάρτηση καλείται σαν µια εντολή της Pascal δίνοντας το όνοµά της (πιθανόν ακολουθούµενο από πραγµατικές παραµέτρους). Κάθε συνάρτηση που χρησιµοποιούµε σε ένα πρόγραµµα πρέπει να έχει δηλωθεί στο τµήµα δηλώσεων του προγράµµατος αµέσως µετά από σταθερές και µεταβλητές. Αν στο πρόγραµµα µας έχουµε πολλά υποπρογράµµατα (διαδικασίες και συναρτήσεις) δεν έχει σηµασία η σειρά δήλωσής τους παρά µόνο αν ένα υποπρόγραµµα καλεί ένα άλλο. Τότε το καλούµενο υποπρόγραµµα πρέπει να έχει δηλωθεί πριν από το καλών. 2

1.. Δοµή συνάρτησης Μια συνάρτηση έχει την ίδια δοµή µε µια διαδικασία µε τη διαφορά ότι αντί για τη λέξη procedure έχουµε τη λέξη function και αµέσως µετά τις τυπικές παραµέτρους ακολουθεί ο τύπος δεδοµένων του αποτελέσµατος της συνάρτησης. επικεφαλίδα function όνοµα(λίστα παραµέτρων) : τύπος δεδοµένων; δηλώσεις σταθερών και µεταβλητών εντολές const.; var ; begin.. end; Το όνοµα χαρακτηρίζει την διαδικασία και χρησιµοποιείται για την κλήση της από το υπόλοιπο πρόγραµµα Η λίστα παραµέτρων είναι µια λίστα µεταβλητών που ονοµάζονται τυπικές παράµετροι και χρησιµοποιούνται για την είσοδο δεδοµένων στη συνάρτηση. Όπως και µια διαδικασία, µια συνάρτηση είναι δυνατόν να µην έχει καθόλου παραµέτρους. Επειδή δεν θέλουµε µια συνάρτηση να προκαλεί µεταβολές σε καθολικές µεταβλητές, οι τυπικές παράµετροι µιας συνάρτησης είναι πάντα παράµετροι µεταβλητής. Ο τύπος δεδοµένων που ακολουθεί τη λίστα των τυπικών παραµέτρων ορίζει τον τύπο του αποτελέσµατος της συνάρτησης ο οποίος µπορεί να είναι οποιοσδήποτε τύπος της Pascal. Αναφέραµε παραπάνω ότι µια συνάρτηση παράγει ένα µόνο αποτέλεσµα. Λέµε λοιπόν ότι µια συνάρτηση επιστρέφει µια τιµή ο τύπος της οποίας ορίζεται στην επικεφαλίδα της συνάρτησης κατά τη δήλωσή της. Παραδείγµατα επικεφαλίδας συνάρτησης function F1(x,y:integer; z,w:real, c:char):bolean; function F2(x:real; k:string; i:integer):integer; H πρώτη συνάρτηση έχει όνοµα F1, πέντε τυπικές παραµέτρους µε αντίστοιχους τύπους και επιστρέφει µια τιµή τύπου bolean. Η δεύτερη συνάρτηση έχει όνοµα F2, τρεις τυπικές παραµέτρους και επιστρέφει µια τιµή τύπου integer. Παράδειγµα : Παρακάτω δίνεται ένα πρόγραµµα µε µια συνάρτηση abs η οποία δέχεται ένα αριθµό και υπολογίζει και επιστρέφει την απόλυτη τιµή του. 1. program apolyti(input, output); 2. var x:integer;. 4. function abs(x:integer):integer; 5. begin 6. if x >= 0 then 7. abs:=x 8. else 9. abs:=-x 10. end; 11. 12. begin 1. readln(x); 14. writeln('απόλυτη τιµή του ', x, ' = ', abs(x)) 15. end.

Στο παραπάνω πρόγραµµα δηλώθηκε η συνάρτηση abs που υπολογίζει την απόλυτη τιµή ενός αριθµού (ο οποίος είναι το µοναδικό τυπικό όρισµα της συνάρτησης). Προσέξτε τις εντολές στις γραµµές 7 και 9 (abs:=x και abs:=-x) όπου έχουµε εντολές εκχώρησης όπου το αριστερό µέρος είναι το όνοµα της συνάρτησης. Σε κάθε συνάρτηση θα πρέπει να υπάρχει µια εντολή εκχώρησης της µορφής όνοµα_συνάρτησης := τιµή όπου µια τιµή (σταθερά, µεταβλητή, ή έκφραση) µε τύπο ίδιο µε τον τύπο αποτελέσµατος της συνάρτησης ανατίθεται στο όνοµα της συνάρτησης. Αυτή η εντολή καθορίζει την τιµή που επιστρέφει η συνάρτηση σε κάθε της κλήση. Η τιµή λοιπόν που ανατίθεται τελευταία στο όνοµα της συνάρτησης είναι αυτή που επιστρέφεται. 1.4. Κλήση συνάρτησης Μια διαδικασία καλείται γράφοντας το όνοµά της και µέσα σε παρενθέσεις µια λίστα τιµών που ονοµάζονται (όπως και στις διαδικασίες) πραγµατικοί παράµετροι. Σε κάθε περίπτωση: το πλήθος των πραγµατικών παραµέτρων πρέπει να είναι ίδιο µε το πλήθος των τυπικών παραµέτρων της συνάρτησης. κάθε πραγµατική παράµετρος αντιστοιχίζεται µε την τυπική παράµετρο που βρίσκεται στην ίδια θέση στη λίστα παραµέτρων της συνάρτησης κάθε πραγµατική παράµετρος πρέπει να έχει τον ίδιο τύπο µε την αντίστοιχη τυπική παράµετρο. Οι τυπικές παράµετροι µιας συνάρτησης είναι παράµετροι τιµής. Αυτό σηµαίνει ότι κατά την κλήση µιας συνάρτησης οι τιµές των πραγµατικών παραµέτρων εκχωρούνται ως τιµές των τυπικών παραµέτρων της συνάρτησης. 1.4.1. Χρήση συνάρτησης Όταν καλείται µια συνάρτηση επιστρέφει µια τιµή στο σηµείο που κλήθηκε. Ο τύπος δεδοµένων της τιµής είναι αυτός που ορίζεται στη δήλωση της συνάρτησης. Συνεχίζοντας το παραπάνω παράδειγµα, τροποποιούµε το κυρίως πρόγραµµα ώστε να δείξουµε όλες τις περιπτώσεις χρήσης µιας συνάρτησης. Παράδειγµα 4 : Παρακάτω δίνεται το πρόγραµµα του παραδείγµατος όπου στο κυρίως πρόγραµµα δείχνουµε όλες τις περιπτώσεις χρήσης µιας συνάρτησης. 1 program example7(input, output); 2 var x:integer; 4 function abs(x:integer):integer; 5 begin 6 if x >= 0 then 7 abs:=x 8 else 9 abs:=-x 10 end; 11 12 begin 1 readln(x); 14 y:=abs(x); 15 z:=2*x+abs(x); 16 writeln('απόλυτη τιµή του ', x, ' = ', abs(x)) 4

Όπως µπορείτε να δείτε στο παραπάνω πρόγραµµα µια συνάρτησης µπορεί να χρησιµοποιηθεί Ως το δεξί µέρος µιας εντολής εκχώρησης (γραµµή 14). Σ αυτή την περίπτωση η τιµή που επιστρέφει η συνάρτηση ανατίθεται στην µεταβλητή που βρίσκεται στο αριστερό µέρος. Ως µέρος µιας έκφρασης (γραµµή 15). Σ αυτή την περίπτωση η τιµή που επιστρέφει η συνάρτηση χρησιµοποιείται για τον υπολογισµό της τιµής της έκφρασης. Ως όρισµα σε µια εντολή write (γραµµή 16). Σ αυτή την περίπτωση τυπώνεται η τιµή που επιστρέφει η συνάρτηση. 1.5. Διαφορές συνάρτησης - διαδικασίας Μια συνάρτηση επιστρέφει µία µόνο τιµή ενώ µια διαδικασία µπορεί να υπολογίζει πολλά αποτελέσµατα. Το αποτέλεσµα µιας συνάρτησης επιστρέφεται στο σηµείο που κλήθηκε (δηλαδή η εντολή κλήσης της συνάρτησης αντικαθίσταται από την τιµή που επιστρέφει συνάρτηση) ενώ τα αποτελέσµατα µιας διαδικασίας είναι διαθέσιµα µέσω παραµέτρων µεταβλητής. Μια συνάρτηση έχει µόνο παραµέτρους τιµής ενώ µια διαδικασία έχει και παραµέτρους µεταβλητής. Μια συνάρτηση µπορεί να χρησιµοποιηθεί ως το δεξί µέρος µιας εντολής εκχώρησης και ως µέρος µιας έκφρασης ενώ µια διαδικασία όχι. Σύµφωνα και µε τις διαφορές συνάρτησης και µεταβλητής µπορούµε να καταλήξουµε σε ορισµένους γενικούς κανόνες για το ποτέ πρέπει να χρησιµοποιούµε συνάρτησης και πότε διαδικασία. Τέτοιοι κανόνες αναφέρονται στο σχολικό σας βιβλίο στη σελίδα 121 (πορτοκαλί πλαίσιο) 1.6. Ενσωµατωµένες συναρτήσεις της Pascal Η γλώσσα Pascal έχει ορισµένες ενσωµατωµένες µαθηµατικές συναρτήσεις τις οποίες µπορούµε να καλούµε σε ένα πρόγραµµα χωρίς να τις δηλώσουµε. Abs(x)απόλυτη τιµή Sin(x)ηµίτονο Sqr(x)τετράγωνο Sqrt(x)τετραγωνική ρίζα Ln(x)λογάριθµος 1.7. Άσκηση Να ξαναγράψετε το πρόγραµµα του παραδείγµατος 2 αντικαθιστώντας τη διαδικασία µε συνάρτηση. 5