Στον προγραμματισμό, καλούμε **παράμετρο** μια μεταβλητή που παίρνει το νόημα ενός αντίστοιχου ορίσματος
που περνάμε σε μια κλήση μιας συνάρτησης/διαδικασίας.

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

Σχεδόν όλες οι γλώσσες προγραμματισμού υποστηρίζουν παραμέτρους συναρτήσεων/ρουτινών. Οι σημασιολογικοί κανόνες για το πώς μπορούν να δηλωθούν οι παράμετροι και πως περνούμε τα ορίσματα στις ρουτίνες καθορίζονται από την κάθε γλώσσα ξεχωριστά αλλά οι λεπτομέρειες για το πώς αναπαρίσταται αυτό σε κάθε υπολογιστικό σύστημα εξαρτώνται από τις συμβάσεις κλήσης αυτού του συστήματος.

Παράμετροι και ορίσματα
-----------------------

Μια παράμετρος αναπαριστά μια τιμή που η διαδικασία περιμένει να δοθεί κατά την κλήση. Η δήλωση της διαδικασίας ορίζει τις παραμέτρους.

Μπορεί να οριστεί μια διαδικασία χωρίς παραμέτρους, μια παράμετρο ή περισσότερες από μία. Το μέρος του ορισμού της διαδικασίας/συνάρτησης/ρουτίνας που καθορίζει τις παραμέτρους ονομάζεται λίστα παραμέτρων.

Ένα όρισμα αντιπροσωπεύει την τιμή που παρέχεται σε μια παράμετρο διαδικασίας όταν καλείται η διαδικασία. Ο κώδικας που κάνει την κλήση παρέχει τα ορίσματα όταν καλεί την διαδικασία.

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

Πολλοί προγραμματιστές χρησιμοποιούν τους όρους *παράμετρος* και *όρισμα* εναλλακτικά και ανάλογα με τα συμφραζόμενα γίνεται κατανοητό σε ποιόν από τους δύο όρους αναφερόμαστε. Πρακτικά , δεν χρειάζεται να ξεχωρίσουμε τους δύο όρους προκειμένου να εξηγήσουμε τη χρήση τους σε άλλους προγραμματιστές. Εναλλακτικά , οι λέξεις *πραγματικός* και *τυπικός* μπορούν να χρησιμοποιηθούν για να ξεχωρίσουμε ανάμεσα σε ένα όρισμα και μια παράμετρο αντίστοιχα. Π.χ. οι ισοδύναμοι όροι *πραγματικό όρισμα* και *πραγματική παράμετρος* μπορούν να χρησιμοποιηθούν αντί του *ορίσματος*, και *τυπική παράμετρος*-*τυπικό όρισμα* αντί της *παραμέτρου*.

Ας δούμε ένα παράδειγμα γραμμένο στην C για να καταλάβουμε καλύτερα την διαφορά:

```
int sum(int addend1, int addend2)
{
 return addend1 + addend2;
}

```

Η υπορουτίνα *sum* έχει δύο παραμέτρους με ονόματα *addend1* και *addend2*. Προσθέτει τις τιμές που περνούν στις παραμέτρους, και επιστρέφει το αποτέλεσμα στην υπορουτίνα που έκανε την κλήση.

Ο κώδικας που κάλεσε την υπορουτίνα *sum* έχει ως εξής:

```
int sumValue;
int value1 = 40;
int value2 = 2;

sumValue = sum(value1, value2);

```

Οι μεταβλητές *value1* και *value2* αρχικοποιούνται με τιμές.Οι μεταβλητές δεν είναι ορίσματα ή παράμετροι.

Στο χρόνο εκτέλεσης οι τιμές που ανατίθενται σε αυτές τις μεταβλητές περνούν στην υπορουτίνα *sum*. Στην υπορουτίνα *sum* οι παράμετροι *addend1* και *addend2* αποτιμώνται, δίνοντας τα ορίσματα 40 και 2, αντίστοιχα. Οι τιμές των ορισμάτων προστίθενται και το αποτέλεσμα επιστρέφεται στον καλούντα, όπου ανατίθεται στην μεταβλητή *sumValue*.

Δείτε επίσης
------------

* Στρατηγική αποτίμησης