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

Σχετικά έγγραφα
Διοικητική Λογιστική

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

Διοικητική Λογιστική

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

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Τεχνικό Σχέδιο - CAD

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Διδακτική Πληροφορικής

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής

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

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

Διδακτική Πληροφορικής

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Διοικητική Λογιστική

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διαχείριση Πολιτισμικών Δεδομένων

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

Τεχνολογία Πολιτισμικού Λογισμικού

Πληροφορική ΙΙ Θεματική Ενότητα 12

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

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

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

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

Διοικητική Λογιστική

Βάσεις Περιβαλλοντικών Δεδομένων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

Βαγγϋλησ Οικονόμου Διϊλεξη 6. Δομ. Προγραμ. - Συναρτόςεισ - Διϊλεξη 6

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

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

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Διδακτική Πληροφορικής

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Τεχνολογία Πολιτισμικού Λογισμικού

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνικό Σχέδιο - CAD

ΠΕΡΙΒΑΛΛΟΝΤΙΚΗ ΠΟΛΙΤΙΚΗ & ΝΟΜΟΘΕΣΙΑ ΜΑΘΗΜΑ 1

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

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

Τεχνικό Σχέδιο - CAD

Ασφάλεια Πληροφοριακών Συστημάτων

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

ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗ ΛΟΓΙΣΤΙΚΗ

Ασφάλεια Πληροφοριακών Συστημάτων

Βάσεις Περιβαλλοντικών Δεδομένων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

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

ΔΙΟΙΚΗΣΗ ΔΙΕΘΝΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

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

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστημάτων

Οργάνωση και Λειτουργία Ταξιδιωτικής Βιομηχανίας Ι

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Εισαγωγή στους Αλγορίθμους

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

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

Δομή διαδικτυακών Πολυμέσων

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Βάσεις Περιβαλλοντικών Δεδομένων

Διοικητική Λογιστική

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Τεχνικό Σχέδιο - CAD

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

Τεχνολογία Πολιτισμικού Λογισμικού

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Διαχείριση Πολιτισμικών Δεδομένων

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Εισαγωγή στους Αλγορίθμους

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής

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

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

Διδακτική Πληροφορικής

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

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

Ηλεκτροτεχνία Ηλ. Μηχανές & Εγκαταστάσεις πλοίου (Θ)

Transcript:

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 10: Συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ

Περιεχόμενα Αφαιρετικότητα στις διεργασίες Συναρτήσεις Δήλωση, Κλήση και Ορισμός Εμβέλεια Μεταβλητών Μεταβίβαση παραμέτρων συναρτήσεις Μηχανισμός Κλήσης Συνάρτησης

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

Αφαιρετικότητα στις διεργασίες Παράδειγμα: Κάνε ένα φραπέ, γλυκό με γάλα Εστιάζουμε στο τι πρέπει να γίνει όχι στο πως Δε γνωρίζουμε τη διαδικασία παρασκευής του φραπέ, μας ενδιαφέρει να πιούμε τον φραπέ Τμήματα Διεργασίας: Όνομα διεργασίας Είσοδος και έξοδος διεργασίας Σώμα της διεργασίας

Αρθρωτός Σχεδιασμός Ο αρθρωτός σχεδιασμός (modular design) βασίζει την ανάπτυξη σύνθετων συστημάτων στην τμηματοποίηση των σύνθετων διεργασιών σε επιμέρους απλούστερες διεργασίες (τεχνικό διαίρε και βασίλευε) ή αντίστοιχα, την τμηματοποίηση του προγράμματος σε επιμέρους τμήματα (modules), συναρτήσεις, όπως ονομάζονται στη C.

Αρθρωτός Σχεδιασμός Ένα module(ό συνάρτηση) πρέπει: 1.να είναι σχετικά μικρό, 2.να έχει αν είναι δυνατό μια είσοδο και μια έξοδο, 3.να αναπτύσσεται και ελέγχεται σαν αυτόνομη μονάδα, 4.να εκτελεί ένα σαφώς ορισμένο έργο, και 5.να έχει μια καλώς προσδιορισμένη διεπαφή (interface).

Συναρτήσεις Η συνάρτηση είναι μία αυτόνομη μονάδα κώδικα σχεδιασμένη να επιτελεί συγκεκριμένο έργο. Βοηθά: 1. στην αποφυγή της επανάληψης, 2. στην αύξηση της επαναχρησιμοποίησης, 3. στη βελτίωση της αναγνωσιμότητας του κώδικα, 4. καθώς και στη βελτίωση της διαδικασίας συντήρησης. Κάθε C πρόγραμμα αποτελείται από μια ή περισσότερες συναρτήσεις και περιέχει οπωσδήποτε τη συνάρτηση main από την οποία, όπως ήδη γνωρίζετε, αρχίζει η εκτέλεση του προγράμματος.

Συναρτήσεις Το όνομα μιας συνάρτησης το συναντάμε σε ένα πρόγραμμα σε προτάσεις τριών διαφορετικών μορφών: 1. πρόταση δήλωσης της συνάρτησης 2. πρόταση κλήσης της συνάρτησης και 3. πρόταση ορισμού της συνάρτησης

Δήλωση της Συνάρτησης Η πρόταση δήλωσης προσδιορίζει τον τρόπο αναφοράς στη συνάρτηση. Γενικό μορφή: <τύπος> <όνομα συνάρτησης>(<τύποσ1> [<όνομα παραμέτρου1>],,<τύπος N> [<όνομα παραμέτρουn>]); προσδιορίζει τον τύπο της επιστρεφόμενης τιμής, το όνομα της συνάρτησης, τον αριθμό και τον τύπο των παραμέτρων και, προαιρετικά, τα ονόματα με τα οποία το σώμα της συνάρτησης αναφέρεται στις εισόδους που δέχεται. Παράδειγμα: int max(int a,int b); Void draw_circle(double x, double y, double r);

Κλήση Συνάρτησης Για να ενεργοποιήσουμε μια συνάρτηση την καλούμε. Έχετε ήδη καλέσει τις συναρτήσεις printf και scanf της βασικής βιβλιοθήκης. H κλήση μιας συνάρτησης που δεν επιστρέφει τιμή αποτελείται από το όνομα της συνάρτησης ακολουθούμενο από τη λίστα των παραμέτρων, τα οποία καλούνται ορίσματα Γενικό μορφή: <όνομα συνάρτησης > (όρισμα 1, όρισμα 2,, όρισμα Ν); Οι παρενθέσεις είναι απαραίτητες ακόμη και όταν δεν υπάρχουν ορίσματα, για να γνωρίζει ο μεταγλωττιστής ότι το όνομα είναι συνάρτηση και όχι μεταβλητή.

Κλήση Συνάρτησης Παράδειγμα: draw_circle(a/2.0, 2.0*b, c/3.0); Κλήση συνάρτησης που επιστρέφει τιμή: <όνομα μεταβλητής> = <όνομα συνάρτησης >(όρισμα 1, όρισμα 2,, όρισμα Ν); Οι συναρτήσεις οι οποίες επιστρέφουν τιμές αποτελούν τελεστέους σε σύνθετες εκφράσεις Παράδειγμα: max_num= max(num1,num2); result = num1 + max(num2,num3); printf( Ο μεγαλύτερος αριθμός είναι: %d\n, max(num1,num2));

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

Ορισμός Συνάρτησης Παράδειγμα: Ο ορισμός της συνάρτησης area που υπολογίζει την επιφάνεια ορθογωνίου. float area(float width, float height) { } float result; result = width * height; return(result);

Εμβέλεια Παραμέτρων Οι κανόνες εμβέλειας τους προσδιορίζουν το τμήμα του πηγαίου κώδικα στο οποίο ένα όνομα είναι ενεργό ή ορατό. Εμβέλεια προγράμματος: Μεταβλητές με εμβέλεια προγράμματος είναι γνωστές και σαν γενικές ή καθολικές (global) μεταβλητές. Εμβέλεια αρχείου: Μεταβλητή με εμβέλεια αρχείου, είναι ορατό μόνο στο αρχείο που δηλώνεται και μάλιστα από το σημείο της δήλωσης της και κάτω Εμβέλεια συνάρτησης: Προσδιορίζει την ορατότητα του ονόματος από την αρχή της συνάρτησης μέχρι το τέλος της Εμβέλεια μπλοκ (block): Προσδιορίζει την ορατότητα από το σημείο δήλωσης μέχρι το τέλος του μπλοκ στο οποίο δηλώνεται. Το μπλοκ είναι ένα σύνολο από προτάσεις που περικλείονται σε αγκύλες.

Μεταβίβαση Παραμέτρων Μεταβίβαση Παραμέτρων: ο τρόπος που «περνάμε» τις παραμέτρους στις συναρτήσεις. Η μεταβίβαση παραμέτρων (parameter passing) στη C γίνεται με δύο τρόπους. Ο πρώτος εξ αυτών είναι γνωστός σαν κλήση κατά τιμή (call by value), ενώ ο δεύτερος σαν κλήση κατ αναφορά (call by reference). Στη μεταβίβαση με τιμή η συνάρτηση δουλεύει πάνω σε αντίγραφα των πραγματικών παραμέτρων, ενώ στη μεταβίβαση με αναφορά δουλεύει πάνω στις πραγματικές παραμέτρους.

Δομημένος Προγραμματισμός DR. Α Θ Α Ν Α Σ Ι Ο Σ Κ Α Κ Α Ρ Ο Υ Ν Τ Α Σ

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

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