Συναρτήσεις. Σημερινό μάθημα

Σχετικά έγγραφα
Συναρτήσεις & Κλάσεις

Συναρτήσεις ΙΙ. Σημερινό μάθημα

Pointers. Σημερινό Μάθημα! Χρήση pointer Τελεστής * Τελεστής & Γενικοί δείκτες Ανάκληση Δέσμευση μνήμης new / delete Pointer σε αντικείμενο 2

Κληρονομικότητα. Σήμερα! Κλάση Βάσης Παράγωγη κλάση Απλή κληρονομικότητα Protected δεδομένα Constructors & Destructors overloading

Classes. Σημερινό Μάθημα. Constructor και destructor Συναρτήσεις μέλη const Inline συναρτήσεις Δηλώσεις κλάσεων Σύνθετες κλάσεις

Αναφορές (References)

Κληρονομικότητα. Σήμερα!

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

Ειδικά Θέματα Ι. Σήμερα!

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Πολυμορφισμός. Σήμερα!

Πολυμορφισμός. Σήμερα! Virtual Κληρονομικότητα Mixin classes Αφηρημένοι τύποι δεδομένων Pure Virtual συναρτήσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Εαρινό Εξάμηνο

ΣΤΟ ΦΑΡΜΑΚΕΙΟ. Με την πιστοποίηση του έχει πρόσβαση στο περιβάλλον του φαρμακείου που παρέχει η εφαρμογή.

Δ Ι Α Κ Ρ Ι Τ Α Μ Α Θ Η Μ Α Τ Ι Κ Α. 1η σειρά ασκήσεων

Ας υποθέσουμε ότι ο παίκτης Ι διαλέγει πρώτος την τυχαιοποιημένη στρατηγική (x 1, x 2 ), x 1, x2 0,

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Αναγνώριση Προτύπων. Σήμερα! Λόγος Πιθανοφάνειας Πιθανότητα Λάθους Κόστος Ρίσκο Bayes Ελάχιστη πιθανότητα λάθους για πολλές κλάσεις

Οι γέφυρες του ποταμού... Pregel (Konigsberg)

Εξαναγκασμένες ταλαντώσεις, Ιδιοτιμές με πολλαπλότητα, Εκθετικά πινάκων. 9 Απριλίου 2013, Βόλος

Εισαγωγικά. 1.1 Η σ-αλγεβρα ως πληροφορία

ΣΤΟ ΙΑΤΡΕΙΟ. Με την πιστοποίηση του αποκτά πρόσβαση στο περιβάλλον του ιατρού που παρέχει η εφαρμογή.

Αποδεικτικές Διαδικασίες και Μαθηματική Επαγωγή.

21/11/2005 Διακριτά Μαθηματικά. Γραφήματα ΒΑΣΙΚΗ ΟΡΟΛΟΓΙΑ : ΜΟΝΟΠΑΤΙΑ ΚΑΙ ΚΥΚΛΟΙ Δ Ι. Γεώργιος Βούρος Πανεπιστήμιο Αιγαίου

Ειδικά Θέματα. Σήμερα. Ισότητα Αντικειμένων Friend classes Operator overloading

Ευρωπαϊκά παράγωγα Ευρωπαϊκά δικαιώματα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Πρώτη Γραπτή Εργασία. Εισαγωγή στους υπολογιστές Μαθηματικά

ιάσταση του Krull Α.Π.Θ. Θεσσαλονίκη Χ. Χαραλαμπους (ΑΠΘ) ιάσταση του Krull Ιανουάριος, / 27

Ταξινόμηση των μοντέλων διασποράς ατμοσφαιρικών ρύπων βασισμένη σε μαθηματικά κριτήρια.

Η ανισότητα α β α±β α + β με α, β C και η χρήση της στην εύρεση ακροτάτων.

Επίλυση ειδικών μορφών ΣΔΕ

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

{ i f i == 0 and p > 0

Διάρκεια: 2 ώρες 17/9/2009 ΘΕΜΑΤΑ 1) (2 μονάδες) Δεδομένης της περιγραφής που ακολουθεί δώστε το σχεδιασμό κλάσεων του συστήματος:

Αλγόριθμοι & Βελτιστοποίηση

Φόρμα Σχεδιασμού Διάλεξης (ημ/α: 17/03/08, έκδοση: 1.0)

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

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

Εφαρμογές στην κίνηση Brown

5.1 Μετρήσιμες συναρτήσεις

Γραμμική Ανεξαρτησία. Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών και ικτύων Πανεπιστήμιο Θεσσαλίας. 17 Μαρτίου 2013, Βόλος

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

Αναγνώριση Προτύπων. Σημερινό Μάθημα

ΜΑΘΗΜΑ: ΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ

Οντοκεντρικός Προγραμματισμός

Επιχειρησιακή Ερευνα Ι

Ο Ισχυρός Νόμος των Μεγάλων Αριθμών

Μονάδες α. Να γράψετε στο τετράδιό σας τον παρακάτω πίνακα σωστά συµπληρωµένο.

Α. Ρυθμίσεις κύριων προγραμμάτων ηλεκτρονικής αλληλογραφίας (POP3) (Αντίστοιχες ρυθμίσεις εφαρμόζονται και σε άλλα αντίστοιχα προγράμματα)

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

ΘΕΜΑ: Aποτελεσματικότητα της νομισματικής και δημοσιονομικής πολιτικής σε μια ανοικτή οικονομία

Χαρτοφυλάκια και arbitrage

Εστω X σύνολο και A μια σ-άλγεβρα στο X. Ονομάζουμε το ζεύγος (X, A) μετρήσιμο χώρο.

Παντού σε αυτό το κεφάλαιο, αν δεν αναφέρεται κάτι διαφορετικό, δουλεύουμε σε ένα χώρο πιθανότητας (Ω, F, P) και η G F είναι μια σ-άλγεβρα.

ΜΑΘΗΜΑ: ΕΜΠΟΡΙΚΟ ΔΙΚΑΙΟ

Projects για το εργαστήριο. των Βάσεων Δεδομένων

Δήμος Σωτήριος Υ.Δ. Εργαστήριο Λογικής & Επιστήμης Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Σ.Η.Μ.Μ.Υ. Ε.Μ.Π.

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 20 ΙΟΥΝΙΟΥ 2000 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗΣ : ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5)

17 Μαρτίου 2013, Βόλος

Ψηφιακή Εικόνα. Σημερινό μάθημα!

Αριθμητικοί αλγόριθμοι

ΜΙΚΡΟΟΙΚΟΝΟΜΙΚΗ Η ΚΑΤΑΝΑΛΩΤΙΚΗ ΑΠΟΦΑΣΗ. Άσκηση με θέμα τη μεγιστοποίηση της χρησιμότητας του καταναλωτή

Γλώσσες Περιγραφής Υλικού Ι

Προτεινόμενα θέματα στο μάθημα. Αρχές Οικονομικής Θεωρίας ΟΜΑΔΑ Α. Στις προτάσεις από Α.1. μέχρι και Α10 να γράψετε στο τετράδιό σας τον αριθμό της

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

Έννοια. Η αποδοχή της κληρονομίας αποτελεί δικαίωμα του κληρονόμου, άρα δεν

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ.

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Στοχαστικές διαφορικές εξισώσεις

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

Παραβολή ψ=αχ 2 +βχ+γ, α 0. Η παραβολή ψ = αχ 2. Γενικά : Κάθε συνάρτηση της μορφής ψ=αχ 2 + βχ +γ, α 0 λέγεται τετραγωνική συνάρτηση.

Ημέρα 3 η. (α) Aπό την εργασιακή διαδικασία στη διαδικασία παραγωγής (β) Αξία του προϊόντος και αξία της εργασιακής δύναμης

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

ΕΤΚ 2013: Τα Βασικά για την Python

ΣΥΝΟΛΑ (προσέξτε τα κοινά χαρακτηριστικά των παρακάτω προτάσεων) Οι άνθρωποι που σπουδάζουν ΤΠ&ΕΣ και βρίσκονται στην αίθουσα

Τρίτη, 05 Ιουνίου 2001 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Σκιαγράφηση της διάλεξης. Γλώσσες Περιγραφής Υλικού Ι. Μηχανές Πεπερασμένων Καταστάσεων: Εισαγωγή και.

ΣΧΟΛΙΚΟ ΕΤΟΣ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ A ΛΥΚΕΙΟΥ. Ονοματεπώνυμο Τμήμα

Το κράτος είναι φτιαγμένο για τον άνθρωπο και όχι ο άνθρωπος για το κράτος. A. Einstein Πηγή:

Η Πληροφορική στο Δημοτικό Διδακτικές Προσεγγίσεις Αδάμ Κ. Αγγελής Παιδαγωγικό Ινστιτούτο

ΘΕΜΑ 1ο Α. α) Δίνεται η συνάρτηση F(x)=f(x)+g(x). Αν οι συναρτήσεις f, g είναι παραγωγίσιμες, να αποδείξετε ότι: F (x)=f (x)+g (x).

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

Μεταγλωττιστές ΙΙ. Καταμερισμός καταχωρητών. Νικόλαος Καββαδίας Μεταγλωττιστές ΙΙ

Σκιαγράφηση της διάλεξης

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

Σκιαγράφηση της διάλεξης. Μηχανές Πεπερασμένων Καταστάσεων: Εισαγωγή και.

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

ΜΑΘΗΜΑ: ΠΟΛΙΤΙΚΗ ΟΙΚΟΝΟΜΙΑ-ΔΗΜΟΣΙΑ ΟΙΚΟΝΟΜΙΚΗ

Η εξίσωση Black-Scholes

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


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

Συντάκτης: Παναγιώτης Βεργούρος, Οικονομολόγος Συγγραφέας βιβλίων, Μικρο μακροοικονομίας διαγωνισμών ΑΣΕΠ

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

ΘΕΜΑ: Διαφορές εσωτερικού εξωτερικού δανεισμού. Η διαχρονική κατανομή του βάρους από το δημόσιο δανεισμό.

Χαρακτηριστικές συναρτήσεις

ΚΛΑΔΟΣ: ΠΕ11 ΦΥΣΙΚΗΣ ΑΓΩΓΗΣ

Transcript:

Συναρτήσεις Σημερινό μάθημα C++ Συναρτήσεις Δήλωση συνάρτησης Σύνταξη συνάρτησης Πρότυπο συνάρτησης & συνάρτηση Αλληλο καλούμενες συναρτήσεις συναρτήσεις μαθηματικών Παράμετροι συναρτήσεων Τοπικές μεταβλητές Block μεταβλητές Σφαιρικές μεταβλητές 1

C++ Συναρτήσεις Στον ΑΠ οι συναρτήσεις παραμένουν κεντρικό στοιχείο του προγράμματος. Η συνάρτηση είναι υποπρόγραμμα που επιδρά σε δεδομένα και μπορεί να επιστρέψει μια τιμή. Όλες οι συναρτήσεις στη C++ έχουν τύπο επιστροφής Όταν δεν χρειάζεται να επιστρέψει τίποτα μια συνάρτηση παίρνει τον τύπο void. Επιπλέον δέχονται παραμέτρους για να δουλέψουν πάνω σε αυτές. Κάθε παράμετρος έχει επίσης τύπο. C++ Συναρτήσεις 2

C++ Συναρτήσεις Για να χρησιμοποιήσουμε μία συνάρτηση στο πρόγραμμα μας πρέπει πρώτα να τη δηλώσουμε και μετά να την ορίσουμε. Η δήλωση λέει στον compiler το όνομα της συνάρτησης, τι παραμέτρους παίρνει ως είσοδο. Ο ορισμός λέει στον compiler πως λειτουργεί μια συνάρτηση. Μία συνάρτηση δεν μπορεί να κληθεί από μία άλλη συνάρτηση αν δεν έχει πρώτα δηλωθεί. Δήλωση συνάρτησης Υπάρχουν τρεις τρόποι να δηλώσουμε μία συνάρτηση: 1. Να γράψουμε το πρωτότυπο της συνάρτησης σε ένα αρχείο και να δηλώσουμε με #include το αρχείο στο αρχείο του κυρίως προγράμματος. 2. Να γράψουμε το πρωτότυπο της συνάρτησης στο αρχείο του προγράμματος πριν από τη χρήση της. 3. Να ορίσουμε τη συνάρτηση πριν από την κλήση της και έτσι δηλώνεται αυτόματα. 3

Σύνταξη συνάρτησης Πρέπει να αποφασίσουμε: Τύπο επιστροφής Όνομα συνάρτησης Παράμετροι (τύπο & πλήθος) Να γράψουμε τον κώδικα του κυρίου σώματος Πρότυπο συνάρτησης & συνάρτηση int add2ints(int a, int b); int add2ints(int a, int b) { return(a+b); 4

Πρωτότυπο συνάρτησης & συνάρτηση Σύνταξη Πρωτότυπου return_type type function_name name ( [type [parametername]]...); Σύνταξη συνάρτησης return_type function_name ( [type parametername]...) { statements; ae e Το πρωτότυπο συνάρτησης δε χρειάζεται να περιέχει τα ονόματα παραμέτρων αλλά επιβάλλεται να περιέχει τον τύπο τους. Αλληλο καλώμενες συναρτήσεις foo1 foo2() foo2 foo1() 5

Αλληλο καλώμενες συναρτήσεις char *chicken( int generation ) { if (generation == 0) return("chicken!"); else return(egg(generation-1)); char *egg( int generation ) { if (generation == 0) return("egg!"); else return(chicken(generation-1)); Αλληλο καλώμενες συναρτήσεις char *egg( int ); char *chicken( int ); int main(void) { int startnum; cout << "Enter starting generation of your chicken" << endl; cin >> startnum; cout << "Your chicken started as a " << chicken(startnum) << endl; return(0); 6

Παράδειγμα/1 typedef unsigned short USHORT; #include <iostream.h> USHORT FindArea(USHORT length, USHORT width); int main() { USHORT lengthofyard; USHORT widthofyard; USHORT areaofyard; cout << ʺ\nHow wide is your yard? ʺ; cin >> widthofyard; cout << ʺ\nHow long is your yard? ʺ; cin >> lengthofyard; Παράδειγμα/2 areaofyard= FindArea(lengthOfYard,widthOfYard); cout << ʺ\nYour yard is ʺ; ; cout << areaofyard; cout << ʺ square feet\n\nʺ; return 0; USHORT FindArea(USHORT l, USHORT w) { return l * w; 7

double sqrt( double ) Ανήκει στη βιβλιοθήκη math.h της C++ Υπολογίζει τετραγωνική ρίζα Κατά την κλίση της sqrt, πρέπει να δώσουμε double ως παράμετρο. Επιστρέφει double. x = sqrt(y); x = sqrt(100); x = sqrt(y); Το Υ είναι παράμετρος. Μια παράμετρος χρησιμοποιείται αλλά δεν αλλάζει. Αν το Υ είχε την τιμή 100 πριν την κλίση θα είναι 100 και μετά 8

Παράδειγμα int i; for (i=1;i<10;i++) cout << sqrt(i) << \n ; Η C++ αλλάζει τον τύπο παραμέτρου αυτόματα compiler & sqrt() Πρέπει να πούμε στο compiler ότι θα χρησιμοποιηθεί θίηsqrt: #include <math.h> 9

Άλλες συναρτήσεις μαθηματικών cos sin tan exp log log10 pow fabs fmod Παράμετροι συναρτήσεων Οι παράμετροι λειτουργούν σαν τοπικές μεταβλητές μέσα στη συνάρτηση Όταν κλιθεί η συνάρτηση θα περάσουν μέσα οι τιμές των παραμέτρων Οι συναρτήσεις χρησιμοποιούν αντίγραφα των παραμέτρων ρ για αυτό και οι αρχικές τιμές δεν αλλάζουν εκτός της συνάρτησης. 10

Παράδειγμα int add2nums( int firstnum, int secondnum ) { int sum; sum = firstnum + secondnum; // τι θα αλλάξει? firstnum = 0; secondnum = 0; return(sum); Testing add2nums int main(void) { int y,a,b; cout << "Enter 2 numbers\n"; cin >> a >> b; y = add2nums(a,b); cout << "a is " << a << endl; cout << "b is " << b << endl; cout << "y is " << y << endl; return(0); 11

Τι γίνεται; int add2nums(int a, int b) { a=a+b; return(a); int a,b,y; y = add2nums(a,b); Τοπικές μεταβλητές Οι παράμετροι και οι μεταβλητές που δηλώνονται μέσα σε μία συνάρτηση είναι τοπικές. Υπάρχουν μόνο μέσα στο σώμα της συνάρτησης Μετά τον τερματισμό της συνάρτησης παύουν να υπάρχουν 12

Block μεταβλητές Μπορούν επίσης να δηλωθούν μεταβλητές που θα υπάρξουν μόνο μέσα σε ένα ορισμένο block: { int foo; Σφαιρικές μεταβλητές Μπορούμε να δηλώσουμε μεταβλητές έξω από κάθε συνάρτηση και ονομάζονται σφαιρικές Οι σφαιρικές μεταβλητές είναι προσβάσιμες και μπορούν να αλλαχθούν από όλες τις συναρτήσεις. 13