ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ #include <iostream.h> int compare_numbers(int num1, int num2)

Σχετικά έγγραφα
ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

Αντικειμενοστραφής Προγραμματισμός ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ

Δομημένος Προγραμματισμός Θεωρία

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

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

Τι είναι κλάση Κλάση

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

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

Αντικειμενοστραφής Προγραμματισμός Θεωρία Παραδείγματα - Προγράμματα

Σημειώσεις για πρόοδο στο εργαστήριο

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

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

Εισαγωγή στον Προγραμματισμό (με. τη C)

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

"ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

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

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

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE

242 -ΕισαγωγήστουςΗ/Υ

Εργαστήριο 3 Εντολή for while, do while

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Δομές Επανάληψης. Εισαγωγή στη C++

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

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

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

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

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

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

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

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

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

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

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

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 5 Εντολές Επανάληψης for while do while. Λαμπρινίδης Γεώργιος

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

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

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

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

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

Εργαστηριακή Άσκηση 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ

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

8. Συνθήκες ελέγχου, λογικοί τελεστές

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

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

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

Συναρτήσεις (Functions) Εισαγωγή στη C++

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

Εντολές ελέγχου ροής if, for, while, do-while

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

EΒ ΟΜΑ Α 4 Η. οµές επανάληψης while και do while

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόµενη λύση

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

Αναδροµή (Recursion) ύο παρεξηγήσεις. Σκέψου Αναδροµικά. Τρίγωνο Sierpinski Μη αναδροµικός ορισµός;

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

Διάλεξη 5η: Εντολές Επανάληψης

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

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

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

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

Transcript:

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ int compare_numbers(int num1, int num2);.... int compare_numbers(int num1, int num2) if (num1>mum2) return (num1); ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΧΩΡΙΣ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ void compare_numbers(int num1, int num2);.... void compare_numbers(int num1, int num2) if (num1>mum2) printf( max=%d\n, num1); else printf( max=%d\n, num1); σελ. 1

ΤΟΠΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ Το παρακάτω πρόγραμμα δείχνει την συμπεριφορά μεταβλητών. #include<stdio.h> int tetragono(int a); void main() int x, y; x=3; y=tetragono(x); printf("to y ths main einai=%d\n", y); printf("to tetragono toy %d einai %d\n", x, y); int tetragono(int a) int y=10; printf("to y ths tetragono einai=%d\n", y); return(a*a); ΕΞΟΔΟΣ To y ths tetragono einai 10 To y ths main einai 9 To tetragono toy 3 einai 9 Press any key to continue ΠΙΝΑΚΑΣ ΩΣ ΠΑΡΑΜΕΤΡΟΣ ΣΥΝΑΡΤΗΣΗΣ #include <stdio.h> void func_arr(int Pin[]); void main() int A[10],i; for(i=0;i<=9;i++) A[i]=i; func_arr(a); void func_arr(int Pin[]) int k; for(k=0;k<=9;k++) printf("%d\n",pin[k]); σελ. 2

Σε αυτό το πρόγραμμα αρχικοποιούμε τον πίνακα Α[10] με τις τιμές που παίρνει ο μετρητής του βρόχου και μετά καλούμε την συνάρτηση func_arr με όρισμα το όνομα του πίνακα Α. η συνάρτηση με την σειρά της τυπώνει τι τιμές του πίνακα Pin[ ] τις οποίες έχει δεχθεί από τον πίνακα Α[ ]. ΠΟΛΛΕΣ ΕΝΤΟΛΕΣ ΕΠΙΣΤΡΟΦΗΣ Το παρακάτω πρόγραμμα διπλασιάζει ένα ποσό που του δίνει ο χρήστης μεταξύ 0 και 1000. Κατόπιν ελέγχει εάν το ποσό που εισήχθη είναι μεγαλύτερο από 1000 βγάζει μήνυμα λάθους. int diplasio(int posogiadiplasiasmo); int apotelesma=0; int posoeisagomeno; cout<<"dose poso metaxy 0 kai 10000 gia na to diplasiaso: "; cin>>posoeisagomeno; cout<<"\nprin kaleso thn diplasio... "; cout<<"\neisagomeno poso: "<<posoeisagomeno<<" Diplasio: "<<apotelesma<<"\n"; apotelesma=diplasio(posoeisagomeno); if (apotelesma==-1) cout<<"\nepistrofh apo thn diplasio...\n"; cout<<"to poso pou edoses einai megalytero apo 10000\n\n"; else cout<< "\nepistrofh apo thn diplasio..."; cout<< "\neisagomeno poso: "<<posoeisagomeno<< "Diplasio: "<<apotelesma<< "\n\n"; int diplasio(int pragmatiko) if (pragmatiko<=10000) return pragmatiko * 2; σελ. 3

else return -1; ΠΕΡΑΣΜΑ ΟΡΙΣΜΑΤΩΝ ΜΕ ΤΙΜΗ (ΠΑΡΑΜΕΤΡΟΙ ΣΑΝ ΤΟΠΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ) Το παρακάτω πρόγραμμα κάνει αλλαγή θέσης 2 τιμών τοπικών μεταβλητών χωρίς να επηρεάζονται οι αρχικές μεταβλητές. void swap(int x, int y); int a,b; cout<<"dose a: "<<endl; cin>>a; cout<<"dose b: "<<endl; cin>>b; cout<<"main. Prin to swap, a: "<<a<<" b: "<<b<<"\n"; swap(a,b); cout<<"main. Meta to swap, a: "<<a<<" b: "<<b<<"\n"; void swap(int x, int y) int temp; cout<<"swap. Prin to swap, x: "<<x<<" y: "<<y<<"\n"; temp=x; x=y; y=temp; cout<<"swap. Meta to swap, x: "<<x<<" y: "<<y<<"\n"; Σημ. Σε αυτό το πρόγραμμα ένα αντίγραφο των τιμών των μεταβλητών a,b περνούν στις x,y. Στην έξοδο έχουμε την αντιστροφή των μεταβλητών x,y χωρίς να επηρεαστούν οι τιμές των μεταβλητών a,b. σελ. 4

ΣΥΝΑΡΤΗΣΗ ΜΕ ΑΝΑΔΡΟΜΗ Το παρακάτω πρόγραμμα υπολογίζει το παραγοντικό ενός αριθμού λαμβάνοντας υπόψη ότι αν: n=0 τότε n!=1 και αν n>0 τότε n!=n*(n-1) long paragontiko(long n); //dhlosh prototypou long arithmos; cout<<"dose enan arithmo: "<<endl; cin>>arithmos; // exodus me klhsh ths synarthshs cout<<arithmos<<"!=" <<paragontiko(arithmos)<<endl; //telos ths main long paragontiko(long n) // orismos synarthshs if (n>1) return (n*paragontiko(n-1)); else return 1; //telos synarthshs ΛΕΙΤΟΥΡΓΙΑ Πχ. Εάν το n=5 τότε η συνάρτηση καλεί τον εαυτό της με όρισμα n-1 μέχρι το παραγοντικό του 0 όπου και σταματά λόγω της συνθήκης του if όπου θα επιστρέψει 1 δηλαδή: Επιστρέφει 120 Επιστρέφει 24 5 * paragontiko(4) 4 * paragontiko(3) 3 * paragontiko(2) 2 * paragontiko(1) 1 * paragontiko(0) Επιστρέφει 6 Επιστρέφει 2 Επιστρέφει 1 σελ. 5

ΣΥΝΑΡΤΗΣΗ ΜΕ ΕΠΑΝΑΛΗΨΗ Το παρακάτω πρόγραμμα πρόγραμμα υπολογίζει την δύναμη ενός αριθμού. Ο αριθμός και η δύναμη θα εισάγεται από το χρήστη. Λάβετε υπόψη ότι: x n = x*x*x*..*x, n φορές. int power(int x, int n); // dhlosh synarthshs int a,b,dynamh; cout<<"dose ton arithmo: "<<endl; cin>>a; cout<<"dose thn dynamh: "<<endl; cin>>b; dynamh=power(a,b); // klhsh ths synarthshs cout<<"to "<<a<<"sthn"<<b<<" mas kanei: <<dynamh<<endl; //telos ths main int power(int x, int n) // orismos synarthshs int i,p; p = 1; for (i=1; i<=n; i++) p = p*x; return p; //telos synarthshs σελ. 6

ΠΡΟΚΑΘΟΡΙΣΜΕΝΕΣ ΤΙΜΕΣ ΠΑΡΑΜΕΤΡΩΝ Το παρακάτω πρόγραμμα υπολογίζει τον όγκο ενός κύβου. Χρησιμοποιούνται προκαθορισμένες τιμές. int ogkoskyvou(int mhkos, int platos = 30, int ypsos = 2); int mhkos = 50; int platos = 20; int ypsos = 5; int ogkos; ogkos = ogkoskyvou(mhkos, platos, ypsos); cout <<"1h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; ogkos = ogkoskyvou(mhkos, platos); cout <<"2h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; ogkos = ogkoskyvou(mhkos); cout <<"3h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; ogkoskyvou(int mhkos, int platos, int ypsos) return (mhkos * platos * ypsos); Σημ. Εδώ το πρόγραμμα θα χρησιμοποιήσει (καλέσει) την συνάρτηση 3 φορές με διαφορετικές κάθε φορά παραμέτρους κατά την κλήση. Την πρώτη φορά θα υπολογιστεί ο όγκος χρησιμοποιώντας τις τιμές των παραμέτρων που έχουν οριστεί μέσα στην main. Την δεύτερη φορά χρησιμοποιώντας τις τιμές δύο εκ των παραμέτρων που έχουν οριστεί μέσα στην main και την τελευταία στη σειρά στο πρωτότυπο και τη Τρίτη φορά χρησιμοποιώντας την τιμή της μιας παραμέτρου που έχει οριστεί μέσα στην main και την 2 η και 3 η κατά σειρά στο πρωτότυπο. σελ. 7

ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΗΣ ΑΠΟ ΣΥΝΑΡΤΗΣΗ Το παρακάτω πρόγραμμα υπολογίζει εάν ο αριθμός που εισάγει ο χρήστης είναι άρτιος ή περιττός. Εάν δοθεί σαν επιλογή ο αριθμός 0 τότε το πρόγραμμα να τερματίζει. void peritos(int a); void artios(int a); int i; do cout<<"dose enan arithmo (0 gia EXODO): "; cin>>i; peritos(i); while (i!=0); void peritos(int a) if ((a%2)!=0) cout<<"o arithmos pou edoses einai PERITOS.\n"; else artios(a); void artios(int a) if ((a%2)==0) cout<<"o arithmos pou edoses einai ARTIOS.\n"; else peritos(a); Σημ. Εδώ το πρόγραμμα θα βρει εάν ο αριθμός που εισήχθη είναι άρτιος ή περιττός με την χρήση κλήσης συνάρτησης από συνάρτηση. Η πρώτη συνάρτηση καλείται μέσα στην main. Εκεί ελέγχεται εάν ο αριθμός που εισήχθη είναι το 0 κάτι που προκαλεί το τερματισμό του προγράμματος. Στην πρώτη συνάρτηση (peritos) ελέγχεται εάν το υπόλοιπο της διαίρεσης του αριθμού δεν είναι 0 τότε ο αριθμός είναι περιττός αλλιώς καλείται η δεύτερη συνάρτηση (artios) που ελέγχει με την σειρά της εάν ο αριθμός είναι άρτιος. σελ. 8

INLINE ΣΥΝΑΡΤΗΣΕΙΣ Το παρακάτω πρόγραμμα διπλασιάζει 3 φορές διαδοχικά μια τιμή εισόδου με την χρήση INLINE συνάρτησης. inline int Diplasio(int); int timh; cout<<"dose MIA TIMH: "; cin>>timh; cout<<"\ndiadoxikos DIPLASIASMOS TIMHS\n"; cout<<"\narxikh TIMH: "<<timh<<endl; timh=diplasio(timh); cout<<"timh1 (ARXIKH TIMH x 2): "<<timh<<endl; timh=diplasio(timh); cout<<"timh2 (TIMH1 x 2): "<<timh<<endl; timh=diplasio(timh); cout<<"timh3 (TIMH2 x 2): "<<timh<<endl; cout<<endl; int Diplasio(int timh) return 2*timh; Σημ. Εδώ έχουμε ορίσει μία inline συνάρτηση (Diplasio) που την καλούμε μέσα στην main τρεις φορές. Ουσιαστικά ο compiler αντιγράφει τον κώδικα της συνάρτησης σε κάθε σημείο της main που καλείται η συνάρτηση. Με αυτό τον τρόπο δεν έχουμε τρεις μεταπηδήσεις από την main στην συνάρτηση και έτσι κερδίζουμε χρόνο κατά την εκτέλεση του προγράμματος. Χρησιμοποιούμε inline συναρτήσεις όταν η συνάρτηση έχει μία έως δύο εντολές και χρειάζεται να την καλέσουμε μέσα στην main πολλές φορές. σελ. 9

ΥΠΕΡΦΟΡΤΩΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Το παρακάτω πρόγραμμα χρησιμοποιεί μία συνάρτηση με υπερφόρτωση ώστε να κάνει τα εξής: I. Να τυπώνει στην οθόνη 50 μηδενικά (0), II. Να τυπώνει στην οθόνη 50 χαρακτήρες που θα καθορίζονται από την κλήση της συνάρτησης και III. Να τυπώνει στην οθόνη χαρακτήρες που ο χαρακτήρας αλλά και ο αριθμός των χαρακτήρων να καθορίζονται στην κλήση της συνάρτησης. void printfunc(); void printfunc(char ch); void printfunc(char ch, int n); void main() printfunc(); printfunc('/'); printfunc('%',40); void printfunc() int i; for (i=0; i<50; i++) cout << "0"; cout << endl; void printfunc(char ch) int i; for (i=0; i<50; i++) cout << ch; cout << endl; void printfunc(char ch, int n) int i; for (i=0; i<n; i++) cout << ch; cout << endl; σελ. 10

ΥΠΕΡΦΟΡΤΩΣΗ ΣΥΝΑΡΤΗΣΕΩΝ (ΜΕ ΠΡΟΕΠΙΛΕΓΜΕΝΑ ΟΡΙΣΜΑΤΑ) Το παρακάτω πρόγραμμα χρησιμοποιεί μία συνάρτηση με υπερφόρτωση και προεπιλεγμένα ορίσματα - και 50 void printfunc(char ch='-', int n=50); void main() printfunc(); printfunc('/'); printfunc('%',40); void printfunc(char ch, int n) int i; for (i=0; i<n; i++) cout << ch; cout << endl; Σημ. Εδώ το πρόγραμμα θα χρησιμοποιήσει (καλέσει) την συνάρτηση 3 φορές. Την πρώτη φορά το loop που βρίσκεται μέσα στον ορισμό της συνάρτησης θα χρησιμοποιήσει και τα δύο προεπιλεγμένα ορίσματα που βρίσκονται μέσα στο πρωτότυπο. Την δεύτερη φορά θα χρησιμοποιήσει το όρισμα της κλήσης συνάρτησης και το δεξί του πρωτοτύπου και την τρίτη φορά θα χρησιμοποιήσει τα ορίσματα που βρίσκονται στη κλήση της συνάρτησης. σελ. 11