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

Slides:



Advertisements
Verwante presentaties

Advertisements


Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays  Klassiek gebruik  For opdracht, Increment/Decrement  Wijzers, Arrays en Wijzers.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Het type int Tekenen met Java operatoren
VBA en VBS Een introductie.
Conditionele expressie
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
Hogere-orde functies: herhaald patroon? Parametrizeer! product :: [Int]  Int product [ ]= product (x:xs)= 1 product xs x * and :: [Bool]  Bool and [
Frank Stalpers en Ad Baars
Inleidend probleem Data structuur (hiërarchie van classes)
Numerieke Natuurkunde
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
SWI cursus: ‘Inleiding programmeren in Java’
Hoofdstuk 7 verplicht… Keuze.
Hoofdstuk Strings en arrays. Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden.
CONTROLESTRUCTUREN (DEEL 1)
Consoletoepassing Variabelen Klassen
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Deel I: Programmeertaal C 6. Arrays en Pointers
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Hoofdstuk 5 – Verzameling en functie
CONTROLESTRUCTUREN (DEEL 1)
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
Welkom! maandag 16 November 2015 Les B-2.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Loops en errors Array's Random try catch for loop while loop do while loop.
Informatie beoordelen If else Switch En Wiskunde.
Materialen en moleculen
Dynamica van luchtstromen
Door Marco Lassche, Joyce Mulder en Mare de Winter
Bomen en struiken IVN Helden.
Jorismavo Examenvoorlichting
Inlichtingenbijeenkomst Simulatiecapaciteit ERTMS
Stedelijke bevolking 50% wereldwijd (70% verwacht) 75% in Europa
Co-creatie in de Master Health Care & Social Work
Maurits Hendriks Technisch Directeur Chef de Mission
Automatische presentatie met muziek
Herhaling hoofdstuk 3: Krachten
§12.3 Andere soorten ioniserende straling
Herhaling § §12.1: Echografie = geluidsgolven: onschadelijk
SOCS Test 1.
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Expressies
5.1 Oefeningen op warmte-capaciteit met uitgewerkte oplossingen
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Interactieve tijdreeksmodelontwikkeling
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
TONEEL.
Macro-economie Oplossingen proefexamen
Grafen en netwerken I Datastructuren en doorzoeken
Beleid, Actualiteit en Praktijk
Formules omschrijven.
Vecotoren H 7 Krachten Deel 3 Vectoren.
Transcript van de presentatie:

1 SOCS Hoofdstuk 1 Programmeertaal C

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 Aanpak Voorbeelden  Steunen op kennis van Java  Stijgende complexiteit Doelstelling:  Passieve kennis van C

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 Main – Globale var Voorbeeld 1-1 inta, b, somk; main() { a = getint(); b = getint(); somk = a * a + b * b; printint (somk); }

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

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 Opdrachten Opdracht  Uitdrukking gevolgd door ; Invoer en uitvoer  C definieert geen opdrachten  In C worden functies uit bibliotheken gebruikt  Wij gebruiken  getint()  printint ( )

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

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 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 If while Voorbeeld 1-5 Samengestelde opdracht: { … } Geen afsluitende ;

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 Switch-opdracht switch (i - 7){ case 0: case 1: a = 0; break; case 2: a = 1; break; default: a = 2; break; }

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

19 Arrays klassiek Voorbeeld 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 Arrays klassiek Voorbeeld Declaratie int a[10] geeft elementen met indices van Selectie van elementen a[6] a[0] a[i+3]

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 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 For opdracht Voorbeeld 1 –13 V2 For-opdracht for(uitdrukking1; uitdrukking2; uitdrukking3) opdracht uitdrukking1; while (uitdrukking2) { opdracht; uitdrukking3; }

24 Voorbeeld 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 Wijzers & arrays Voorbeeld 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 Wijzers & arrays Voorbeeld Wijzer-variabelen int *p, *q;  Adresoperator p = &i q = &r[0]  Indirectie-operator *p 7 p i -3 q r[0]

27 Twee-dimensionale tabellen Voorbeeld 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 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 Voorbeeld 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 Voorbeeld blz. 54 int (*wa)[4], *wi; int a[3], t[3][4]; wi = &a[0]; wa = t[0]; wi++; wa++;

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

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 parameters Lokale variabelen Resultaat van functie

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

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

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

36 Procedures Voorbeeld 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 Procedures Voorbeeld main() { int x, y, z, t; x = getint(); y = getint(); kwadraat( x-1, y+1, &z, &t); printint( x, y, z, t); }

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

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

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

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

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

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 Type definities typedefint LENGTE; typedef struct Tswitch { int lokaal; int nr; int aan; } T_SWITCH; LENGTE ll, b; T_SWITCH s1, s2;

45 Records en arrays Voorbeeld 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 Records en wijzers Voorbeeld struct student { int nummer; intvaknr; int punten; }; struct student st, *wst; main(){ st.nummer = 13; wst = &st printint( wst -> nummer) } ipv(*wst).nummer

47 Record als waarde-parameter Voorbeeld 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 Record als resultaat Voorbeeld struct Tswitch s1, s2; void zetaan ( struct Tswitch *s) { s->aan = 1; } main() {... s1.aan = 0; zetaan (&s1); printint(s1.aan);... }

49 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren