Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και την Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Σκοπός της ενότητας είναι να κατανοήσει ο φοιτητής τη δημιουργία, χρησιμότητα και τη βοήθεια που προσφέρουν οι συναρτήσεις στον προγραμματισμό. 4
Περιεχόμενα ενότητας Συναρτήσεις. Ορισμός συνάρτησης. Κλήση συναρτήσεων. Συναρτήσεις χωρίς παραμέτρους που δεν επιστρέφουν τιμή. Συναρτήσεις με παραμέτρους που δεν επιστρέφουν τιμή. Συναρτήσεις με παραμέτρους που επιστρέφουν τιμή. 5
Συναρτήσεις (1) Οι συναρτήσεις είναι μικρά προγράμματα τα οποία εκτελούν λειτουργίες ή υπολογισμούς που χρησιμοποιούμε συχνά στα προγράμματά μας. Προκειμένου λοιπόν να γράφουμε αυτές τις εντολές ξανά και ξανά, τις περιλαμβάνουμε σε μια συνάρτηση. Όταν θέλουμε να εκτελέσουμε τη συγκεκριμένη λειτουργία ή τις εντολές απλώς «καλούμε» τη συνάρτηση που τις περιέχει. 6
Συναρτήσεις (2) Συνάρτηση είναι ένα αυτόνομο κομμάτι κώδικα που σχεδιάστηκε για να εκτελεί μια συγκεκριμένη εργασία. Άλλο είναι η κλήση μιας έτοιμης συνάρτησης που ήδη έχουμε δει (main(), printf(), scanf() κλπ.), pow(), sqrt() και άλλο η ίδια η συνάρτηση. 7
Συναρτήσεις (3) Μία έτοιμη συνάρτηση την καλούμε γράφοντας το όνομά της και βάζοντας μέσα στις παρενθέσεις ό,τι χρειάζεται σαν είσοδο. Π.χ. a=sqrt(25). Στην περίπτωση μιας συνάρτησης που δεν μας δίνεται έτοιμη θα πρέπει να γράψουμε και την ίδια τη συνάρτηση με τις κατάλληλες εντολές. 8
Ορισμός συνάρτησης (1) Τύπος_συνάρτησης όνομα_συνάρτησης(λίστα παραμέτρων) { εντολές συνάρτησης; } 9
Ορισμός συνάρτησης (2) Ο τύπος συνάρτησης καθορίζει τι τύπου θα είναι το αποτέλεσμα. Όταν επιστρέφει μια τιμή γράφουμε τον αντίστοιχο τύπο. (δηλ. int, float, char). Αν η συνάρτηση δεν επιστρέφει κάτι, ορίζεται η τιμή void. Το κύριο πρόγραμμα main() είναι τύπου void (δηλ. void main()), καθώς δεν επιστρέφει καμία τιμή απλά εκτελεί ένα σύνολο εντολών. 10
Ορισμός συνάρτησης (3) Το όνομα της συνάρτησης πρέπει να δίνεται σύμφωνα με τους κανόνες της C. Η επιλογή ονομάτων θα είναι καλό παραπέμπουν το χρήστη στη χρησιμότητα της συνάρτησης. Να μην είναι η λέξη main γιατί αυτό το όνομα χρησιμοποιείται από το κυρίως πρόγραμμα. 11
Ορισμός συνάρτησης (4) Λίστα παραμέτρων είναι μεταβλητές, μέσα στις οποίες θα αντιγραφούν οι τιμές των ορισμάτων όταν κληθεί η συνάρτηση. Για κάθε παράμετρο πρέπει να δηλώσουμε και τον τύπο της. Πρέπει όσες είναι οι παράμετροι τόσα να είναι και τα δεδομένα που θα «στείλουμε» στη συνάρτηση όταν την καλέσουμε αποτέλεσμα. 12
Ορισμός συνάρτησης (5) Μία συνάρτηση επιστρέφει αποτέλεσμα μέσω της εντολής return. Εάν δεν υπάρχει αυτή η εντολή, δεν επιστρέφεται αποτέλεσμα. Μέσα στα άγκιστρα περικλείονται οι εντολές της συνάρτησης, δηλώνονται οι μεταβλητές που χρησιμοποιούνται, και ονομάζονται τοπικές. Τη γράφουμε έξω από το κυρίως πρόγραμμα και πρέπει να ορισθεί πριν από την κλήση της, δηλαδή πάνω από τη main(). 13
Παράδειγμα Υπολογισμός αθροίσματος τριών αριθμών #include <stdio.h> int sum(int a1, int a2, int a3) { int athrisma; athrisma=a1+a2+a3; return athrisma; } 14
Κλήση συναρτήσεων (1) Δηλώνουμε μια συνάρτηση προτού τη χρησιμοποιήσουμε (τον τύπο, το όνομα και τις παραμέτρους) πριν από τη συνάρτηση main(). Την καλούμε με το όνομά της και μέσα στις παρενθέσεις υπάρχουν οι παραστάσεις που χωρίζονται με κόμμα. Όταν τερματίζεται η συνάρτηση, η εκτέλεση του προγράμματος στο σημείο κλήσης της συνάρτησης και εκτελεί την επόμενη εντολή. 15
Παράδειγμα κλήσης συνάρτησης Σχήμα 1. Παράδειγμα κλήσης συνάρτησης, πηγή: Διδάσκων, 2014. 16
Συναρτήσεις χωρίς παραμέτρους που δεν επιστρέφουν τιμή Σχήμα 2. Συναρτήσεις χωρίς παραμέτρους που δεν επιστρέφουν τιμή, πηγή: Διδάσκων, 2014. 17
Συναρτήσεις με παραμέτρους που δεν επιστρέφουν τιμή Σχήμα 3. Συναρτήσεις με παραμέτρους που δεν επιστρέφουν τιμή, πηγή: Διδάσκων, 2014. 18
Συναρτήσεις με παραμέτρους που επιστρέφουν τιμή Σχήμα 4. Συναρτήσεις με παραμέτρους που επιστρέφουν τιμή, πηγή: Διδάσκων, 2014. 19
Βιβλιογραφία μαθήματος Kernighan, B. & Ritchie D. (1990). H Γλώσσα Προγραμματισμού C, Κλειδάριθμος, Αθήνα. Καρολίδης Δ. (2013). Μαθαίνετε εύκολα C. ISBN 978-960- 93-5034-1. Τσελίκης Γ. & Τσελίκας, Ν. (2012).C Από τη θεωρία στην Εφαρμογή (β Έκδοση). ISBN: 978-960-93-1961-4. Χατζηγιαννάκης, Ν. (2012). Η γλώσσα C σε βάθος. Κλειδάριθμος, Αθήνα. 20
Τέλος Ενότητας