Προγραμματισμός ΙI (Θ)

Σχετικά έγγραφα
Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ)

Συναρτήσεις. Υποπρόγραμμα

Προγραμματισμός ΙI (Θ)

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός I (Θ)

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

Προγραμματισμός I (Θ)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

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

Προγραμματισμός I (Θ)

Προγραμματισμός ΙI (Θ)

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΡΟΟΔΟΣ

Επικοινωνία:

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διαδικασιακός Προγραμματισμός

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2019 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Προγραμματισμός I (Θ)

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

Δομημένος Προγραμματισμός (ΤΛ1006)

Κεφάλαιο 10 ο Υποπρογράµµατα

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Pascal. 26 Οκτωβρίου 2011

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Pascal. 15 Νοεμβρίου 2011

Χρησιμοποιώντας συναρτήσεις

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

Προγραμματισμός I (Θ)

Διαδικασιακός Προγραμματισμός

Η γλώσσα προγραμματισμού C

Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

z = c 1 x 1 + c 2 x c n x n

Διαδικασιακός Προγραμματισμός

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

Εισαγωγή στον Προγραμματισμό

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Προγραμματισμός Ι (ΗΥ120)

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον. τελική επανάληψη /4/2015 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Τεχνικός Εφαρμογών Πληροφορικής

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Κεφάλαιο 10. Υποπρογράμματα

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

ΠΡΟΓΡΑΜΜΑ synartisi_se_diadikasia ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: A[10], max, i, C, S, B, maxmax ΑΡΧΗ

Συναρτήσεις και διαδικασίες

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Προτεινόμενα Θέματα ΑΕΠΠ

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

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

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Εξετάσεων Ενιαίου Λυκείου 2004

απαντητικό σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

Η γλώσσα προγραμματισμού C

Αναδρομικός αλγόριθμος

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Διαδικασιακός Προγραμματισμός

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Προγραμματισμός ΙI (E)

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

ΘΕΜΑ Α. Μονάδες 10 Α2.

Χρησιμοποιώντας διαδικασίες

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Η γλώσσα προγραμματισμού C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Transcript:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 1 / 39 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (Θ) 1 Συναρτήσεις Εισαγωγή Παραδείγματα 2 Συναρτήσεις - Δήλωση, Ορισμός, Κλήση 3 Τύποι Συναρτήσεων Με επιστρεφόμενη τιμή Χωρίς επιστρεφόμενη τιμή () Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 2 / 39

Συναρτήσεις - Εισαγωγή I Ο βασικός τρόπος για να αναπτύξουμε και να συντηρήσουμε ένα πρόγραμμα, είναι να το σχεδιάσουμε και στην συνέχεια να το υλοποιήσουμε σε υποπρογράμματα. Αυτά τα υποπρογράμματα στη γλώσσα C υλοποιούνται με συναρτήσεις (functions). Σε αυτήν την ενότητα θα δούμε πως σχεδιάζουμε τις συναρτήσεις, ποια είδη συναντάμε πιο συχνά και πως αυτό μας ωφελεί σε μεγάλα και πολύπλοκα προγράμματα. Στην ανάπτυξη προγραμμάτων χρησιμοποιούμε συναρτήσεις γιατί θέλουμε ο κώδικας μας να είναι απλός και κατανοητός και εν συνεχεία να μπορούμε να τον συντηρήσουμε και να τον εξελίξουμε με μεγαλύτερη ευκολία. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 3 / 39 Συναρτήσεις - Εισαγωγή II Οι συναρτήσεις επιτρέπουν τον προγραμματιστή να χωρίσει ένα πρόγραμμα σε υπομονάδες και σε κάθε συνάρτηση θα πρέπει να αναπτύξουμε μια και μόνο λειτουργία του προγράμματος μας. Κάτι σημαντικό που πρέπει να προσέξουμε και να δώσουμε ιδιαίτερη βάση είναι ότι οι μεταβλητές που χρησιμοποιούμε στις συναρτήσεις είναι με τοπική εμβέλεια. Δηλαδή, έχουν οντότητα μόνο μέσα στη συνάρτηση. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 4 / 39

Συναρτήσεις - Εισαγωγή I Υπάρχει όμως κάποιος συγκεκριμένος τρόπος, να προσδιορίσουμε από την αρχή τις απαραίτητες βασικές λειτουργίες? Προφανώς Όχι! Δεν υπάρχει κάποια συγκεκριμένη μεθοδολογία. Εάν κάνουμε σωστή μελέτη και καταγράψουμε τις απαιτήσεις μας πριν ξεκινήσουμε να γράφουμε τον κώδικα θα διευκολυνθούμε αρκετά στην δημιουργία συναρτήσεων. Αυτός ο τρόπος μας δίνει την δυνατότητα να κατανοήσουμε καλύτερα την δομή του προγράμματος και έτσι επιτυγχάνουμε τον διαχωρισμό του σε κομμάτια. Αυτά τα κομμάτια θα είναι οι βασικές λειτουργίες τις οποίες θα γράψουμε σε ξεχωριστές συναρτήσεις με το κατάλληλο όνομα. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 5 / 39 Συναρτήσεις - Εισαγωγή II Χρησιμοποιώντας λοιπόν τις συναρτήσεις έχει αποδειχθεί ότι πρώτον μειώνονται τα λάθη μας και δεύτερον όταν προκύπτουν καινούργιες απαιτήσεις, μπορούμε να τις ενσωματώσουμε πάρα πολύ εύκολα δημιουργώντας απλά μια καινούργια συνάρτηση ή ενημερώνοντας μια προηγούμενη εφόσον αυτό είναι εφικτό. Φυσικά πέρα από τις συναρτήσεις που θα δημιουργήσουμε εμείς, η C μας παρέχει από μόνη της πολλές έτοιμες συναρτήσεις, με τις οποίες καλύπτουμε κάποιες βασικές ανάγκες. Για παράδειγμα, τέτοιες συναρτήσεις είναι οι: που ενώνει δύο αλφαριθμητικά, η που αντιγράφει την τοποθεσία της μνήμης σε άλλη, η που κάνει αναζήτηση, η που κάνει ταξινόμηση κ.ο.κ Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 6 / 39

Παράδειγμα 1 Να δημιουργηθεί πρόγραμμα σε C το οποίο να δέχεται 10 ακέραιους αριθμούς να υπολογίζει και να εμφανίζει το μέσο όρο σύμφωνα με τον τύπο n x = το εύρος σύμφωνα με τον τύπο x i i=1 n R = max min τη διακύμανση σύμφωνα με τον τύπο ( n ) 2 s 2 = 1 n x i x 2 i=1 i n n i=1 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 7 / 39 Παράδειγμα 1 I Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 8 / 39

Παράδειγμα 1 II Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 9 / 39 Παράδειγμα 2 Να δημιουργηθεί πρόγραμμα σε C το οποίο να δέχεται 10 ακέραιους βαθμούς [1, 10] να υπολογίζει και να εμφανίζει το μεγαλύτερο βαθμό να υπολογίζει και να εμφανίζει το μέσο όρο Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 10 / 39

Παράδειγμα 2 I Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 11 / 39 Παράδειγμα 2 II Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 12 / 39

Παράδειγμα 3 Να δημιουργηθεί πρόγραμμα σε C το οποίο να δέχεται ακέραιους αριθμούς και να σταματά όταν δοθεί ως βαθμός η τιμή μηδέν να υπολογίζει και να εμφανίζει το μεγαλύτερο βαθμό να υπολογίζει και να εμφανίζει το μέσο όρο Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 13 / 39 Παράδειγμα 3 I Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 14 / 39

Παράδειγμα 3 II Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 15 / 39 Συναρτήσεις - Δήλωση, Ορισμός, Κλήση I Ας μάθουμε κάποιες βασικές λειτουργίες που ισχύουν για όλες τις συναρτήσεις ανεξαρτήτου τύπου. Οι συναρτήσεις είναι ανεξάρτητα κομμάτια κώδικα τα οποία δεν μπορούν να λειτουργήσουν από μόνα τους εκτός και αν κληθούν από κάποια άλλη συνάρτηση. Πρέπει όμως να προσέξουμε ότι και η είναι μια συνάρτηση της οποίας το όνομα δεν αλλάζει και από αυτήν ξεκινάει αυτόματα η εκτέλεση του κυρίως προγράμματός μας. Αν λείπει η συνάρτηση από ένα πρόγραμμα σε C, τότε το πρόγραμμα δεν μπορεί να εκτελέσει τις εντολές του άρα κατ επέκταση δεν θα λειτουργήσει. Οι ενσωματωμένες συναρτήσεις της C για να εκτελεστούν πρέπει να δηλωθούν και να ορισθούν, διαδικασία που επιτυγχάνεται με την οδηγία Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 16 / 39

Συναρτήσεις - Δήλωση, Ορισμός, Κλήση II το αρχείο κεφαλίδας περιέχει την δήλωση και τον ορισμό κάποιων συναρτήσεων επομένως, ανάλογα με τις ενσωματωμένες συναρτήσεις της C που θέλει ο προγραμματιστής να χρησιμοποιήσει θα πρέπει να φορτώσει και την οδηγία με το κατάλληλο αρχείο κεφαλίδας. Οι οριζόμενες από τον προγραμματιστή συναρτήσεις στην C για να εκτελεστούν πρέπει να δηλωθούν και να ορισθούν, δηλαδή, να δηλωθεί η κεφαλίδα της συνάρτησης στην αρχή του προγράμματος και να οριστεί η συνάρτηση με άλλα λόγια να γραφεί το σώμα της στο τέλος του προγράμματος Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 17 / 39 Συναρτήσεις - Δήλωση I Μία καινούργια συνάρτηση οριζόμενη από τον προγραμματιστή πρέπει πρώτα να την δηλώσουμε. Η δήλωση μιας καινούργιας συνάρτησης γίνεται πάντα πριν από το κυρίως πρόγραμμα (δηλ. πριν από την ). Ο γενικός τρόπος δήλωσης μιας συνάρτησης γίνεται ως εξής: τύπος_συνάρτησης όνομα_συνάρτησης (τύπος_ορίσματος όρισμα); Ο τύπος_συνάρτησης είναι ο τύπος του στοιχείου που θα επιστρέφει η συνάρτηση που δημιουργήσαμε. Θα πρέπει πάντα να υπάρχει ένας τύπος συνάρτησης, ακόμη και στις συναρτήσεις χωρίς επιστρεφόμενη τιμή ο τύπος της θα είναι. Εάν δεν προσδιορίσουμε κάποιον τύπο κατά την δήλωση της συνάρτησης, τότε αυτή θα επιστρέψει έναν αριθμό είτε έναν χαρακτήρα, ο οποίος θα μεταφραστεί αυτόματα σε αριθμό. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 18 / 39

Συναρτήσεις - Δήλωση II Αυτό που πρέπει να προσέξουμε είναι πως οι τύποι της συνάρτησης αλλά και των ορισμάτων που θα δούμε παρακάτω, πρέπει να είναι ίδιοι με αυτούς που περιμένει να δεχτεί το κυρίως πρόγραμμα. Σε περίπτωση ασυμφωνίας θα δημιουργηθούν πολύπλοκα και σοβαρά προβλήματα στον κώδικα μας. Το σύνηθες είναι να μην τρέξει το πρόγραμμα και ο μεταγλωττιστής να μας ενημερώσει για το λάθος. Το όνομα_συνάρτησης προσδιορίζεται από τον προγραμματιστή. Καλό είναι όπως αναφέραμε και προηγουμένως το όνομα να είναι κάτι εύστοχο που θα προσδιορίζει ακριβώς την λειτουργία που θα εκτελεί η συνάρτηση. Το όνομα της συνάρτησης ακολουθεί τους κανόνες της ονοματολογίας των μεταβλητών. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 19 / 39 Συναρτήσεις - Δήλωση III Ο τύπος_ορίσματος είναι ανάλογος με το όρισμα μας. Δηλαδή, η δήλωση των ορισμάτων γίνεται όπως και η δήλωση των μεταβλητών, πρώτα προσδιορίζουμε τον τύπο και μετά το όνομα. Τα ονόματα από τα ορίσματα των συναρτήσεων είναι και πάλι επιλογή του προγραμματιστή και δεν έχουνε κάποια σύνδεση με τα ονόματα του κυρίως προγράμματος γιατί η εμβέλεια τους είναι όπως αναφέραμε τοπική. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 20 / 39

Συναρτήσεις - Ορισμός I Μία καινούργια συνάρτηση οριζόμενη από τον προγραμματιστή εφόσον την δηλώσουμε πρέπει να την ορίσουμε. Η ορισμός μιας καινούργιας συνάρτησης γίνεται πάντα μετά από το κυρίως πρόγραμμα (δηλ. πριν από την ). Ο γενικός τρόπος ορισμού μιας συνάρτησης γίνεται ως εξής: τύπος_συνάρτησης όνομα_συνάρτησης (τύπος_ορίσματος όρισμα) { } Σώμα Συνάρτησης Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 21 / 39 Συναρτήσεις - Ορισμός II Επίσης, ίσως η πιο βασική λειτουργία μιας συνάρτησης παρέχεται από την εντολή. Βρίσκεται στον κύριο κορμό της συνάρτησης και είναι ο σύνδεσμος που επικοινωνεί με το κυρίως πρόγραμμα. Οποιαδήποτε λειτουργία και αν έχουμε γράψει στην συνάρτηση το κυρίως πρόγραμμα θα λάβει την τιμή που επιστρέφει η εντολή. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 22 / 39

Συναρτήσεις - Κλήση I Μία καινούργια συνάρτηση οριζόμενη από τον προγραμματιστή εφόσον την δηλώσουμε και την ορίσουμε μπορούμε να την καλέσουμε. Η κλήση μιας καινούργιας συνάρτησης γίνεται είτε από το κυρίως πρόγραμμα είτε από άλλη συνάρτηση με τον ίδιο τρόπο με τον οποίο καλούμε τις ενσωματωμένες συναρτήσεις της γλώσσας C. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 23 / 39 Τύποι Συναρτήσεων Οι τύποι συναρτήσεων που θα αναπτύξουμε είναι οι παρακάτω: 1 Με επιστρεφόμενη τιμή. 2 Χωρίς επιστρεφόμενη τιμή (). 3 Αναδρομικές συναρτήσεις. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 24 / 39

Συνάρτηση με επιστρεφόμενη τιμή I Οι συναρτήσεις με επιστρεφόμενη τιμή χωρίζονται σε δύο κατηγορίες: σε αυτές με ορίσματα και σε αυτές χωρίς ορίσματα Ας δούμε πρώτα πώς λειτουργούν οι συναρτήσεις που δέχονται ορίσματα. Στον προγραμματισμό τέτοιου είδους συναρτήσεις είναι οι πιο διαδεδομένες. Συνήθως θέλουμε να δώσουμε κάποια στοιχεία σε μία συνάρτηση. Αυτή με την σειρά της θα τα υποβάλει σε κάποια επεξεργασία και έπειτα θα τα επιστρέψει. Ο ορισμός τους γίνεται ακριβώς όπως είδαμε παραπάνω. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 25 / 39 Συνάρτηση με επιστρεφόμενη τιμή II Αλλά ας κατασκευάσουμε μία συνάρτηση η οποία θα δέχεται δυο ακέραιους αριθμούς και θα επιστρέφει τον μεγαλύτερο. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 26 / 39

Συνάρτηση με επιστρεφόμενη τιμή I Δήλωση συνάρτησης με ορίσματα και επιστρεφόμενη τιμή: Ορισμός (κατασκευή) συνάρτησης με ορίσματα και επιστρεφόμενη τιμή: Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 27 / 39 Συνάρτηση με επιστρεφόμενη τιμή II Κλήση συνάρτησης με ορίσματα και επιστρεφόμενη τιμή: Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 28 / 39

Συνάρτηση με επιστρεφόμενη τιμή I Το πρόγραμμα θα γίνει Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 29 / 39 Συνάρτηση με επιστρεφόμενη τιμή II Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 30 / 39

Συνάρτηση με επιστρεφόμενη τιμή I Καλό είναι η κατασκευή της συνάρτησης να γίνεται μετά το κυρίως πρόγραμμα. Δεν είναι λάθος να γίνει πιο πριν αλλά σε μεγάλα προβλήματα με πολλές συναρτήσεις το πιο πιθανό είναι να δημιουργηθούν προβλήματα πολυπλοκότητας. Παρατηρούμε επίσης ότι κατά την δήλωση της συνάρτησης ακολουθεί το ; ενώ στον ορισμό της όχι. Επομένως προσέχουμε να μην ξεχάσουμε ποτέ το ερωτηματικό στην δήλωση της συνάρτησης διότι όπως ακριβώς και στην δήλωση οποιαδήποτε μεταβλητής έτσι και εδώ θα δημιουργηθούν προβλήματα και δεν θα τρέξει το πρόγραμμα μας. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 31 / 39 Συνάρτηση με επιστρεφόμενη τιμή II Εφόσον έχουμε δηλώσει και συγγράψει επιτυχώς την συνάρτηση που θα χρησιμοποιήσουμε ήρθε η ώρα να την καλέσουμε στο κυρίως πρόγραμμα μας. Αυτή η διαδικασία είναι πολύ απλή, το μόνο που πρέπει να κάνουμε είναι να δημιουργήσουμε μια καινούργια μεταβλητή ιδίου τύπου με την επιστρεφόμενη τιμή της συνάρτησης, και έπειτα να εκχωρήσουμε για τιμή το όνομα της συνάρτησης μαζί με τα ορίσματα. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 32 / 39

Συνάρτηση με επιστρεφόμενη τιμή I Ας δούμε τώρα και την δεύτερη περίπτωση, τι συμβαίνει όταν έχουμε κάποια επιστρεφόμενη τιμή αλλά δεν έχουμε ορίσματα; Συνήθως αυτό συμβαίνει όταν χρησιμοποιούμε συναρτήσεις από την πρότυπη βιβλιοθήκη¹ της C. Ας κατασκευάσουμε όμως ένα παράδειγμα, το οποίο θα εμφανίζει τυχαίους αριθμούς απο ένα συγκεκριμένο εύρος αριθμών 1 έως 100 κάνοντας χρήση μίας πρότυπης βιβλιοθήκης. ¹Η πρότυπη βιβλιοθήκη C είναι μια πρότυπη συλλογή από αρχεία, επικεφαλίδες και συναρτήσεις βιβλιοθήκης που υλοποιούν κάποιες κοινές λειτουργίες. Σε αντίθεση με άλλες γλώσσες η C δεν περιλαμβάνει ενσωματωμένες δεσμευμένες λέξεις για αυτές τις λειτουργίες, και για αυτόν τον λόγο σχεδόν όλα τα προγράμματα γραμμένα στην C βασίζονται στην πρότυπη βιβλιοθήκη για να λειτουργήσουν. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 33 / 39 Συνάρτηση με επιστρεφόμενη τιμή I Δήλωση συνάρτησης με επιστρεφόμενη τιμή αλλά χωρίς ορίσματα: Ορισμος (κατασκευή) συνάρτησης με επιστρεφόμενη τιμή αλλά χωρίς ορίσματα: Η κλήση της συνάρτησης γίνεται με τον ίδιο τρόπο που είδαμε στο προηγούμενο παράδειγμα με την μόνη διαφορά ότι στην παρένθεση δεν θα βάλουμε ορίσματα. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 34 / 39

Χωρίς επιστρεφόμενη τιμή () Οι συναρτήσεις χωρίς επιστρεφόμενη τιμή ή αλλιώς κενού τύπου, έχουνε τύπο επιστρεφόμενης τιμής, για αυτόν τον λόγο τις αποκαλούμε και τύπου. Αυτό σημαίνει ότι δεν επιστρέφουν τίποτα και για αυτόν τον λόγο μέσα στο κορμό τους δεν έχουν την. Συνήθως οι τύπου συναρτήσεις κάνουν διάφορους υπολογισμούς και δείχνουν τα αποτελέσματα τους με την συνάρτηση. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 35 / 39 Χωρίς επιστρεφόμενη τιμή () Παρόλα αυτά όπως και στις συναρτήσεις με επιστρεφόμενη τιμή έτσι και εδώ έχουμε δύο κατηγορίες: με ορίσματα και χωρίς ορίσματα Οι συναρτήσεις με ορίσματα είναι αυτές που αναφέραμε πιο πάνω. Είναι αυτές που δέχονται κάποιες παραμέτρους, κάνουν τους απαραίτητους υπολογισμούς και έπειτα εμφανίζουν το αποτέλεσμα στην οθόνη με την εντολή συνάρτηση. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 36 / 39

Χωρίς επιστρεφόμενη τιμή () I Για παράδειγμα ας υποθέσουμε ότι δεχόμαστε δύο τιμές και θέλουμε να βρούμε τον μέσο όρο: Δήλωση συνάρτησης με ορίσματα αλλά χωρίς επιστρεφόμενη τιμή: Ορισμός (κατασκευή) συνάρτησης με ορίσματα αλλά χωρίς επιστρεφόμενη τιμή: Κλήση συνάρτησης με ορίσματα και χωρίς επιστρεφόμενη τιμή: Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 37 / 39 Χωρίς επιστρεφόμενη τιμή () I Οι συναρτήσεις χωρίς ορίσματα είναι οι πιο απλές συναρτήσεις που θα συναντήσουμε. Ούτε δέχονται ούτε εμφανίζουν τιμές. Μπορούν να χρησιμοποιηθούν για να εμφανίσουν κάποιο μήνυμα ή για να εμφανίσουν πληροφορίες κ.ο.κ. Ας εξετάσουμε ένα παράδειγμα που θα εμφανίζει κάποιο μήνυμα στην οθόνη: Δήλωση συνάρτησης χωρίς ορίσματα και χωρίς επιστρεφόμενη τιμή: Ορισμός (κατασκευή) συνάρτησης χωρίς ορίσματα και χωρίς επιστρεφόμενη τιμή: Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 38 / 39

Χωρίς επιστρεφόμενη τιμή () II Κλήση συνάρτησης χωρίς ορίσματα και χωρίς επιστρεφόμενη τιμή: Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 39 / 39