Δομημένος Προγραμματισμός

Σχετικά έγγραφα
Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δομημένος Προγραμματισμός

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

Δομημένος Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Εισαγωγή στον Προγραμματισμό με C++

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εισαγωγή στον δομημένο προγραμματισμό

Δομημένος Προγραμματισμός (ΤΛ1006)

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στον Προγραμματισμό με C++

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Η γλώσσα προγραμματισμού C

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εισαγωγή στον Προγραμματισμό με C++

Λογιστικές Εφαρμογές Εργαστήριο

Δομημένος Προγραμματισμός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

{ int a = 5; { int b = 7; a = b + 3;

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

Προγραμματισμός ΙI (Θ)

Υδραυλικά & Πνευματικά ΣΑΕ

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Δομημένος Προγραμματισμός

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

Εισαγωγή στον Προγραμματισμό με C++

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός (ΤΛ1006)

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 9: Συναρτήσεις Εμβέλεια

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Οντοκεντρικός Προγραμματισμός

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

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

Δομημένος Προγραμματισμός

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

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Στατιστική Επιχειρήσεων Ι

Δομημένος Προγραμματισμός

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Δομημένος Προγραμματισμός

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στον Προγραμματισμό

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Εισαγωγή στον Προγραμματισμό με C++

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Προγραμματισμός ΙI (Θ)

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

Δομημένος Προγραμματισμός (ΤΛ1006)

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστικά Συστήματα

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Προγραμματισμό με C++

Εισαγωγή στον Προγραμματισμό

Συστήματα Αυτομάτου Ελέγχου II

Εισαγωγή στην Πληροφορική

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε.

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

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

Συναρτήσεις Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία ορισμένη εργασία Η συγγραφή προγραμμάτων με χρήση συναρτήσεων που εκτελούν ανεξάρτητες εργασίες αποτελεί τη βάση του λεγόμενου δομημένου προγραμματισμού Με τη χρήση συναρτήσεων ένα πρόγραμμα χωρίζεται σε μικρότερα τμήματα, άρα ο κώδικας διαβάζεται, τροποποιείται και ελέγχεται πιο εύκολα Η χρήση μίας συνάρτησης δεν περιορίζεται αποκλειστικά σε ένα πρόγραμμα, π.χ. οι συναρτήσεις βιβλιοθήκης scanf() και printf()

Δήλωση συναρτήσεων Η δήλωση μίας συνάρτησης καθορίζει το όνομα της συνάρτησης, τον τύπο επιστροφής της και μία λίστα παραμέτρων. Π.χ. int mkd( int a, int b);

Τύπος επιστροφής Μία συνάρτηση μπορεί να επιστρέψει το πολύ μία τιμή Ο τύπος_επιστροφής μίας συνάρτησης καθορίζει τον τύπο της τιμής επιστροφής Ο τύπος_επιστροφής μπορεί να είναι οποιοσδήποτε τύπος δεδομένων της C, όπως char, int, double, δείκτης σε κάποιον τύπο, κτλ Μοναδικός περιορισμός στην επιστρεφόμενη τιμή μίας συνάρτησης είναι ότι δεν μπορεί να επιστρέψει πίνακα Ο τύπος επιστροφής void χρησιμοποιείται όταν η συνάρτηση δεν επιστρέφει κάποια τιμη

Λίστα παραμέτρων Μία συνάρτηση μπορεί προαιρετικά να δέχεται μία λίστα παραμέτρων, που χωρίζονται μεταξύ τους με κόμμα (,) Η παράμετρος μίας συνάρτησης είναι ουσιαστικά μία μεταβλητή της συνάρτησης, η οποία θα αρχικοποιηθεί, όταν γίνει η κλήση της Αν η συνάρτηση δεν δέχεται παραμέτρους, δηλώνεται ως void

Ορισμός συνάρτησης Η πρώτη γραμμή πρέπει να ταιριάζει με τη δήλωση της συνάρτησης, με τη διαφορά ότι δεν προστίθεται το ερωτηματικό στο τέλος της Ο κώδικας ή, αλλιώς, το «σώμα της συνάρτησης» περιέχει δηλώσεις μεταβλητών και εντολές ανάμεσα σε άγκιστρα Ο κώδικας μίας συνάρτησης εκτελείται μόνο όταν αυτή κληθεί από κάποιο σημείο του προγράμματος Η εκτέλεση μίας συνάρτησης τερματίζει αν κληθεί μία εντολή τερματισμού (π.χ. return) ή όταν εκτελεστεί η τελευταία εντολή της Ο ορισμός μίας συνάρτησης μπορεί να γίνει πριν ή μετά τη main(), με προτίμηση να γίνεται μετά

Κλήση συνάρτησης Όταν καλείται μία συνάρτηση, η εκτέλεση του προγράμματος συνεχίζει με την εκτέλεση του κώδικα της συνάρτησης Όταν τερματίζεται η συνάρτηση, η εκτέλεση του προγράμματος επιστρέφει στο σημείο κλήσης της συνάρτησης και συνεχίζει με την εκτέλεση της επόμενης εντολής Μία συνάρτηση μπορεί να κληθεί όσες φορές είναι απαραίτητο για τους σκοπούς του προγράμματος Όταν γίνεται η κλήση μίας συνάρτησης, ο μεταγλωττιστής δεσμεύει μνήμη για να αποθηκεύσει τις μεταβλητές που δηλώνονται στη λίστα παραμέτρων της συνάρτησης, καθώς και αυτές που δηλώνονται μέσα στο σώμα της Αυτή η μνήμη δεσμεύεται από ένα συγκεκριμένο τμήμα μνήμης που παρέχει το λειτουργικό σύστημα στο πρόγραμμα και ονομάζεται στοίβα (stack) Η αποδέσμευση αυτής της μνήμης γίνεται αυτόματα όταν τερματιστεί η εκτέλεση της συνάρτησης

Κλήση συνάρτησης (2) Δύο είναι οι διαφορετικοί τρόποι μεταβίβασης τιμών σε μία συνάρτηση Κλήση μέσω τιμής (call by value) Κλήση μέσω αναφοράς (call by reference)

Call by value Όταν γίνεται κλήση συνάρτησης μέσω τιμής, τότε στη συνάρτηση διοχετεύονται οι τιμές των ορισμάτων στη συνάρτηση και αντιγράφονται στις παραμέτρους της συνάρτησης Οποιαδήποτε αλλαγή γίνει στις τιμές των παραμέτρων της συνάρτησης δεν επηρεάζει τις τιμές των ορισμάτων (διαφορετικές θέσεις μνήμης)

Call by reference Όταν επιθυμούμε μία συνάρτηση να μπορεί να αλλάξει τις τιμές των ορισμάτων που της διοχετεύονται, τότε η μεταβίβασή τους πρέπει να γίνει με κλήση μέσω αναφοράς Σε αυτή την περίπτωση, στη συνάρτηση διοχετεύονται οι διευθύνσεις μνήμης των ορισμάτων της και όχι οι τιμές τους Επομένως, αφού η συνάρτηση έχει πρόσβαση στις διευθύνσεις των ορισμάτων της, μπορεί να μεταβάλλει τις τιμές αυτών

Παρατηρήσεις Αφού μία συνάρτηση δεν μπορεί να επιστρέψει περισσότερες από μία τιμές, η κλήση μέσω αναφοράς αποτελεί τον πιο ευέλικτο τρόπο για την τροποποίηση των τιμών πολλών μεταβλητών

Local variables Μία μεταβλητή που δηλώνεται στο σώμα μίας συνάρτησης ονομάζεται τοπική μεταβλητή (local) Η εμβέλεια μίας τοπικής μεταβλητής περιορίζεται στη συνάρτηση όπου δηλώνεται, γεγονός που σημαίνει ότι οι υπόλοιπες συναρτήσεις του προγράμματος δεν έχουν πρόσβαση σε αυτή τη μεταβλητή, άρα δεν μπορούν να τροποποιήσουν την τιμή της

Τέλος Ενότητας