* Διαδικασία: Μια διαδικασία (μερικές φορές ονομάζεται υπορουτίνα ή υποπρόγραμμα) είναι ένα μπλοκ κώδικα που εκτελεί μια συγκεκριμένη εργασία, αλλά *δεν επιστρέφει μια τιμή *. Είναι ουσιαστικά ένα σύνολο οδηγιών που εκτελούνται για τις παρενέργειες του (π.χ. τροποποίηση δεδομένων, έξοδος εκτύπωσης, αλληλεπίδραση με υλικό).
* Λειτουργία: Μια συνάρτηση είναι επίσης ένα μπλοκ κώδικα που εκτελεί μια συγκεκριμένη εργασία, αλλά *επιστρέφει πάντα μια τιμή *. Αυτή η τιμή επιστροφής μπορεί να είναι οποιουδήποτε τύπου δεδομένων (ακέραιος, συμβολοσειρά, boolean, αντικείμενο κ.λπ.) ή ακόμα και άκυρο (που σημαίνει ότι δεν επιστρέφει τίποτα ρητά, αλλά εξακολουθεί να έχει σιωπηρή απόδοση σε πολλές γλώσσες). Ο πρωταρχικός σκοπός μιας λειτουργίας είναι να υπολογιστεί και να επιστρέψει ένα αποτέλεσμα.
Εδώ είναι μια αναλογία:
Φανταστείτε έναν σεφ.
* Διαδικασία: Ο σεφ ακολουθεί μια συνταγή για την προετοιμασία ενός πιάτου. Η δράση της προετοιμασίας του πιάτου είναι η διαδικασία. Ο σεφ δεν σας δίνει τίποτα πίσω απευθείας εκτός από τα αλλαγμένα συστατικά. Το τελικό αποτέλεσμα είναι μια αλλαγή στην κατάσταση των συστατικών.
* Λειτουργία: Ο σεφ κάνει μια σάλτσα. Η δράση της παραγωγής της σάλτσας είναι η λειτουργία και η ίδια η σάλτσα είναι η επιστρεφόμενη τιμή.
στον κωδικό (παράδειγμα Python):
`` `Python
Def Greet (όνομα):
εκτύπωση (F "Γεια σας, {όνομα}!")
Χαιρετισμός ("Alice") # έξοδος:Γεια σας, Αλίκη!
def add (x, y):
επιστροφή x + y
SUM =ADD (5, 3) # SUM θα είναι 8
εκτύπωση (άθροισμα) # έξοδος:8
`` `
Οι βασικές διακρίσεις συνοψίζονται:
| Χαρακτηριστικό | Διαδικασία | Λειτουργία |
| ----------------------------------------------------------------------------------------------------------------------
| Τιμή επιστροφής | Δεν επιστρέφει μια τιμή | Πάντα επιστρέφει μια τιμή (μπορεί να είναι άκυρη/καμία) |
| Σκοπός | Εκτελεί μια εργασία, συχνά για παρενέργειες | Υπολογίζει και επιστρέφει ένα αποτέλεσμα |
Ενώ η διάκριση είναι σαφής θεωρητικά, ορισμένες γλώσσες προγραμματισμού θολώνουν τις γραμμές. Για παράδειγμα, ορισμένες γλώσσες ενδέχεται να μην διαφοροποιούν ρητά μεταξύ διαδικασιών και λειτουργιών, χρησιμοποιώντας τον όρο "λειτουργία" για να συμπεριληφθούν και τα δύο. Ωστόσο, η εννοιολογική διαφορά παραμένει σημαντική για την κατανόηση του σχεδιασμού του προγράμματος και της modularity.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα