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

Σχετικά έγγραφα
Εισαγωγή στον Προγραμματισμό

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

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

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

Μεθόδων Επίλυσης Προβλημάτων

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Συναρτήσεις. Εισαγωγή

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

Προγραμματισμό για ΗΜΥ

Η βασική συνάρτηση προγράμματος main()

Ηβασικήσυνάρτηση προγράμματος main()

12. Συναρτήσεις (Μέρος ΙI)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

Γλώσσα Προγραμματισμού C

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

ΗΥ-150. Προγραμματισμός

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

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

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

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

Θέματα Προγραμματισμού Η/Υ

Μεθόδων Επίλυσης Προβλημάτων

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

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

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

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 12 ο Μάθημα 1

ΑΣΚΗΣΗ 8: ΣΥΝΑΡΤΗΣΕΙΣ

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

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

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

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Εισαγωγή στις Συναρτήσεις

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

int abs( int x ), επιστρέφει την απόλυτη τιμή του ακεραίου x Πχ abs( 11) ισούται με 11, abs(34) ισούται με 34 double fb( fabs( double x ), επιστρέφει

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

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

11. Συναρτήσεις (Μέρος Ι)

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 9 Συναρτήσεις. Γεώργιος Λαμπρινίδης

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Γλώσσα Προγραμματισμού C

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

Ασκήσεις & παραδείγματα για επανάληψη

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Κεφάλαιο 7: Υπορουτίνες

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Transcript:

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

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Συναρτήσεις στη C Με τον όρο «συνάρτηση» ορίζεται μία ακολουθία εντολών που έχουν ομαδοποιηθεί και εκτελούνται με την κλήση ενός συμβολικού ονόματος Στη C κάθε συνάρτηση είναι ένα μικρό πρόγραμμα, με τις δικές του δηλώσεις μεταβλητών, και τις δικές του εντολές. Μια συνάρτηση - έχει συγκεκριμένο όνομα (κλήση συνάρτησης με το όνομα της) - είναι ανεξάρτητη, - εκτελεί συγκεκριμένη εργασία - μπορεί να επιστρέψει κάποιο αποτέλεσμα

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 3 Συναρτήσεις - Functions Η έννοια των λειτουργικών μονάδων προγράμματος νέες συναρτήσεις υπάρχουσες συναρτήσεις (scanf(), printf(), pow() ) Φιλοσοφία του «διαίρει και βασίλευε» (divide and conquer) Χωρίζουμε το πρόγραμμα σε μέρη Τα μέρη αντιστοιχούν σε επιμέρους και μικρότερα προβλήματα Αναλογία με μια επιχείρηση: Ο προϊστάμενος αναθέτει μια δουλειά σε κάποιον υφιστάμενο Παίρνει το αποτέλεσμα χωρίς να «ενδιαφέρεται» για τις λεπτομέρειες

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 4 Συναρτήσεις Functions Πλεονεκτήματα Τα μικρότερα προβλήματα είναι πιο εύκολο να τα διαχειριστούμε νοητικά Το πρόβλημα διαιρείται (divide) σε δύο ή περισσότερα υποπροβλήματα Προτιμάται τα υπο-προβλήματα να έχουν περίπου το ίδιο μέγεθος Το κάθε υπο-πρόβλημα λύνεται ξεχωριστά (conquer) Εάν χρειάζεται, οι λύσεις των υπο-προβλημάτων συνδυάζονται για να βρεθεί η λύση στο αρχικό πρόβλημα (conquer) Κάθε υπο-πρόβλημα αντιστοιχεί σε μία συνάρτηση

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 5 Μεθοδολογία επίλυσης προβλήματος Σύνθετο Πρόβλημα Υπο- Πρόβλημα 1 Υπο- Πρόβλημα 2 Υπο- Πρόβλημα 3 Υπο- Πρόβλημα 1-1 Υπο- Πρόβλημα 1-2

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 6 Οργάνωση Προγράμματος main Συνάρτηση-1 Συνάρτηση-2 Συνάρτηση-3 Συνάρτηση-1.1 Συνάρτηση-1.2

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 7 Συναρτήσεις Functions Πλεονεκτήματα Πιο εύκολη διαχείριση κώδικα Debugging Updating Επαναχρησιμοποίηση κώδικα Χρήση υπαρχόντων συναρτήσεων σε καινούρια προγράμματα για τη λύση νέων προβλημάτων (code reuse) Αποφυγή επανάληψης του ίδιου κώδικα πολλές φορές μέσα σε ένα πρόγραμμα Αφαίρεση (abstraction) «κρύβονται» λεπτομέρειες που δεν είναι απαραίτητες στον προγραμματιστή

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 8 Ορολογία σχετικά με Συναρτήσεις Πρωτότυπο συνάρτησης (function declarations) Δήλωση/Ορισμός συνάρτησης (function definitions) Παράμετροι συνάρτησης (formal parameters) Ορίσματα συνάρτησης (actual parameters) Σώμα συνάρτησης (function body) Κλήση συνάρτησης (function call) Επιστροφή τιμών (return values)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Μαθηματικές Συναρτήσεις Η βιβλιοθήκη math.h διαθέτει μια σειρά από χρήσιμες μαθηματικές συναρτήσεις Συνάρτηση Περιγραφή sqrt(x) Τετραγωνική ρίζα, χ>=0 pow(x,y) x y log(x) Λογάριθμος του χ, χ>0 exp(x) e x fabs(x) Απόλυτη τιμή του χ cos(x) Συνημίτονο χ sin(x) Ημίτονο χ tan(x) Εφαπτομένη χ

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 10 Χρήση προκατασκευασμένων Συναρτήσεων #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double riza; double num=9.0; riza = sqrt(num); } printf("%f",riza); return 0;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 1 Μαθηματικές Συναρτήσεις Υπολογίστε την περιφέρεια και το εμβαδόν ενός κυκλικού δίσκου με ακτίνα που του δίνουμε εμείς από το πληκτρολόγιο, χρησιμοποιώντας τη συνάρτηση pow(x,y). Περιφέρεια δίσκου = 2πr Εµβαδόν δίσκου = πr 2

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 1 Μαθηματικές Συναρτήσεις #include <stdio.h> #include <stdlib.h> #include <math.h> #define PI 3.14159 int main() { int aktina; double perifereia, embadon; printf("doste tin aktina toy kyklikoy diskoy:"); scanf("%d", &aktina); perifereia = 2 * PI * aktina; embadon = PI * pow(aktina, 2); printf("o diskos me aktina: %d\n", aktina); printf("exei periferia: %.3f\n", perifereia); printf("kai embadon: %.3f\n", embadon); } return 0;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 2 Μαθηματικές Συναρτήσεις Υπολογίστε την υποτείνουσα ενός τριγώνου χρησιμοποιώντας το Πυθαγόρειο θεώρημα καθώς και το εμβαδόν του τριγώνου χρησιμοποιώντας τη συνάρτηση sqrt. Για τον υπολογισμό της υποτείνουσας χρησιμοποιήστε το Πυθαγόρειο θεώρημα: Για την τετραγωνική ρίζα χρησιμοποιήστε τη συνάρτηση sqrt( ) Για το a 2 και το b 2 χρησιμοποιήστε τη συνάρτηση pow(x,y)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 2 Μαθηματικές Συναρτήσεις #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float sidea, sideb, sidec, area; printf("doste tin pleyra A toy orthogonioy trigonou:"); scanf("%f", &sidea); printf("doste tin pleyra B toy orthogonioy trigonou:"); scanf("%f", &sideb); sidec = sqrt(pow(sidea,2)+pow(sideb,2)); /* ypologismos pleyras c */ area = 0.5 * sidea * sideb; /* ypologismos embadou */ printf("to trigono me pleyres %.3f kai %.3f\n", sidea, sideb); printf("exei ypotinousa: %.3f\n", sidec); printf("kai embadon: %.3f\n", area); } return 0;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 3 Μαθηματικές Συναρτήσεις Γράψτε πρόγραμμα σε C που να διαβάζει σε έναν πίνακα τις θερμοκρασίας μιας εβδομάδας από το πληκτρολόγιο σαν δεκαδικούς αριθμούς και στη συνέχεια υπολογίζει τη μέγιστη θερμοκρασία κατά την απόλυτη τιμή χρησιμοποιώντας τη συνάρτηση fabs().

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Άσκηση 3 Μαθηματικές Συναρτήσεις #include <stdio.h> #include <stdlib.h> #include <math.h> #define WEEK 7 main() { float temp[week]; int i, max = 0; printf("doste tis thermokrasies tis ebdomadas:\n"); for (i = 0; i < WEEK; i++) { printf("%d> ", i+1); scanf("%f", &temp[i]); } } for (i = 0; i < WEEK; i++) { if ( fabs(temp[i]) > fabs(temp[max])) max = i; } printf("h megisti kata apolyto thermokrasia tis ebdomadas einai h %.3f thn %d hmera\n", temp[max], max+1); return 0;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 17 Ορισμός Συναρτήσεων Επιστρεφόμενος-τύπος όνομα-συνάρτησης(λίστα-παραμέτρων) { Δηλώσεις μεταβλητών; Εντολές; } Όνομα-συνάρτησης οποιοδήποτε δεκτό όνομα Επιστρεφόμενος-τύπος τύπος των δεδομένων που επιστρέφει η συνάρτηση v o i d : δεν επιστρέφει τίποτα Λίστα-παραμέτρων δηλώσεις παραμέτρων, χωρίζονται με κόμμα (τύπος παράμετρος, τύπος παράμετρος,...)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 18 Ορισμός Συναρτήσεων int SquareIt(int a) { int result; result = a*a; return result; }

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 19 Ορισμός Συναρτήσεων #include <stdio.h> int SquareIt(int a) { int result; result = a*a; return result; } void main() { int num, square; printf( Enter a number: ); scanf( %d, &num ); square = SquareIt( num ); printf( The square of %d is: %d, num, square); } Ορισμός Συνάρτησης Σώμα Συνάρτησης Επιστροφή τιμής Συνάρτησης

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 20 Κλήση Συναρτήσεων - Function Call Μία συνάρτηση ενεργοποιείται όταν κληθεί. Εάν η συνάρτηση δεν επιστρέφει τιμή, η κλήση της γίνεται από ένα σημείο του προγράμματος ως εξής: όνομα_συνάρτησης ( όρισμα1, όρισμα2,..., όρισμαn ); αν επιστρέφει τιμή η κλήση της γίνεται με τον ίδιο τρόπο αλλά η συνάρτηση πλέον θα πρέπει να συμμετέχει σε κάποια έκφραση

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 21 Κλήση Συναρτήσεων - Function Call όνομα_συνάρτησης ( όρισμα1,..., όρισμαν); τιμή η τιμή που επιστρέφει ο κώδικας της συνάρτησης όταν εκτελεστεί με τα δοσμένα ορίσματα x = SquareIt(5); Στη μεταβλητή x θα ανατεθεί η τιμή που επιστρέφει η συνάρτηση SquareIt(5) 25

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 22 Ορίσματα συναρτήσεων όνομα συνάρτησης ( όρισμα1, όρισμα2,..., τελευταίο όρισμα ); Οι τιμές όρισμα1, όρισμα2,..., τελευταίο όρισμα καλούνται ορίσματα, χωρίζονται με κόμμα και περικλείονται σε παρενθέσεις, αντιστοιχούν δε ένα προς ένα στη λίστα των παραμέτρων της συνάρτησης που ορίστηκαν κατά τη δήλωσή της. Ακόμη κι όταν δεν υπάρχουν ορίσματα οι παρενθέσεις είναι υποχρεωτικές, καθώς δηλώνουν στο μεταγλωττιστή ότι το όνομα αντιπροσωπεύει συνάρτηση και όχι μεταβλητή. Τα ορίσματα μπορούν να είναι σταθερές, τιμές μεταβλητών ή ακόμη και τιμές εκφράσεων αλλά σε κάθε περίπτωση πρέπει να είναι ίδιου τύπου με τις παραμέτρους της συνάρτησης.

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 23 Ορίσματα συναρτήσεων x=10; print_max_two_integers( x+10, 32 ); <επόμενη πρόταση>;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 24 Κλήση Συναρτήσεων Function Call Μία συνάρτηση μπορεί να κληθεί με δύο τρόπους: 1. χρησιμοποιώντας το όνομά της και τη λίστα των ορισμάτων της σε μια αυτόνομη πρόταση π.χ. wait(12); 2. χρησιμοποιώντας το όνομά της και τη λίστα των ορισμάτων της σε μια έκφραση π.χ. k = SquareIt(10);

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 25 Ορισμός Συναρτήσεων #include <stdio.h> int SquareIt(int a) { int result; result = a*a; return result; } Παράμετρος Συνάρτησης Ορισμός Συνάρτησης Σώμα Συνάρτησης Τιμή Συνάρτησης Επιστρεφόμενη τιμή Συνάρτησης void main() { int num, square; printf( Enter a number: ); scanf( %d, &num ); square = SquareIt( num ); printf( The square of %d is: %d, num,square); } Όρισμα Συνάρτησης Κλήση Συνάρτησης

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 26 Συναρτήσεις με ή χωρίς επιστρεφόμενη τιμή Εάν η συνάρτηση έχει έξοδο, αυτή θα πρέπει να επιστρέφεται με χρήση της εντολής return στο τέλος του σώματος της συνάρτησης. π.χ. return var; //var η μεταβλητή με επιστρεφόμενη τιμή Εάν δεν έχει έξοδο, ο <επιστρεφόμενος τύπος> αντικαθίσταται από τη λέξη void, π.χ. void print_max_two_int( int first_integer, int second_integer ) { if (first_integer > second_integer) printf( "max=%d\n",first_integer ); else printf( "max=%d\n",first_integer ); }

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 27 Συναρτήσεις void Αν η συνάρτηση είναι τύπου void, δεν επιστρέφει τιμή void f() { printf( Test\n ); } Λάθος: x = f() + 10;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 28 Ροή του Προγράμματος Η ροή του προγράμματος αλλάζει όταν συναντήσει την κλήση μιας συνάρτησης f(a, b, c) Πρώτα υπολογίζονται οι εκφράσεις που αντιστοιχούν στα ορίσματα Οι τιμές των εκφράσεων a, b, c αντιγράφονται στα ορίσματα της f Ο έλεγχος μεταπηδά στην πρώτη εντολή της f Οι εντολές της f εκτελούνται μέχρι να συναντηθεί return έκφραση; Τέλος συνάρτησης (δηλαδή }) Η κλήση f(a, b, c) αντικαθίσταται με την επιστρεφόμενη τιμή

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 29 Θέματα σχετικά με Συναρτήσεις Δηλώσεις μεταβλητών μέσα σε blocks: ΤΟΠΙΚΕΣ μεταβλητές Συναρτήσεις ΔΕΝ μπορούν να οριστούν μέσα σε άλλες συναρτήσεις ΟΠΟΙΑΔΗΠΟΤΕ συνάρτηση μπορεί να καλέσει άλλες συναρτήσεις και τον εαυτό της (αναδρομή)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 30 Νέο Πρόγραμμα Δημιουργήστε ένα νέο project με τίτλο function1

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 31 Άσκηση Γράψτε ένα πρόγραμμα που θα τυπώνει δύο ακέραιους στη μορφή [ x, y ] Ορίστε μία συνάρτηση print_values όπου θα τυπώνονται οι αριθμοί Καλέστε τη συνάρτηση στο πρόγραμμα σας ώστε να τυπωθούν όλα τα δυνατά ζεύγη τιμών για τιμές x και y από 0 έως 5 Τροποποιήστε τη συνάρτηση σας ώστε όταν τυπωθούν όλες οι τιμές του y να τυπώνεται σε νέα γραμμή η συμβολοσειρά "-----------"

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 32 Νέο Πρόγραμμα Δημιουργήστε ένα νέο project με τίτλο function2

Άσκηση Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 33 Γράψτε ένα πρόγραμμα που θα υπολογίζει την τρίτη δύναμη ενός ακέραιου αριθμού Ορίστε μία συνάρτηση power όπου θα υπολογίζεται η δύναμη καλέστε τη συνάρτηση στο πρόγραμμα σας, ώστε να υπολογιστούν και να εμφανιστούν στην οθόνη οι κύβοι των αριθμών από το 1 ως το 10

Άσκηση Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 34 Τροποποιήστε τη συνάρτηση ώστε να δέχεται δύο ορίσματα. Το πρώτο είναι ο αριθμός και το δεύτερο θα παίρνει τιμές 2 και 3. Αν είναι 2 θα υπολογίζεται το τετράγωνο του αριθμού, ενώ αν είναι 3 ο κύβος του αριθμού. Καλέστε τη συνάρτηση στο πρόγραμμα σας, ώστε να υπολογιστούν και να εμφανιστούν στην οθόνη τα τετράγωνα και οι κύβοι των αριθμών από το 1 ως το 10