Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdEdith Eva van de Brink Laatst gewijzigd meer dan 6 jaar geleden
1
tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies
2
Meer operatoren s= s+i; is identiek aan s+=i;
i=i+1; is identiek aan i++; (increment) j=j-1; is identiek aan i--; (decrement) eerst i gebruiken ,daarna verhogen i=i+1; is identiek aan ++i; (increment) j=j-1; is identiek aan --i; (decrement) eerst i verhogen daarna i gebruiken
3
Meer Operatoren i=5 ; k=(j=3)+(++i) geeft i=6;j=3;k=9;
++ en -- hebben hoogste prioriteit k=i---j is k=(i--)-j de - is een unaire operator ( de + niet) x=-5; is correct x=+5; is fout
4
Meer operatoren assignment operatoren: += -= *= /=
+= -= *= /= x = x*3; is identiek aan x*=3; hebben de laagste priotiteit i-=j + k; is identiek aan i-=(j+k); is identiek aan i= i - (j+k);
5
Bit manipulatie & logische en bitsgewijs | logische of bitsgewijs
^ exclusief of bitsgewijs << schuiven naar links >> schuiven naar rechts ~1-complement (unaire operator
6
Bitmanipulatie 23 & 26 logisch and binair:
= 23 ( 8bit) = 26 ( 8 bit) & = 18 ( 8bit)
7
Conditionele expressies
If ( a< b) z=a+1 ; else z= b-1; Korter: z = a< b ? a+1 : b-1
8
Komma operator S=0; while ( cin >> n , n> 0 ) s+=n; 3 acties:
1. lezen getal (cin) 2. de test n>0 in het midden 3. het verhogen van s met n De expressie evalueren van links naar rechts , de laatste bepaalt de waarde
9
Associativiteit a - b - c = (a -b) -c
de binaire operator - associeert van links naar rechts alle andere associeren van rechts naar links a < b ? p : c < d ? q : r is gelijk aan: a < b ? p : ( c< d ? q : r )
10
Overzicht operatoren operator
() [] -> . ! ~ (type) * & sizeof (alle unair ) * / % + - << >> < <= >= == != & ^ | && || ?: = += -= etc. ,
11
Overzicht operatoren ! logische ontkenning (not), unaire operator
~ 1~complement, bitsgewijs, unaire operator ++ increment, verhogen met 1, unaire operator -- decrement, verlagen met 1, unaire operator - minus, zowel unair als binair + plus * maal / gedeeld door % rest bij geheeltallige deling << schuiven naar links >> schuiven naar rechts < kleiner dan > groter dan <= kleiner dan of gelijk aan >= groter dan of gelijk aan == gelijk aan != ongelijk aan & bitsgewijs en | bitsgewijs of ^ bitsgewijs exclusief of && logisch en || logisch of ?: conditionele expressie = assignment += plus-operator met assignment; analoog -=, *=, etc. , komma-operator
12
Typeconversie int i ; float f ; char ch ; long l; double d;
f+i i wordt naar float geconverteerd ch + i is mogelijk , ‘A’ + 2 = = 67 = ‘C’ 65 is de ASCII waarde van ‘A’ f = ‘A’ = = (charfloat) f= 5.9 ; i=f i= 5 ( afgekapt) l=45 ; i= l geeft een fout resultaat
13
Cast- operator Naast impliciete conversie kennen we expliciete conversie ( Cast operator) int i ; i=12 ; float(i) levert: ( totaal 5 karakters , 3 achter de komma) (float) heet een cast operator
14
Functies main() { int k; k = 10 ; cout << fac(k); }
int fac(int n) { int f; f= 1; while ( n>1) { f=f*n ; n=n-1;} return f; }
15
Functies In regel 2 wordt de functie fac(k) aangeroepen
k= parameter ( value) functies zijn altijd extern functies binnen functies mag niet In regel 3 wordt de functie gedefinieerd De functie waarde is integer Het argument n is integer
16
Functies Het voorbeeld berekent n! = 1*2*3* ....*n
Moderne notatie: int fac( int n) Het argument moet van het zelfde type zijn als de formele parameter. Vb: schrijf( float x) { cout << x ;} Dan moet de aanroep zijn schrijf(123,0) En niet schrijf(123)
17
Overloading 2 of meer functies hebben zelfde naam
Mits verschillen in aantal en type argument
18
Overloading In C: int iabs(int x) { return (x<0 ? -x : x); }
float fabs(float x) { return (x<0.0 ? -x : x); } main() { ... iabs(3) + fabs(-2.7) ...}
19
Overloading In C++: int abs(int x) { return (x<0 ? -x : x); }
float abs(float x) { return (x<0.0 ? -x : x);} main() { ... abs(3) + abs(-2.7) ...}
20
Overloading float macht(float x, int n) { r = 1;
Default-parameters float macht(float x, int n) { r = 1; for (i=0; i<n; i++) r *= x; return r; } float macht(float x) { return macht(x,2); }
21
Overloading Default-parameters Maar nog handiger is:
float macht(float x, int n=2) { r = 1; for (i=0; i<n; i++) r *= x; return r;}
22
Huiswerk les 2 Maak de opgaven 3.3 , 3.4 uit C++-boek
Bestudeer Hfdst 5,6 uit C++-boek
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.