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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τέλος Ενότητας.
Advertisements

Μεταγλωττιστές (Compilers) (Θ) Ενότητα 10: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Α) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Ενότητα 7 : Ισορροπία αγοράς Καραμάνης Κωνσταντίνος
Έλεγχος Ροής με την Εντολή Επανάληψης FOR 1/9
1 Λειτουργικά Συστήματα Ενότητα 13 : Δρομολόγηση Διεργασιών 3/3 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Αρχές Μάρκετινγκ Δημιουργία και Δέσμευση Αξίας Πελατών Στάδιο 3 ο Προετοιμασία ενός σχεδίου και προγράμματος ολοκληρωμένου Μάρκετινγκ Τριάρχη Ειρήνη.
1 Διεθνή Λογιστικά Πρότυπα Διανομή – Διακοπείσες Δραστηριότητες Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 12 : Επαναληπτικές Ασκήσεις (3/3) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Διεθνή Λογιστικά Πρότυπα Κατασκευαστικά Έργα Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Διεθνή Λογιστικά Πρότυπα Leasing Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ακοολογία Ενότητα 13 : Κοχλιακά εμφυτεύματα Ναυσικά Ζιάβρα Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ενοποιημένες Χρηματοοικονομικές Καταστάσεις Δομή ομίλου Εταιρειών και προσδιορισμός του ποσοστού συμμετοχής Δρ. Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό.
1 Μηχανογραφημένη Λογιστική ΙI Διαφύλαξη Λογιστικών Αρχείων (Άρθρο 7) Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΣΤΙΚΗ ΕΝΟΤΗΤΑ :Ισοζύγιο Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Εισαγωγή στη λογιστική, Ενότητα : Ημερολογιακές εγγραφές, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου.
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 12 : Επαναληπτικές Ασκήσεις (2/3) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ακοολογία Ενότητα 12 : Αποκατάσταση ακοής με ακουστικά βαρηκοΐας Ναυσικά Ζιάβρα Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Διεθνή Λογιστικά Πρότυπα Παραδείγματα της λογιστικής του Leasing σύμφωνα με το ελληνικό θεσμικό πλαίσιο και τα ΔΛΠ Χύτης Ευάγγελος Ελληνική Δημοκρατία.
1 Φωνολογική Ανάπτυξη και Διαταραχές Ενότητα 4 : Στάδια παραγωγής φωνημάτων Ζακοπούλου Βικτωρία Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Προγραμματισμός Ι Ενότητα 7 : Πίνακες I Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ενοποιημένες Χρηματοοικονομικές Καταστάσεις Λογιστικές Διαδικασίες για την κατάρτιση ΕΟΚ Δρ. Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό.
1 Οικονοµική Εργασίας και Εργασιακές Σχέσεις Εργατικά Σωματεία Καραµάνης Κώστας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΣΤΙΚΗ ΕΝΟΤΗΤΑ :Λογιστική ισότητα και ισολογισμός Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Εισαγωγή στη λογιστική, Ενότητα :Προσδιοριστικοί παράγοντες του λογιστικού αποτελέσματος, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ, ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά.
Εισαγωγή στη λογιστική, Ενότητα :Μεταβολές της οικονομικής κατάστασης, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ, ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά Ακαδημαϊκά Μαθήματα.
Προγραμματισμός κινητών συσκευών
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Προγραμματισμός κινητών συσκευών
Προγραμματισμός Διαδικτύου
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Προγραμματισμός κινητών συσκευών
Άλλες μορφές νευρώσεων
Επικοινωνιακός Προγραμματισμός Ι
Λειτουργικά Συστήματα
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Ενοποιημένες Χρηματοοικονομικές Καταστάσεις
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Προγραμματισμός Διαδικτύου
Λειτουργικά Συστήματα
Προγραμματισμός Διαδικτύου
Αντικειμενοστραφής Προγραμματισμός
Διεθνή Λογιστικά Πρότυπα
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Διεθνή Λογιστικά Πρότυπα
Ενότητα 1 : Τονική ακοομετρία - Είδη βαρηκοΐας Ναυσικά Ζιάβρα
Ενότητα 10 : Συχνές ακοολογικές παθήσεις (Μέρος Α’) Ναυσικά Ζιάβρα
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Ενότητα 10 : Κατασκευή ΝΠΑ Αλέξανδρος Τζάλλας
Ενότητα 4 : Τελεστές της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Διεθνή Λογιστικά Πρότυπα
Γενική και Μαθηματική Χαρτογραφία (Ε)
Εισαγωγή στις εικαστικές τέχνες
Προγραμματισμός κινητών συσκευών
Διεθνή Λογιστικά Πρότυπα
Διεθνή Λογιστικά Πρότυπα
Γεωργική Χημεία Ενότητα 6: Οξέα, βάσεις, pH, γινόμενο διαλυτότητας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΣΤΙΚΗ
Προγραμματισμός Διαδικτύου
Προγραμματισμός κινητών συσκευών
Ενότητα 8 : Πίνακες IΙ Αλέξανδρος Τζάλλας
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Ενότητα 4 : Υποπρογράμματα I Αλέξανδρος Τζάλλας
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

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

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

3 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3

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

5 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Σκοποί ενότητας Να γίνει κατανοητή η έννοια των αναδρομικών υποπρογραμμάτων. Να περιγραφούν οι συντακτικοί κανόνες των αναδρομικών υποπρογραμμάτων. Να περιγραφούν οι συντακτικοί κανόνες των φωλιασμένων υποπρογραμμάτων. Να γίνει σαφές πως μπορούμε να χρησιμοποιήσουμε τα υποπρογράμματα σαν παραμέτρους. 5

6 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Περιεχόμενα ενότητας Αναδρομικά Υποπρογράμματα. Αναδρομή & Επανάληψη Φωλιασμένα Υποπρογράμματα Διαδικασίες & Συναρτήσεις σαν Παράμετροι 6

7 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομικά Υποπρογράμματα 1/6 7 Ένας ορισμός είναι αναδρομικός (recursive) όταν ορίζεται σαν συνάρτηση του εαυτού του Για παράδειγμα οι ακόλουθοι ορισμοί είναι αναδρομικοί  Ο N είναι φυσικός αριθμός αν ο Ν-1 είναι φυσικός αριθμός  Παραγοντικό: O!=1 για n>0, n!=n.(n-1)!  Δύναμη: α 1 =α για n>0, α n =α.α n-1  Μερικό άθροισμα: S(1)=1 για n>1, S(n)=S(n-1)+n

8 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομικά Υποπρογράμματα 2/6 8 Στην Pascal μια διαδικασία ή συνάρτηση μπορεί να καλέσει όχι μόνο μια άλλη διαδικασία ή συνάρτηση αλλά και τον εαυτό της Ένα τέτοιο υποπρόγραμμα (διαδικασία ή συνάρτηση) που καλεί τον εαυτό του, λέγεται αναδρομικό

9 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομικά Υποπρογράμματα 3/6 9 function dyn(basi: real; ekthetis: integer):real; begin if ekthetis=1 then dyn:=basi else dyn:=basi*dyn(basi,ethetis-1); (1) (2) end; function dyn(basi: real; ekthetis: integer):real; begin if ekthetis=1 then dyn:=basi else dyn:=basi*dyn(basi,ethetis-1); (1) (2) end;  Σημειώνουμε τη διαφορά της αναφοράς της συνάρτησης στο αριστερό (σημείο 1) και δεξιό (σημείο 2) της πρότασης  Στο αριστερό μέρος αναφέρεται μόνο το όνομα της συνάρτησης γιατί απλά δηλώνεται που θα γίνει ανάθεση της τιμής, η οποία θα υπολογισθεί στο δεξιό μέρος της πρότασης  Στο δεξιό μέρος της πρότασης γίνεται κλήση της συνάρτησης, συνεπώς το όνομα να συνοδεύεται από μια λίστα πραγματικών παραμέτρων Να δοθεί ο αναδρομικός ορισμός της συνάρτησης που υπολογίζει τη δύναμη με ακέραιο εκθέτη. Ο αναδρομικός αλγόριθμος για τον υπολογισμό του a n είναι: Αν n=1 τότε a n =a αλλιώς a n =a*a n-1

1010 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 10 Αναδρομικά Υποπρογράμματα 4/6 Όταν ένα υποπρόγραμμα (διαδικασία ή συνάρτηση) ‘Α’ καλεί ένα άλλο υποπρόγραμμα ‘Β’ ή τον εαυτό του, οι τιμές των τοπικών του δηλώσεων και παραμέτρων του αποθηκεύονται σε μια περιοχή της μνήμης που ονομάζεται στοίβα (stack) Όταν η εκτέλεση του υποπρογράμματος που κλήθηκε τελειώσει, ανασύρονται από τη στοίβα οι τιμές των δηλώσεων και παραμέτρων του αρχικού υποπρογράμματος ‘Α’ και η εκτέλεση συνεχίζει από το σημείο που σταμάτησε

1 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομικά Υποπρογράμματα 5/6 11 program power; var apot:real; begin apot:=dyn(5,4); writeln(apot); end. program power; var apot:real; begin apot:=dyn(5,4); writeln(apot); end. function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; function dyn(b:real;e:integer):real; begin if e:=1 then dyn:=b else dyn:=b*dyn(b,e-1); write(b,e); end; Κλήση Συνάρτησης b=5 e=4 b=5 e=4 b=5 e=3 b=5 e=3 b=5 e=2 b=5 e=2 b=5 e=1 b=5 e=1

1212 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομικά Υποπρογράμματα 6/6 12 function mkd(a,b:integer):integer; begin if a=b then mkd:=a; else if a>b then mkd:=mkd(a-b,b) else mkd:=mkd(a,b-a) end; function mkd(a,b:integer):integer; begin if a=b then mkd:=a; else if a>b then mkd:=mkd(a-b,b) else mkd:=mkd(a,b-a) end; Να ορισθεί αναδρομική συνάρτηση για τον υπολογισμό του ΜΚΔ δύο αριθμών. Ο αναδρομικός ορισμός του ΜΚΔ είναι: ΜΚΔ(α,β)=ΜΚΔ(α-β,β) αν α>β ή ΜΚΔ(α,β-α) ανβ>α

1313 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομή & Επανάληψη 1/3 13 Ένας αναδρομικός αλγόριθμος μπορεί να υλοποιηθεί εξίσου αποδοτικά και με ένα μη αναδρομικό υποπρόγραμμα χρησιμοποιώντας εντολές επανάληψης Ο δεύτερος αυτός τρόπος ονομάζεται επαναληπτικός (iterative)

1414 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομή & Επανάληψη 2/3 14 function sum(N:integer):integer; begin if N=0 then sum:=0; else sum:=N+sum(N-1); end; Αναδρομική Μέθοδος function sum(N:integer):integer; begin if N=0 then sum:=0; else sum:=N+sum(N-1); end; Αναδρομική Μέθοδος function sum(N:integer):integer; var i,s:integer begin s:=0; for i:=1 to N do s:=s+i; sum:=s; end; Επαναληπτική Μέθοδος function sum(N:integer):integer; var i,s:integer begin s:=0; for i:=1 to N do s:=s+i; sum:=s; end; Επαναληπτική Μέθοδος Να ορισθεί συνάρτηση για τον ορισμός του αθροίσματος Ν ακεραίων αριθμών

1515 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Αναδρομή & Επανάληψη 3/3 15 Όταν μια εφαρμογή μπορεί να υλοποιηθεί και με τις δύο μεθόδους, η επιλογή μας στηρίζεται στις δύο ακόλουθες παρατηρήσεις: Τα αναδρομικά υποπρογράμματα έχουν σημαντικά μικρότερο μέγεθος και είναι περισσότερο ευανάγνωστα από τα αντίστοιχα επαναληπτικά Τα αναδρομικά υποπρογράμματα έχουν μεγάλες απαιτήσεις μνήμης

1616 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Φωλιασμένα Υποπρογράμματα 1/2 16 Κάθε υποπρόγραμμα (διαδικασία ή συνάρτηση) μπορεί να περιέχει οποιαδήποτε αριθμό άλλων υποπρογραμμάτων Τα υποπρογράμματα που περιέχονται μέσα στα άλλα λέγονται φωλιασμένα

1717 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Φωλιασμένα Υποπρογράμματα 2/2 17 program athroisma; var N,apot:integer; {…………………………………………………………… ………………………} function sum(k:integer):integer; var x,ath:integer; {…………………………………………………………… ………………………} function dyn(basi,ekth:integer):integer; var t,d:integer; begin d:=1; for t:=1 to ekth do d:=d*basi; dyn:=d; end; {………………………………………} function meriko(m:integer):integer; var x,s:integer; begin s:=0; for x:=1 to m do s:=s+dyn(x,x); meriko:=s; end; {……………………} program athroisma; var N,apot:integer; {…………………………………………………………… ………………………} function sum(k:integer):integer; var x,ath:integer; {…………………………………………………………… ………………………} function dyn(basi,ekth:integer):integer; var t,d:integer; begin d:=1; for t:=1 to ekth do d:=d*basi; dyn:=d; end; {………………………………………} function meriko(m:integer):integer; var x,s:integer; begin s:=0; for x:=1 to m do s:=s+dyn(x,x); meriko:=s; end; {……………………} begin {Σώμα της συνάρτησης sum} ath:=1; for x:=1 to k do ath:=ath+meriko(x); sum:=ath; end; {…………………………………………………………… ………………………} begin {Κύριο Πρόγραμμα} write(‘Dwse to N:’); readln(N); apot:=sum(N); writeln(‘Athroisma seiras=’,apot); end. begin {Σώμα της συνάρτησης sum} ath:=1; for x:=1 to k do ath:=ath+meriko(x); sum:=ath; end; {…………………………………………………………… ………………………} begin {Κύριο Πρόγραμμα} write(‘Dwse to N:’); readln(N); apot:=sum(N); writeln(‘Athroisma seiras=’,apot); end. Να ορισθεί συνάρτηση για τον υπολογισμό της σειράς: δηλαδή του αθροίσματος: *Υπόδειξη: Να ορισθούν συνολικά τρείς συναρτήσεις. Για τη δύναμη, το μερικό άθροισμα και για το συνολικό άθροισμα

1818 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 19 Διαδικασίες & Συναρτήσεις σαν Παράμετροι 1/4 Μια παράμετρος τύπου προγράμματος, στην τυπική λίστα παραμέτρων ενός υποπρογράμματος, έχει ίδια σύνταξη με την επικεφαλίδα του υποπρογράμματος: procedure A(x:integer; procedure P); Η διαδικασία Α έχει δύο παραμέτρους, την x τύπου integer και την διαδικαστική παραμέτρου P που δεν έχει επιπλέον παραμέτρους

1919 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 19 Διαδικασίες & Συναρτήσεις σαν Παράμετροι 2/4 procedure Q(function F(c:char):integer; y:real); Η διαδικασία Q έχει δύο παραμέτρους, μια τύπου real και μια συναρτησιακή παραμέτρου F, η οποία επιπλέον έχει μια παράμετρο τύπου char

2020 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 20 Διαδικασίες & Συναρτήσεις σαν Παράμετροι 3/4 Κατά την κλήση ενός υποπρογράμματος με διαδικαστική ή συναρτησιακή παράμετρο, πρέπει η αντίστοιχη πραγματική παράμετρος να είναι το όνομα μια διαδικασίας ή συνάρτησης με τη σωστή αντιστοιχία παραμέτρων και τύπου αποτελέσματος (αν πρόκειται για συνάρτηση)

2121 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 21 procedure eval(function f(x:real):real,lower,upper,step:real); var x,value:real; begin x:=lower; while x<=upper do begin value:=f(x); writeln(x:value); x:=x+step; end end; procedure eval(function f(x:real):real,lower,upper,step:real); var x,value:real; begin x:=lower; while x<=upper do begin value:=f(x); writeln(x:value); x:=x+step; end end; Διαδικασίες & Συναρτήσεις σαν Παράμετροι 4/4 Να ορισθεί μια διαδικασία που να υπολογίζει τις τιμές μιας οποιαδήποτε συνάρτησης πραγματικών τιμών, με δεδομένα τα όρια και το βήμα μεταβολής της παραμέτρου της συνάρτησης

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.

2323 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου ΔΙΑΤΑΡΑΧΕΣ ΦΩΝΗΣ, Ενότητα 0, ΤΜΗΜΑ ΛΟΓΟΘΕΡΑΠΕΙΑΣ, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 23 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Αλέξανδρος Τζάλλας. Προγραμματισμός Ι. Έκδοση: 1.0 Άρτα, Διαθέσιμο από τη δικτυακή διεύθυνση:

2424 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

2525 Προγραμματισμός Ι – Υποπρογράμματα ΙΙΙ, Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

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