De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.

Verwante presentaties


Presentatie over: "Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies."— Transcript van de presentatie:

1 tircms03-p les 2 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; i=5 ; k=(j=3)+(i++) geeft i=6;j=3;k=8; ++ 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: 00010111 = 23 ( 8bit) 00011010 = 26 ( 8 bit) -------------------- & 00010010 = 18 ( 8bit)

7 Conditionele expressies 1. If ( a< b) z=a+1 ; else z= b-1; 2. 3. Korter: 4. 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 = 65 +2 = 67 = ‘C’ 65 is de ASCII waarde van ‘A’ f = 3.14 + ‘A’ = 3.14+65 = 68.14 (char  float) 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: 12.000 ( totaal 5 karakters, 3 achter de komma) (float) heet een cast operator

14 Functies 1. main() 2. { int k; k = 10 ; cout << fac(k); } 3. int fac(int n) 4. { int f; f= 1; 5. while ( n>1) { f=f*n ; n=n-1;} 6. return f; 7. }

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 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 Maak de opgaven 4.3, 4.4, 4.6 uit C++-boek Bestudeer Hfdst 5,6 uit C++-boek


Download ppt "Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies."

Verwante presentaties


Ads door Google