Δευτέρα, 14 Νοεμβρίου 2011

Ορισμός συνάρτησης

[πηγή]
Όπως και με τις μεταβλητές, πριν κάνετε χρήση κάποιας συνάρτησης θα πρέπει να δώσετε οδηγίες στη γλώσσα για τη μορφή της ώστε να ξέρει πως θα τη χρησιμοποιήσει. Ο ορισμός μιας απλής συνάρτησης είναι ο ακόλουθος:
void typestars ()
{
for (int i=0; i<20; i++)
   cout << ‘*’;
cout << endl;
}
Για να ορίσουμε μία συνάρτηση πρώτα δηλώνουμε τον τύπο των δεδομένων που θα επιστρέφει, μετά το όνομά της και τέλος τα ορίσματα που θα δέχεται μέσα σε παρενθέσεις. Ας τα εξετάσουμε ένα προς ένα:
Εάν η συνάρτηση δεν επιστρέφει κάποια τιμή στο κυρίως πρόγραμμα που την καλεί, τότε πριν το όνομά της γράφουμε τη λέξη void (κενό). Όταν η συνάρτηση δεν επιστρέφει κάποια τιμή που να τη χρησιμοποιεί το κυρίως πρόγραμμα, λειτουργεί ως διαδικασία, δηλαδή απλώς κάτι κάνει. Στην περίπτωσή μας τυπώνει 20 φορές το σύμβολο του αστεριού (*) στην οθόνη. Εάν όμως η συνάρτηση επιστρέφει κάποια τιμή στο σημείο του προγράμματος που την καλεί τότε θα πρέπει πριν το όνομά της να δηλώσουμε τον τύπο των δεδομένων που επιστρέφει. Έτσι αν επιστρέφει ακέραια τιμή θα γράφαμε πρώτα int και μετά το όνομά της, αν επιστρέφει πραγματικό αριθμό θα γράφαμε πρώτα float και μετά το όνομά της κ.λ.π.
Το σημαντικό που θα πρέπει να παρατηρήσετε στις περιπτώσεις που η συνάρτηση επιστρέφει τιμή είναι η εντολή return μέσα στο σώμα της συνάρτησης. Μετά τη δεσμευμένη λέξη return ακολουθεί η παράσταση με την επιστρεφόμενη τιμή. Φυσικά ο τύπος δεδομένων της τιμής που επιστρέφεται θα πρέπει να είναι ίδιος με τον τύπο δεδομένων που προηγείται του ονόματος της συνάρτησης.
Εάν πριν από το όνομα της συνάρτησης δεν υπάρχει η λέξη void αλλά ένας τύπος δεδομένων είτε από τους ενσωματωμένους της γλώσσας είτε ορισμένος από το χρήστη, τότε μέσα στο σώμα της συνάρτησης θα πρέπει να υπάρχει εντολή return.
Η τιμή αυτή που επιστρέφεται μπορεί να χρησιμοποιηθεί στον υπολογισμό μιας παράστασης ή να αποδοθεί σε μια μεταβλητή.

Για το όνομα της συνάρτησης ισχύει ότι και για τα ονόματα των μεταβλητών. Θα πρέπει να χρησιμοποιείται πάντα το όνομα της συνάρτησης όπως είναι στο σημείο ορισμού της και να μη μπερδεύετε μικρούς με κεφαλαίους χαρακτήρες.
Μετά το όνομα της συνάρτησης υπάρχουν τα ορίσματά της μέσα σε παρενθέσεις. Ακόμα και όταν δεν υπάρχουν ορίσματα είμαστε υποχρεωμένοι να γράφουμε πάντα τις παρενθέσεις. Οι παρενθέσεις είναι τα σύμβολα που ξεχωρίζουν τις συναρτήσεις από τις μεταβλητές.
Στο παραπάνω παράδειγμα η συνάρτηση typestars () τυπώνει 20 φορές ένα σύμβολο στην οθόνη. Εάν την αλλάξουμε λίγο έτσι ώστε ο χρήστης να αποφασίζει πόσες φορές θα τυπωθεί το σύμβολο, θα γράφαμε:
void typestars (int n)
{
for (int i=0; i<n; i++)//n επαναλήψεις του βρόχου
   cout << ‘*’;
cout << endl;
}

Τα ορίσματα τα οποία εσωκλείονται μέσα σε παρενθέσεις είναι μεταβλητές οι οποίες δέχονται τιμές από το σημείο κλήσης της συνάρτησης. Μέσα στις παρενθέσεις γίνεται δήλωση των μεταβλητών, για αυτό και η σημειογραφία:
int n
Εάν είναι περισσότερα του ενός, τα ορίσματα χωρίζονται μεταξύ τους με κόμμα. Τα ορίσματα είναι που κάνουν τις συναρτήσεις να εκτελούν διαφορετικά πράγματα, ανάλογα με την είσοδο που δέχονται. Ειδάλλως χωρίς ορίσματα, οι συναρτήσεις θα επαναλάμβαναν τις ίδιες εντολές κάθε φορά που θα τις καλούσαμε.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου