1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays  Klassiek gebruik  For opdracht, Increment/Decrement  Wijzers, Arrays en Wijzers.

Slides:



Advertisements
Verwante presentaties
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
Advertisements

1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Hoofdstuk 3 Basisprogrammatuur
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler  Enkel MACRO en MCREINDE directieven  Extra macro-directieven De Lader De.
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Seminarie 1: Pythagoreïsche drietallen
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Materialen en moleculen
Dynamica van luchtstromen
Jeugd in het Strafrechtelijk kader Les 3, 2016 ‘Needs’
Natuurkunde Overal Hoofdstuk 1: Beweging in beeld.
Aanleiding Veranderende organisatie
Portfolio Zon projecten.
De missie, het hart en het broodtrommeltje
Bomen en struiken IVN Helden.
Roundtable De Gefragmenteerde Organisatie
BASISVEILIGHEID (VCA)
Hoofdstuk 6 Warmte.
Outdoor Advanced - Specialist Tuin en Openbaar Groen 3.1,
RECHT VAN SPREKEN FUNCTIONEREN OC’S 2016
Six hats: Werken met netwerken? Mijn gedacht
Je kunt iedere dag iets betekenen voor een ander
Nienke Hoffman Teamleider bovenbouw 28 maart 2017
NIET-RATIONELE BESLISSINGEN in de TECHNIEK
Participatie in Onderzoek ZonMw
Kwaliteitsborging voor het Bouwen
Basis Politie- & Honden Voertuigen
Belangrijkste wijzigingen
Landschapsecologische criteria voor Nationale Parken van Wereldklasse
De Mount Etna Presentatie voor Plannex door Veerle van Deelen.
Lokale autonomie en interbestuurlijk toezicht
De economie in de gouden eeuw
Pastoraat van heling en vernieuwing
Kleurenschema’s Inspiratie: steden van de wereld.
Voorproefje klezmer Brave Old World Khevrisa Klezmatics.
Paul Geurts, Gemeente Nijmegen
Hoofdstuk 8 Licht en kleur.
SOCS Test 1.
Functies met een parameter
College 9 Lit.=Literatuur K=Kennen T/A=Toepassen/Afleiden
Hoofdstuk 5 Les 7: Markten.
Tweedegraads vergelijkingen oplossen
4.2 en 4.3 warmte en uitzetten warmtetransport
Epidemiologie van prostaatkanker
Uitnodiging Rabobank-Sprintwedstrijden Het leukste side-event van de Giro d’Italia!! 30 april – uur.
Macro-economie Oplossingen proefexamen
Keuzevoorlichting VWO wiskunde ABCD.
Elektrische stroomsterkte Natuurkunde Overal 2 Havo Atheneum
Hoe reken je met frequentie en trillingstijd?
Natuurkunde Overal Hoofdstuk 8: Hemelmechanica 8 mei 2018.
De Lorenzcurve Doel van de Lorenzcurve is inzicht geven in de verdeling van het (nationaal)inkomen over de inkomenstrekkers. Het is een grafische weergave.
Deeleconomie Anke thienpont 1Baswb.
Presentatie 3 Goos de Jong
WETENSCHAPPLIJK EN SIGNIFICANTIE
FEW Cursus Gravitatie en kosmologie
Herhaling Jaar 1 periode 3.
Toegepast rekenen HEO Algebra.
HERSIENING MOTORS & GENERATOR.
Massa, Kracht en gewicht.
Voorkennis Wiskunde Les 10 Hoofdstuk 4/5: §4.5 t/m §5.2.
Voorkennis Wiskunde Les 15 Hoofdstuk 7.
Hoofdstuk 6: Natuurkunde Overal (havo 4) versie 16 mei 2019
Welkom in de Nederlandse les!
Tarieven 2020 Tariefonderbouwing.
Tariefonderbouwing en tarieven
Transcript van de presentatie:

1 SOCS Hoofdstuk 1 Computerarchitectuur

2 Overzicht Eenvoudig C Arrays  Klassiek gebruik  For opdracht, Increment/Decrement  Wijzers, Arrays en Wijzers  Array van Wijzers  Meerdimensionale Tabellen  Wijzer naar Array Functies Records Dynamische gegevenstructuren C

3 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0][1] t[0][1] t[1][1] t[1][1] t[2][1] t[2][1] t[3][1] t[3][1] t[4][1] t[4][1] t[0][2] t[0][2] t[1][2] t[1][2] t[2][2] t[2][2] t[3][2] t[3][2] t[4][2] t[4][2] t[0][3] t[0][3] t[1][3] t[1][3] t[2][3] t[2][3] t[3][3] t[3][3] t[4][3] t[4][3] t[0][0] t[0][0] t[1][0] t[2][0] t[2][0] t[3][0] t[3][0] t[4][0] t[4][0] t[0][4] t[0][4] t[1][4] t[1][4] t[2][4] t[2][4] t[3][4] t[3][4] t[4][4] t[4][4] t[0] t[1] t[2]t[3]t[4] Rij waarvan de elementen opnieuw rijen zijn

4 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4]

5 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] 6 2 i = 0 k =

6 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 0 k =

7 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 0 k =

8 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 0 k =

9 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 1 k =

10 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 1 k =

11 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 1 k =

12 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 2 k =

13 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 2 k =

14 Meerdimensionale tabellen int t[5][5], i, k; main() { /* initialiseren van tabel*/... /* spiegelen om diagonaal*/ for(i=0; i<5; i++) for(k=i+1; k<5; k++) { h = t[i][k]; t[i][k] = t[k][i]; t[k][i] = h; } /*afdrukken resultaat*/... } C t t[0] t[1] t[2]t[3]t[4] i = 3 k =

15 Wijzer naar Array int t[5][5]; int (*wa)[5], *wi; main() {... wa = &t[0]; wi = &t[0][0]; wi++; wa++;... } C wa t t[0] t[1] t[2]t[3]t[4] wi Wijzer naar rij van 5 elementen

16 Wijzer naar Array int t[5][5]; int (*wa)[5], *wi; main() {... wa = &t[0]; wi = &t[0][0]; wi++; wa++;... } C wa t t[0] t[1] t[2]t[3]t[4] wi

17 Wijzer naar Array int t[5][5]; int (*wa)[5], *wi; main() {... wa = &t[0]; wi = &t[0][0]; wi++; wa++;... } C wa t t[0] t[1] t[2]t[3]t[4] wi

18 Wijzer naar Array int t[5][5]; int (*wa)[5], *wi; main() {... wa = &t[0]; wi = &t[0][0]; wi++; wa++;... } C wa t t[0] t[1] t[2]t[3]t[4] wi

19 Wijzer naar Array int t[5][5]; int (*wa)[5], *wi; main() {... wa = &t[0]; wi = &t[0][0]; wi++; wa++;... } C wa t t[0] t[1] t[2]t[3]t[4] wi

20 Meerdimensionale Tabellen Geen nieuwe bevelen nodig Afbeelden van meerdimensionale structuur  1-dimensionale werkgeheugen = Linearisatie  Gebeurt op het C-programma  Transformatie van de code ~ alleen 1-dimensionale tabellen

21 Meerdimensionale Tabellen Rij-linearisatie  Matrix wordt rij per rij bewaard a 11 a 12 a 1m a 21 a 22 a 2m a n1 a n2 a nm A 0 A 1 A m-1 A m A m+1 A 2m-1 A (n-1)m A (n-1)m+1 A nm-1 a[i][j] = A[k] k = (i-1)*m + (j-1) a 11 a 12 a 1m a 21 a 22 a 2m a n1 a n2 a nm …… … …

22 Meerdimensionale Tabellen Kolom-linearisatie  Matrix wordt kolom per kolom bewaard a 11 a 21 a n1 a 12 a 22 a n2 a 1m a 2m a nm A 0 A 1 A n-1 A n A n+1 A 2n-1 A (m-1)n A (m-1)n+1 A mn-1 a[i][j] = A[k] k = a 11 a 12 a 1m a 21 a 22 a 2m a n1 a n2 a nm …… … … (j-1)*n + (i-1)

23 Meerdimensionale Tabellen Rij-linearisatie Kolom-linearisatie a[i][j] = A[k] k = a 0,0 a 0,2 a 0,m-1 a 1,0 a 1,2 a 1,m-1 a n-1,0 a n-1,1 a n-1,m-1 a 0,0 a 0,2 a 0,m-1 a 1,0 a 1.2 a 1,m-1 a n-1,0 a n-1,1 a n-1,m-1 a[i][j] = A[k] k = i*m + j j*n + i

24 Meerdimensionale tabellen int a[5][4], i, j; main() { /* inlezen van tabel*/ for(i=4; i>=0; i--) for(j=3; j>=0; j--) a[i][j] = getint();... } int A[5*4], i, j, k; main() { /* inlezen van tabel*/ for(i=4; i>=0; i--) for(j=3; j>=0; j--) { k = i * 4 + j; A[k] = getint(); }... } C

25 Meerdimensionale tabellen int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ for(i=4; i>=0; i--) { h = 4 * i; for(j=3; j>=0; j--) { k = h + j; A[k] = getint(); } }... } int A[5*4], i, j, k; main() { /* inlezen van tabel*/ for(i=4; i>=0; i--) for(j=3; j>=0; j--) { k = i * 4 + j; A[k] = getint(); }... } C

26 Meerdimensionale tabellen int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ for(i=4; i>=0; i--) { h = 4 * i; for(j=3; j>=0; j--) { k = h + j; A[k] = getint(); }... } int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ h = 16; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { k = h + j; A[k] = getint(); } h -= 4; }... } C

27 Meerdimensionale tabellen int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ h = 16; for(i=4; i>=0; i--) { k = h + 3; for(j=3; j>=0; j--) { A[k--] = getint(); } h -= 4; }... } int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ h = 16; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { k = h + j; A[k] = getint(); } h -= 4; }... } C

28 Meerdimensionale tabellen int A[5*4], i, j, k, h; main() { /* inlezen van tabel*/ h = 16; for(i=4; i>=0; i--) { k = h + 3; for(j=3; j>=0; j--) { A[k--] = getint(); } h -= 4; }... } int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); }... } C

29 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3

30 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19

31 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4

32 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi

33 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3

34 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj

35 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-)

36 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-) AFT.w R2,1 SPR forj

37 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-) AFT.w R2,1 SPR forj eindj: AFT.w R1,1 SPR fori

38 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-) AFT.w R2,1 SPR forj eindj: AFT.w R1,1 SPR fori eindi: STP

39 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); }... } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-) AFT.w R2,1 SPR forj eindj: AFT.w R1,1 SPR fori eindi: STP A: RESGR 20

40 Meerdimensionale Tabellen int A[5*4], i, j, k; main() { /* inlezen van tabel*/ k = 19; for(i=4; i>=0; i--) { for(j=3; j>=0; j--) { A[k--] = getint(); }... } | i  R1, j  R2, k  R3 HIA.w R3,19 HIA.w R1,4 fori: VGL.w R1,0 VSP KL,eindi HIA.w R2,3 forj: VGL.w R2,0 VSP KL,eindj LEZ BIG R0,A(R3-) AFT.w R2,1 SPR forj eindj: AFT.w R1,1 SPR fori eindi: STP A: RESGR 20 EINDPR

41 Cursustekst Hoofdstuk 1: pag. 52  pag. 55 Hoofdstuk 1: pag. 73  pag. 85