De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.

Verwante presentaties


Presentatie over: "1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren."— Transcript van de presentatie:

1 1 SOCS Hoofdstuk 1 Programmeertaal C

2 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren  Klassieke controle-structuren  functies Assembleertaal  Operatoren met equivalent op machine-niveau  Bewerkingen op adressen mogelijk

3 3 Aanpak Voorbeelden  Steunen op kennis van Java  Stijgende complexiteit Doelstelling:  Passieve kennis van C

4 4 Overzicht Eenvoudig C  Declaraties, main, operatoren, opdrachten, in- en uitvoer  Voorbeeld 1-1  if, while, samengestelde opdracht  Voorbeeld 1-5  Switch opdracht Arrays Functies Records Dynamische gegevenstructuren

5 5 Main – Globale var Voorbeeld 1-1 inta, b, somk; main() { a = getint(); b = getint(); somk = a * a + b * b; printint (somk); }

6 6 Main – Globale var Voorbeeld 1-1 inta, b, somk; main() { a = getint(); b = getint(); somk = a * a + b * b; printint (somk); } globale variabelen Type int = integer declaratie vereist

7 7 Types Standaard types  int : voor gehele waarde  C voorziet verschillende groottes short int long  Niet noodzakelijk verschillend  Geen type voor logische waarde; logische waarde wordt verwacht:  0  false  != 0  true

8 8 Main – Globale var Voorbeeld 1-1 inta, b, somk; main() { a = getint(); b = getint(); somk = a * a + b * b; printint (somk); } Hoofdprogramma main In voorbeelden: geen parameters geen lokale variabelen opdrachten

9 9 Operatoren Uitdrukkingen  Rekenkundige operatoren + - * / %  Relationele operatoren > >= < <= == !=  Logische operatoren && tweede operand nt berekend indien eerste 0 || tweede operand nt berekend indien eerste !=0

10 10 Operatoren Uitdrukkingen  Toekenningsoperator: i = 5 UITDRUKKING!  Met waarde: 5  Met neveneffect: waarde I is 5  Klassieke fout i = 5 i == 5  Samengestelde toekenningsoperatoren  i *= j – 3  i = i * ( j – 3 )  += -= *= /= %=

11 11 Opdrachten Opdracht  Uitdrukking gevolgd door ; Invoer en uitvoer  C definieert geen opdrachten  In C worden functies uit bibliotheken gebruikt  Wij gebruiken  getint()  printint ( )

12 12 Voorbeeld 1-1 inta, b, somk; main() { a = getint(); b = getint(); somk = a * a + b * b; printint (somk); }

13 13 If while Voorbeeld 1-5 int a, abs, i; main() { i = 1; while (i <= 10) { a = getint (); if ( a > 0) abs = a; else abs = -a; printint (a, abs); i = i + 1; }

14 14 If while Voorbeeld 1-5 int a, abs, i; main() { i = 1; while (i <= 10) { a = getint (); if ( a > 0) abs = a; else abs = -a; printint (a, abs); i = i + 1; } if ( ) else

15 15 If while Voorbeeld 1-5 Samengestelde opdracht: { … } Geen afsluitende ;

16 16 If while Voorbeeld 1-5 int a, abs, i; main() { i = 1; while (i <= 10) { a = getint (); if ( a > 0) abs = a; else abs = -a; printint (a, abs); i = i + 1; } while ( )

17 17 Switch-opdracht switch (i - 7){ case 0: case 1: a = 0; break; case 2: a = 1; break; default: a = 2; break; }

18 18 Overzicht Eenvoudig C Arrays  Klassiek gebruik  Wijzers en arrays  For opdracht  Twee-dimensionale tabellen  Arrays van wijzers Functies Records Dynamische gegevenstructuren

19 19 Arrays klassiek Voorbeeld 1 -13 int som, i; int a[10]; main() { /* inlezen van array a */ i = 0; while( i<10 ){ a[i] = getint(); i = i + 1; } /*berekenen van de som van de elementen */ som = 0; i = 0; while( i<10 ){ som = som + a[i]; i = i + 1; } printint (som); }

20 20 Arrays klassiek Voorbeeld 1 -13 Declaratie int a[10] geeft elementen met indices van 0.. 9 Selectie van elementen a[6] a[0] a[i+3]

21 21 For opdracht Voorbeeld 1 –13 V2 int som, i; int a[10]; main() { /* inlezen van array a */ for( i =0; i<10; i++){ a[i] = getint(); } /*berekenen van de som van de elementen */ som = 0; for(i = 0; i<10; i++ ) som = som + a[i]; printint (som); }

22 22 For opdracht Voorbeeld 1 –13 V2 Increment- en decrement operatoren i++ ++i  Waarde van  uitdrukking  i  Voorbeeld i = 1;i = 1; j = i++;j = ++i; printint (i, j);printint (i, j);

23 23 For opdracht Voorbeeld 1 –13 V2 For-opdracht for(uitdrukking1; uitdrukking2; uitdrukking3) opdracht uitdrukking1; while (uitdrukking2) { opdracht; uitdrukking3; }

24 24 Voorbeeld 1 -14 int r[10]; int i, max; main() { /* inlezen van array r wordt niet behandeld */ max = r[0]; for (i = 1; i < 10; i++) if (r[i] > max) max = r[i]; printint (max); }

25 25 Wijzers & arrays Voorbeeld 1 -15 int r[10]; int *pr, max; main() { /* inlezen van array r wordt niet behandeld */ max = r[0]; for (pr = &r[1] ; pr < &r[10]; pr++) If (*pr > max) max = *pr; printint (max); }

26 26 Wijzers & arrays Voorbeeld 1 -15 Wijzer-variabelen int *p, *q;  Adresoperator p = &i q = &r[0]  Indirectie-operator *p 7 p i -3 q r[0]

27 27 Twee-dimensionale tabellen Voorbeeld 1 -18 int t[20][20], i, j, n; main(){ /* inlezen van tabel*/... /* spiegelen om hoofddiagonaal*/ for(i=0; i<n-1; i++) for(j=i+1; j<n; j++){ h = t[i][j]; t[i][j] = t[j][i]; t[j][i] = h; } /*afdrukken resultaat*/... }

28 28 Arrays met wijzers Hoe interpreteren? int*t[5]  t is een array van … wijzers naar int  t is een wijzer naar … een array van int int (*wa)[4]

29 29 Voorbeeld 1 -19 int *t[5]; int i,j; main(){... t[0] = &i t[1] = &j; t[2] = t[1]; j = 5; printint( j, *t[1], *t[2]); /* de waarde 5 wordt 3 keer afgedrukt */... }

30 30 Voorbeeld blz. 54 int (*wa)[4], *wi; int a[3], t[3][4]; wi = &a[0]; wa = t[0]; wi++; wa++;

31 31 Overzicht Eenvoudig C Arrays Functies  Basisfaciliteiten  Parameterbinding  Recursie  Procedures  Arrays en parameters Records Dynamische gegevenstructuren

32 32 int macht (int grondtal, int exponent ){ int r, i; r = 1; for( i=1; i<= exponent; i++) r = r * grondtal; return(r) } Basisfaciliteiten Voorbeeld 1 -25 parameters Lokale variabelen Resultaat van functie

33 33 Basisfaciliteiten Voorbeeld 1 -26 int a, b; main(){ a = getint(); b = getint(); printint( a, macht(2, a) ); printint( macht ( a-b, b*2) ); }

34 34 Parameterbinding Voorbeeld 1 -28 Waarde parameters int macht (int grondtal, int exponent){ int r; r = 1; while (exponent-- > 0) r = r * grondtal; return(r); }

35 35 Recursie Voorbeeld 1 -29 int macht (int grondtal, int exponent){ if (exponent == 0) return (1); else return( grondtal * macht(grondtal, exponent- 1)) }

36 36 Procedures Voorbeeld 1 -30 void kwadraat( int a, int b, int *som, int *verschil) { int h1, h2; h1 = a * a; h2 = b * b; *som = h1 + h2; *verschil = h1 - h2; }

37 37 Procedures Voorbeeld 1 -30 main() { int x, y, z, t; x = getint(); y = getint(); kwadraat( x-1, y+1, &z, &t); printint( x, y, z, t); }

38 38 Arrays en parameters Voorbeeld 1 -31 int somtabel( int t[20], int n) { int i, som; som = 0; for( i=0; i<n; i++) som += t[i]; return(som); }

39 39 Arrays en parameters Voorbeeld 1 -32 int somtabel( int *t, int n) { int i, som; som = 0; for( i=0; i<n; i++){ som += *t; t++; } return(som); }

40 40 Arrays en parameters Voorbeeld 1 -33 int somtabel( int *t, int n) { int i, som; som = 0; for( i=0; i<n; i++) som += t[i]; return(som); }

41 41 Overzicht Eenvoudig C Arrays Functies Records  Basiselementen  Records en arrays  Records en wijzers  Records en functies Dynamische gegevenstructuren

42 42 Basiselementen Voorbeeld 1 -54 struct Tswitch { int lokaal; int nr; int aan; }; struct Tswitch s1, s2;

43 43 Basiselementen Voorbeeld 1 –54 & 55 struct Tswitch { int lokaal; int nr; int aan; }; struct Tswitch s1, s2; s1.lokaal = getint(); s1.nr = getint(); s1.aan = 1; s2 = s1;

44 44 Type definities typedefint LENGTE; typedef struct Tswitch { int lokaal; int nr; int aan; } T_SWITCH; LENGTE ll, b; T_SWITCH s1, s2;

45 45 Records en arrays Voorbeeld 1 -56 struct student { int nummer; intvaknr; int punten; }; struct student jaar[25]; main(){ jaar[0].nummer = getint(); jaar[0].vaknr = 1; jaar[0].punten = 16; jaar[i] = jaar[0]; printint(jaar[i].nummer,jaar[i].punten);... }

46 46 Records en wijzers Voorbeeld 1 -57 struct student { int nummer; intvaknr; int punten; }; struct student st, *wst; main(){ st.nummer = 13; wst = &st printint( wst -> nummer) } ipv(*wst).nummer

47 47 Record als waarde-parameter Voorbeeld 1 -58 struct Tswitch s1, s2; void voeruit (struct Tswitch s) { struct Tswitch t; t = s; s.lokaal = 0;... } main(){... s2.lokaal = 1; voeruit(s2); printint(s2.lokaal);... }

48 48 Record als resultaat Voorbeeld 1 -59 struct Tswitch s1, s2; void zetaan ( struct Tswitch *s) { s->aan = 1; } main() {... s1.aan = 0; zetaan (&s1); printint(s1.aan);... }

49 49 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren


Download ppt "1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren."

Verwante presentaties


Ads door Google