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

Σχετικά έγγραφα
Παίρνοντας Αποφάσεις 1

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Προγραμματισμός Υπολογιστών με C++

Πίνακες (Arrays) Εισαγωγή στη C++

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Το πρόγραμμα θα τυπώνει και τους τρεις πίνακες.

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

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

Μονοδιάστατοι πίνακες

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

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

Προγραμματισμός Υπολογιστών με C++

Προγραμματιστικές Τεχνικές

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2018 ΤΟ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΔΕΚΑΤΡΕΙΣ (13) ΣΕΛΙΔΕΣ.

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

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

Προγραμματισμός Υπολογιστών με C++

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

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραμματισμός Υπολογιστών με C++

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

Αναφορές, είκτες και Αλφαριθμητικά

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

Προγραμματισμός Υπολογιστών με C++

Εισαγωγή στη γλώσσα προγραμματισμού C++

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

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

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

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

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

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

Δομές δεδομένων (Structures) Εισαγωγή στη C++

Εισαγωγή στη γλώσσα προγραμματισμού C++

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

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Διδάσκων: Παναγιώτης Ανδρέου

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Υπερφόρτωση τελεστών (operator(

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

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

Προγραµµατιστικές Τεχνικές

Ερώτημα Α 1. Να γράψετε τις εντολές που πραγματοποιούν τα ακόλουθα:

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

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

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

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

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

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

Προγραµµατιστικές Τεχνικές

ΗΥ-150. Πίνακες (Arrays)

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

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

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

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

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

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

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

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

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

Συναρτήσεις διαχείρισης αλφαριθμητικών

Πληροφορική 2. Αλγόριθμοι

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

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

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

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

Υπερφόρτωση τελεστών

Προγραμματισμός Αναδρομή

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

Προγραμματισμός Αναδρομή

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

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

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

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

4.1 Αναζήτηση. Εισαγωγή στη C++

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

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

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

8. ΠΙΝΑΚΕΣ (ARRAYS) (Πρόχειρο σχέδιο - Μαθήµατος 5) //26. Array.cpp #include <iostream> using namespace std;

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

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Transcript:

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

Δημιουργία συναρτήσεων Για κάθε συνάρτηση που θα δημιουργούμε θα πρέπει να ορίζουμε τα εξής: Τύπος επιστρεφόμενης τιμής Όνομα συνάρτησης Παράμετροι π.χ. int athrisma(int a, int b) 2

Δομή Προγράμματος με χρήση συναρτήσεων #include<iostream> using namespace std; int athrisma(int a,int b); int main(){ int x,y,sum; cin>>x>>y; sum=athrisma(x,y); cout<<sum<<endl; return 0; int athrisma(int a,int b){ int result; result=a+b; return result; Πρότυπο συνάρτησης. Δηλώνουμε τις συναρτήσεις που θα χρησιμοποιήσουμε Κλήση συνάρτησης Ορισμός συνάρτησης 3

Το πρότυπο της συνάρτησης Πληροφορεί τον compiler ότι υπάρχει μια συνάρτηση που θα οριστεί αργότερα. Μπορεί να παραληφθεί Όμως μας επιτρέπει την χρήση μιας συνάρτησης πριν ακόμα αυτή οριστεί. 4

#include<iostream> using namespace std; Εναλλακτικά int athrisma(int a,int b){ int result; result=a+b; return result; int main(){ int x,y,sum; cin>>x>>y; sum=athrisma(x,y); cout<<sum<<endl; return 0; 5

Κλήση συνάρτησης Μόλις το κυρίως πρόγραμμα εντοπίσει μια συνάρτηση σταματά και περνά τον έλεγχο του προγράμματος στη συνάρτηση. Η συνάρτηση μέσα στο κυρίως πρόγραμμα πρέπει να έχει το ίδιο όνομα, αριθμό και τύπο παραμέτρων. 6

Ορισμός Συνάρτησης Γράφουμε τις εντολές που θέλουμε να εκτελούνται όταν καλέσουμε τη συνάρτηση. Με την εντολή return καθορίζει την τιμή που θα επιστρέφει η συνάρτηση. Σε περίπτωση που η συνάρτηση δεν επιστρέφει κάτι (τύπος επιστρεφόμενης τιμής void) τότε η εντολή return παραλείπεται. 7

Παράδειγμα 1 Να δημιουργήσετε το πρόγραμμα που λύνει την εξίσωση x=y!+z! Σημείωση: Παραγοντικό (!) ενός αριθμού Ν ορίζεται το γινόμενο 1*2*3* (Ν-1)*Ν π.χ. 5!=1*2*3*4*5=120 8

Παράδειγμα 1 #include<iostream> using namespace std; int par(int N); int main(){ int x,y,z; cin>>y>>z; x=par(y)+par(z); cout<<x<<endl; return 0; int par(int N){ int i,p=1; for(i=1;i<=n;i++){ p*=i; return p; 9

Παράδειγμα 2 Να δημιουργήσετε το πρόγραμμα που δέχεται έναν ακέραιο αριθμό και χρησιμοποιώντας τη συνάρτηση prwtos ελέγχει αν ο αριθμός είναι πρώτος ή όχι. Πρότυπο συνάρτησης prwtos: bool prwtos(int n); 10

Παράδειγμα 2 #include <iostream> #include<cmath> using namespace std; bool prwtos(int n); int main(){ int num; cin>>num; if (prwtos(num)) cout<<"prime"<<endl; else cout<<"not Prime"<<endl; return 0; bool prwtos(int n){ int i; bool result = true; if(n==1) return false; for(i=2;i<=sqrt(n);i++) if (n%i==0) result=false; return result; 11

Παράδειγμα 3 Να δημιουργήσετε το πρόγραμμα που δέχεται έναν ακέραιο αριθμό Ν και ένα χαρακτήρα C και χρησιμοποιεί τη συνάρτηση triangle για να τυπώσει ένα ορθογώνιο τρίγωνο που θα έχει N γραμμές και θα σχηματίζεται από το χαρακτήρα C. π.χ. 3 @ @ @@ @@@ 12

Παράδειγμα 3 #include <iostream> using namespace std; void triangle(int n,char c); int main(){ int n; char c; cin>>n>>c; triangle(n,c); return 0; void triangle(int n,char c){ int i,j; for(i=1;i<=n;i++){ for(j=1;j<=i;j++) cout<<c; cout<<endl; 13

Κλήση συνάρτησης με αναφορά Οι συναρτήσεις με τη χρήση της εντολής return μπορούν να επιστρέψουν μόνο μία τιμή. Σε περίπτωση που θέλουμε η συνάρτηση μας να «επηρεάσει» περισσότερες από μία μεταβλητές χρησιμοποιούμε την κλήση με αναφορά. Περνάμε στη συνάρτηση τη διεύθυνση της μεταβλητής και όχι τη τιμή της. 14

Παράδειγμα #include<iostream> using namespace std; void byvalue(int y){ y = y + 1; cout << y << endl; void byreference(int& y){ y = y + 1; cout << y << endl; int main() { int x = 5; byvalue(x); cout <<"x="<<x<<endl; byreference(x); cout <<"x="<<x<<endl; return 0; output 6 x=5 6 x=6 15

Παράδειγμα 4 Να δημιουργήσετε το πρόγραμμα που χρησιμοποιεί τη συνάρτηση Calculate για να υπολογίσει το εμβαδόν και την περίμετρο ενός ορθογωνίου τριγώνου. 16

Παράδειγμα 4 #include<iostream> #include<cmath> using namespace std; void calculate(float a,float b,float& e,float& p); int main(){ float a,b,e,p; cin>>a>>b; calculate(a,b,e,p); cout<<"e="<<e<<endl; cout<<"p="<<p<<endl; return 0; void calculate(float a,float b,float& e,float& p){ float c; c=sqrt(a*a+b*b); e=a*b/2; p=a+b+c; 17

Παράδειγμα 5 Να δημιουργήσετε το πρόγραμμα που δέχεται 2 ακέραιους αριθμούς και τους αποθηκεύει στις μεταβλητές Α, Β. Στη συνέχεια το πρόγραμμα χρησιμοποιεί τη συνάρτηση swap για να ανταλλάξουν οι δύο μεταβλητές τις τιμές τους. 18

#include<iostream> using namespace std; void swap(int& A,int& B); int main(){ int A,B; cin>>a>>b; swap(a,b); cout<<a<<" "<<B<<endl; return 0; void swap(int& A,int& B){ int temp; temp=a; A=B; B=temp; Παράδειγμα 5 19

1d-Πίνακες και Συναρτήσεις Ένας πίνακας αποτελείται από περισσότερες από μία τιμές οπότε για να περάσουμε έναν πίνακα σε μια συνάρτηση πρέπει να γίνει κλήση της συνάρτησης με αναφορά (δηλαδή να περάσουμε τη διεύθυνση του πίνακα). Παράδειγμα Ορισμός στο πρότυπο void FillArray (int array[ ]); Στην κλήση FillArray (array); 20

Παράδειγμα 6 Να γράψετε το πρόγραμμα που χρησιμοποιεί τις συναρτήσεις fill και print για να γεμίσουν και να τυπώσουν έναν μονοδιάστατο πίνακα μεγέθους 10 θέσεων. 21

Παράδειγμα 6 #include<iostream> #define N 10 using namespace std; void fill(int a[]); void print(int a[]); int main(){ int A[N]; fill(a); print(a); return 0; void fill(int a[]){ int i; for(i=0;i<n;i++){ cin>>a[i]; void print(int a[]){ int i; for(i=0;i<n;i++){ cout<<a[i]<<endl; 22

Παράδειγμα 7 Να γράψετε το πρόγραμμα που χρησιμοποιεί : Τη συνάρτηση read για να διαβάσει τους βαθμούς και τα ονόματα 25 μαθητών. τη συνάρτηση average για να υπολογίσει το μέσο όρο των βαθμών. τη συνάρτηση maxname για να βρει το όνομα του μαθητή με τον ψηλότερο βαθμό. Σημείωση: Θεωρείστε ότι δεν υπάρχει ισοβαθμία. 23

#include<iostream> #include<string> #define N 25 using namespace std; void read(int v[],string names[]); float average(int v[]); string maxname(int v[],string names[]); int main(){ int V[N]; string Names[N]; read(v,names); cout<<"avg="<<average(v)<<endl; cout<<"maxname="<<maxname(v,names)< <endl; return 0; void read(int v[],string names[]){ int i; Παράδειγμα 7 float average(int v[]){ int i,sum=0; for(i=0;i<n;i++){ sum+=v[i]; return float(sum)/n; string maxname(int v[],string names[]){ int max=v[0],i; string mn=names[0]; for(i=1;i<n;i++){ if(v[i]>max){ max=v[i]; mn=names[i]; return mn; for(i=0;i<n;i++){ cin>>v[i]>>names[i]; 24

2d-Πίνακες και Συναρτήσεις Όπως και στους 1d πίνακες, περνάμε στη συνάρτηση τη διεύθυνση του πίνακα. Παράδειγμα void FillArray(int array[][max numbers of columns]) Η τιμή να ορίζεται πάντα σαν σταθερά: int N; const int M = 5; cin >> N; void fillarray1 (int arr1[n]); void fillarray2 (int arr2[][n]); void printarray (int arr2[][m]); // σφάλμα // σφάλμα 25

Παράδειγμα 8 Να γράψετε το πρόγραμμα που δέχεται 9 αριθμούς και τους αποθηκεύει σε έναν πίνακα 3x3. Στη συνέχεια χρησιμοποιεί τη συνάρτηση sum για να υπολογίσει το άθροισμα των στοιχείων του πίνακα. 26

Παράδειγμα 8 #include<iostream> #define N 3 using namespace std; int sum(int A[][N]); int main(){ int i,j; int a[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>a[i][j]; cout<<sum(a); int sum(int A[][N]){ int i,j,s=0; for(i=0;i<n;i++) for(j=0;j<n;j++) s+=a[i][j]; return s; 27