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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

Ηλεκτρονικοί Υπολογιστές

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Ηλεκτρονικοί Υπολογιστές

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

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

Λογιστικές Εφαρμογές Εργαστήριο

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

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

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

Ηλεκτρονικοί Υπολογιστές

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

Εισαγωγή στον δομημένο προγραμματισμό

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

Αντικειμενοστραφής Προγραμματισμός

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

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

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

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

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Transcript:

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

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

Σκοποί ενότητας Oι διδακτικοί σκοποί της ενότητας για τους σπουδαστές είναι: 1. Να γνωρίσουν τις συναρτήσεις και τον τρόπο που ορίζονται από τον χρήστη 2. Να εκτιμήσουν την διαδικασία με την οποία ένα πρόγραμμα διασπάται σε μικρότερα δομικά στοιχεία 3. Να μάθουν την χρήση και εφαρμογή των συναρτήσεων 4. Να εξοικειωθούν με τις επιστρεφόμενες τιμές από συναρτήσεις 5. Να γνωρίσουν τις συναρτήσεις void που δεν επιστρέφουν τιμή 6. Να γνωρίσουν την χρήση των συναρτήσεων χωρίς παραμέτρους

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

Συναρτήσεις Ο δομημένος προγραμματισμός βασίζεται στην αρχή της επίλυσης μίας εφαρμογής προγραμματισμού κάνοντας χρήση μικρότερων δομικών στοιχείων Το πρόβλημα διασπάται σε μικρότερα κομμάτια και μπορεί να επιλυθεί πιο εύκολα Με την χρήση των συναρτήσεων ένα πρόγραμμα μπορεί να χωριστεί σε άλλα μικρότερα κομμάτια (δομές) Η συνάρτηση είναι ένα σύνολο εντολών που καλείται και χρησιμοποιείται από ένα σημείο ενός προγράμματος. Στην C ακόμη και το main θεωρείται ότι είναι μία συνάρτηση

Συναρτήσεις βιβλιοθήκης (1/2) Oι βιβλιοθήκες της C περιλαμβάνουν ένα πλήθος συναρτήσεων που μπορεί να χρησιμοποιήσει ο προγραμματιστής. Τα αρχεία επικεφαλίδων (header files) περιέχουν τους ορισμούς - δηλώσεις συναρτήσεων που μπορεί να χρησιμοποιηθούν από τον προγραμματιστή. Έχουν ήδη χρησιμοποιηθεί κάποιες βασικές συναρτήσεις όπως η printf και η scanf που ενσωματώνονται στον κώδικα με το #include Oι δύο αυτές συναρτήσεις περιλαμβάνονται στο αρχείο επικεφαλίδων stdio.h

Συναρτήσεις βιβλιοθήκης (2/2) Πολλές μαθηματικές συναρτήσεις (sin, cos, tan, sqrt κλπ.) περιέχονται στο αρχείο επικεφαλίδων math.h Για παράδειγμα η συνάρτηση sqrt(k) υπολογίζει (και επιστρέφει) μία τιμή που αντιστοιχεί στην τετραγωνική ρίζα του κ.» int k;» for (k=0;k<10;k++)» printf("%d %f\n",k, sqrt(k));»

Συναρτήσεις του χρήστη O προγραμματιστής μπορεί να ορίζει και δικές του συναρτήσεις (user defined functions) Μία τέτοια συνάρτηση πρέπει να δηλωθεί και να οριστεί πριν γίνει χρήση της συνάρτησης στο πρόγραμμα Η συνάρτηση επιστρέφει το πολύ μία τιμή γι αυτό στον ορισμό μίας συνάρτησης περιλαμβάνεται ο τύπος της τιμής που επιστρέφει Επίσης υπάρχει και τουλάχιστον μία εντολή return που επιστρέφει την τιμή στο πρόγραμμα από το οποίο καλείται η συνάρτηση

Ορισμός συναρτήσεων χρήστη (1/2) Ο ορισμός μίας συνάρτησης έχει την παρακάτω μορφή:» Τύπος ονομα_συνάρτησης(τύπος παράμετρος1,τύπος παράμετρος2, )» {» εντολές» }

Ορισμός συναρτήσεων χρήστη (2/2) Η παρακάτω συνάρτηση βρίσκει το άθροισμα δύο ακεραίων αριθμών» int athoisma(int a, int b)» {» return a+b;» } Για να χρησιμοποιηθεί η συνάρτηση πρέπει να γίνει κλήση της με ένας από τους παρακάτω τρόπους:» z = addition (15, 8);» z = addition (k, l);

Παράδειγμα (1/2) Το πλήρες πρόγραμμα μαζί με τον ορισμό της συνάρτηση φαίνεται παρακάτω Όμως τώρα η συνάρτηση υπολογίζει το άθροισμα το αποθηκεύει σε μία μεταβλητή p και το επιστρέφει με χρήση της μεταβλητής p, δηλαδή αντί για return a+b; η εντολή έχει αντικατασταθεί από το return p;» int addition (int a, int b){» int p;» p=a+b;» return (p);» }

Παράδειγμα (2/2)» int main (){» int z; z = addition (15, 8);» printf( Ta athroisma einai %d\n",z);» int k=40,l=50; z=addition (k, l);» printf( To athroisma einai %d\n",z);» return 0;» }»

Παρατηρήσεις στις συναρτήσεις Υπάρχει αντιστοιχία μεταξύ του τύπου και του αριθμού των παραμέτρων που χρησιμοποιούνται στον ορισμό και στην κλήση της συνάρτησης.»int addition (int a, int b) // orismos sinartisis»z = addition (15, 8); // klisi sinartisis Οι παράμετροι που χρησιμοποιούνται για να ορίσουν την συνάρτηση λέγονται παράμετροι (parameters) ή τυπικές παράμετροι (formal parameters). Οι εκφράσεις που χρησιμοποιούνται στην κλήση μίας συνάρτησης λέγονται ορίσματα (arguments). Μόλις γίνει κλήση της συνάρτησης, οι τιμές των ορισμάτων μεταφέρονται στις παραμέτρους που βρίσκονται στον ορισμό της συνάρτησης. Εάν η συνάρτηση δεν επιστρέφει καμία τιμή τότε ορίζεται σαν τύπου void.

Το παρακάτω πρόγραμμα να γραφεί με χρήση δύο συναρτήσεων που υπολογίζουν την δύναμη και το παραγοντικό. Άσκηση

Άσκηση-επίλυση»// orismos sinartisis»int funcpow(int a, int b) {» int dinami = 1; int i;» for(i = 0; i < b; i++) {» dinami = dinami * a;» }» return dinami;»}»// orismos sinartisis»int funcfact(int b) {» int parag = 1; int i;» if (b == 0) parag = 1;» else» for (i=1; i<=b; i++) {» parag *= i;» }» return parag;»}»// main»int main() {» int a = 5, b = 4;» if (b<0) b=-b;»» // Klisi sinartiseon» printf("dinami(%d ^ %d)=", a,b);» printf("=%d\n", funcpow(a,b));»» printf("paragontiko(%d)=", b);» printf("%d \n", funcfact(b))»}

Πρότυπα συναρτήσεων (1/3) Το πρότυπο είναι στην ουσία η πρώτη γραμμή του ορισμού της συνάρτησης Ο ορισμός της συνάρτησης γίνεται πριν το main. Όμως συνηθίζεται για να είναι το πρόγραμμα πιο ευανάγνωστο το main να είναι στη αρχή Επειδή για να γίνει κλήση μίας συνάρτησης (δηλαδή για να χρησιμοποιηθεί η συνάρτηση) πρέπει προηγουμένως να έχει δηλωθεί μπορούμε να δηλώσουμε την συνάρτηση πριν το main. Η δήλωση γίνεται μέσω του λεγόμενου πρότυπου της συνάρτησης (function prototype) και επιτρέπει στον compiler να γνωρίζει τα απαραίτητα στοιχεία που αφορούν την συνάρτηση. Το πρότυπο πληροφορεί τον compiler ότι θα χρησιμοποιηθεί μία συνάρτηση, τα στοιχεία της οποίας δίνονται τώρα, όμως θα οριστεί αργότερα. Αυτά τα στοιχεία είναι ο τύπος, το όνομα της συνάρτησης καθώς και ο τύπος και ο αριθμός των παραμέτρων της συνάρτησης.

Πρότυπα συναρτήσεων (2/3) Παράδειγμα int addition (int a, int b);// function prototype» int main (){» int z;»»» return 0;» }

Πρότυπα συναρτήσεων (3/3)» int addition (int a, int b) {» int p;» p=a+b;» return (p);» } Σημείωση: Τα ονόματα των παραμέτρων της συνάρτησης μπορούν να παραληφθούν στο πρότυπο και να γραφεί με τον παρακάτω τρόπο» int addition (int, int ); // function prototype

Παρατηρήσεις στις συναρτήσεις (1/6) Ο ορισμός μίας συνάρτησης έχει την παρακάτω μορφή:» Τύπος ονομα_συνάρτησης(τύπος παράμετρος1,τύπος παράμετρος2, )» {» εντολές» } Ο τύπος της συνάρτησης μπορεί να είναι οποιοσδήποτε τύπος δεδομένων (int, float κλπ) ή ακόμη και δείκτης (pointer). Δεν μπορεί να είναι πίνακας.

Παρατηρήσεις στις συναρτήσεις (2/6) - Εάν η συνάρτηση δεν επιστρέφει τίποτε τότε ο τύπος της είναι void. - Αν ο τύπος παραληφθεί τότε θεωρείται ότι είναι int Παράδειγμα» main(){»»» return 0;» } - Το main είναι η κύρια συνάρτηση του προγράμματος και για το λόγο αυτό υπάρχει και η εντολή return. - Στην περίπτωση που η συνάρτηση δεν επιστρέφει τιμή τότε ο ορισμός γίνεται με την λέξη void και η εντολή return δεν έχει τιμή ή μπορεί και να παραληφθεί

Παρατηρήσεις στις συναρτήσεις (3/6) Οι void συναρτήσεις απλά εκτελούν μία ακολουθία εντολών και δεν επιστρέφουν τιμή. Παράδειγμα» void diplasio (int a){» int dipl;» dipl=2*a;» printf("to diplasio tou %d = %d\n",a,dipl);» return;» }

Παρατηρήσεις στις συναρτήσεις (4/6)» int main (){» int a=40;» diplasio(a);»» return 0;» }

Παρατηρήσεις στις συναρτήσεις (5/6) Το return πρέπει να επιστρέφει μία τιμή με τύπο ίδιο με τον τύπο της συνάρτησης για να αποφεύγονται απρόβλεπτα ή λανθασμένα αποτελέσματα Το όνομα της συνάρτησης είναι ένα αναγνωριστικό και ακολουθεί τους κανόνες σύνταξης αναγνωριστικών. Γενικά η επιλογή του ονόματος πρέπει να γίνεται με τρόπο ώστε να είναι περιγραφικό και σχετικό με την λειτουργία της συνάρτησης. Μία συνάρτηση μπορεί να καλείται περισσότερο από μία φορές

Παρατηρήσεις στις συναρτήσεις (6/6) Μία συνάρτηση όπως και το main μπορεί να έχει περισσότερα από ένα return. Όταν η εκτέλεση της συνάρτησης φτάσει στην εντολή return τότε η συνάρτηση τερματίζεται άμεσα. Το διπλανό παράδειγμα βρίσκει τον μεγαλύτερο από δύο ακέραιους. Υπάρχουν 2 return και η συνάρτηση καλείται 2 φορές με αριθμούς και με μεταβλητές.

Κλήση συνάρτησης που δεν επιστρέφει τιμή (1/2) Στο παρακάτω παράδειγμα γίνεται χρήση συναρτήσεων που δεν επιστρέφει τιμή: η μία έχει παραμέτρους ενώ η άλλη δεν έχει void PrintKalimera (); //protypo sinartisis void PrintKalinikta (int); //protypo sinartisis main ( ){ int num=5; } PrintKalimera ( ); PrintKalinikta (num);

Κλήση συνάρτησης που δεν επιστρέφει τιμή (2/2) void PrintKalimera (){ int i; for (i = 0; i < 3 ; i++) { printf ("!!Kalimera!!\n"); } } void PrintKalinikta (int fnum){ int i; for (i = 0; i < fnum; i++) { printf ("==Kalinikta==\n\n"); } }

Κλήση συνάρτησης χωρίς παραμέτρους (1/2) Εδώ γίνεται χρήση συναρτήσεων χωρίς παραμέτρους: η μία επιστρέφει τιμή ενώ η άλλη είναι τύπου void void Athr (); //protypo sinartisis int Diaf (); //protypo sinartisis main ( ){ int d; Athr(); d=diaf(); printf("h diafora =%d\n", d); return 0;

Κλήση συνάρτησης χωρίς παραμέτρους (2/2) } void Athr () { int i=5,j=10,ath; ath=i+j; printf("to athrisma %d + %d= %d\n",i,j,ath); } int Diaf () { int i=5,j=10,d; d=i-j; return d; }

Παραδείγματα συνάρτησης Εύρεση μεγαλυτέρου (1/4) Να γραφεί πρόγραμμα που να βρίσκει τον μεγαλύτερο από 2 ακέραιους. Η εισαγωγή των αριθμών καθώς και η εύρεση του μεγαλύτερου αριθμού να γίνονται με συναρτήσεις int max2(int,int); //prototype of function int dose1() { //function int a; printf("dose 1 akereo "); scanf("%d",&a); return a; } //=============================================

Παραδείγματα συνάρτησης Εύρεση μεγαλυτέρου (2/4) void minima() { printf("microsystems EPE\n"); printf("to continue press any key\n"); while(!getch()); } system("cls"); printf("synexeia tou programmatos\n");

Παραδείγματα συνάρτησης Εύρεση μεγαλυτέρου (3/4) //============================================= int main(void) { int k,l; minima(); k=dose1(); l=dose1(); printf("o megalyros apo tous dio einai %d\n",max2(k,l)); } return 0;

Παραδείγματα συνάρτησης Εύρεση μεγαλυτέρου (4/4) //============================================= int max2(int x,int y) { if (x>y) return x; else return y; }

Μέγιστος Κοινός Διαιρετής Nα γραφεί πρόγραμμα το οποίο έχει είσοδο 2 ακεραίους και υπολογίζει με την χρήση του αλγόριθμου του Ευκλείδη, τον Μέγιστο Κοινό Διαιρέτη (ΜΚΔ) των δυο ακεραίων αριθμών. O αλγόριθμος να υλοποιείται με την χρήση συνάρτησης ΜΚΔ(a,b) : O μεγαλύτερος ακέραιος που διαιρεί ακριβώς (υπόλοιπο 0) το a και b Παραδείγματα: ΜΚΔ(16,10) = 2 ΜΚΔ(3,12) = 3 ΜΚΔ(6, 24) = 6 ΜΚΔ(8,4) = 4 ΜΚΔ(49, 21) = 7 ΜΚΔ(26,52) = 26

Αλγόριθμος Ευκλείδη Βήματα Ενω το b είναι διάφορο του 0, διαίρεσε το a με το b Σε κάθε βήμα βάλε το b στην θέση του a και το υπόλοιπο a%b στο b. Όταν ο b γίνει 0, τότε ο a είναι ο ΜΚΔ των δύο αρχικών αριθμών ΜΚΔ(30,16) a b a%b 30 % 16 = 14 16 % 14 = 2 14 % 2 = 0 2 % 0 Επομένως ΜΚΔ(30,16)=2

ΜΚΔ με Συνάρτηση (1/2)» int mkd(int,int);» int main( ){» int a, b ;» printf("dose 2 akeraious arithmous");» scanf("%d %d",&a,&b);» printf("mkd (%d, %d)= %d\n", a, b, mkd(a,b));» return 0;» }

ΜΚΔ με Συνάρτηση (2/2)» int mkd(int a, int b){» int ypol;» while (b!= 0) {» ypol = a % b;» a = b; b = ypol;» }» return a;» }

Παράδειγμα Άθροισης Ψηφίων (1/2) Να γίνει συνάρτηση που να δέχεται έναν ακέραιο και να επιστρέφει το άθροισμα των ψηφίων του» #include <stdio.h>» int psum(int a) {» int total=0;» while (a!= 0){» total+= a%10;» a = a/10;» }» return total;» }

Παράδειγμα Άθροισης Ψηφίων (2/2)» int main(){» int a;» printf("dose ena akeraio: ");» scanf("%d",&a);» printf("athroisma ton psifion tou %d= %d\n",a, psum(a));»» return 0;» }

Τέλος Ενότητας