GESPRG Les 9 Gestructureerd programmeren in C. 116 2 dimensionale array Array van array’s int i = 31; int a[4] = {7, 23, 6, 2}; int m[2][4] = { {1, 1,

Slides:



Advertisements
Verwante presentaties

Advertisements



Differentie vergelijkingen differentie vergelijkingen

PROS2 Les 11 Programmeren en Software Engineering 2.


MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
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;
Trillingen en Cirkelbewegingen
Isaac Newton Omdat een beetje extra bijscholing nooit kwaad kan 
Materialen en moleculen
Hoe deel je gesteenten in? Codering; Streckeisen
Havo 5: Stoffen en Materialen
Veevoeding Blok 3 en 4: Ruwvoerbalans melkveehouderij
Jeugd in het Strafrechtelijk kader Les 3, 2016 ‘Needs’
Natuurkunde Overal Hoofdstuk 1: Beweging in beeld.
Klaar met het PW? Lees aandachtig het samenvattingenblad hst 7
Aanleiding Veranderende organisatie
Portfolio Zon projecten.
Door Marco Lassche, Joyce Mulder en Mare de Winter
VAN KEUKENBLAD TOT FRIKANDEL presentatie door Koen Ongkiehong
Energielening.
De missie, het hart en het broodtrommeltje
Context 4 Verlichtingsideeën en de democratische revoluties
Gaat u dan snel naar Goedkoop of in kleine oplagen kleding (laten) bedrukken, met een embleem, logo en/of tekst van uzelf, of.
Roundtable De Gefragmenteerde Organisatie
BASISVEILIGHEID (VCA)
Quel jour sommes-nous aujourd’hui ?
Hoofdstuk 6 Warmte.
Outdoor Advanced - Specialist Tuin en Openbaar Groen 3.1,
Jorismavo Examenvoorlichting
RECHT VAN SPREKEN FUNCTIONEREN OC’S 2016
Inlichtingenbijeenkomst Simulatiecapaciteit ERTMS
Toolbox: ATEX ATmosphere - EXplosive
De wederkomst ophanden? 20 augustus 2017 Urk.
Omdenken Een kleine test….
Toevoeging H5 Elektriciteit
Reisconferentie van zorg naar zelfregie
Klaar met de toets? Lees aandachtig het samenvattingenblad hst 6
Je kunt iedere dag iets betekenen voor een ander
Nienke Hoffman Teamleider bovenbouw 28 maart 2017
Risico’s en de vertaling naar wettelijke uitgangspunten
Op zoek naar de juiste toon Geluid in de omgevingswet
Stedelijke bevolking 50% wereldwijd (70% verwacht) 75% in Europa
Hoofdstuk 5 Les 1: Markten.
6. Sleutelvoedingsfactoren
Hst. 2 Het geslachtsapparaat
Wees welkom op deze 1STE cursus windows SPECIAAL ONTWIKKELD VOOR AMBTENAREN Vergeet niet te rusten tijdens de cursus en neem een relaxe houding aan tijdens.
Microsoft® Office Outlook® 2007-cursus
De Here zeide tot Mozes: Ga, Ik zend u tot Farao
Co-creatie in de Master Health Care & Social Work
Participatie in Onderzoek ZonMw
VPH Les 13.
Maurits Hendriks Technisch Directeur Chef de Mission
Welkom Brussel, 25/02/2017.
Nedgraphicsdag 18 september 2012
Kwaliteitsborging voor het Bouwen
Basis Politie- & Honden Voertuigen
Voorproefje klezmer Brave Old World Khevrisa Klezmatics.
Functies met een parameter
Herhaling Jaar 1 periode 3.
Door Desiré van der Kruk
Workshop toepasbare regels
Foundation Jana De Koker
20 maart 2019 Stefaan Standaert Riynto Simanjuntak
Mangrove voor de kust bij Singkil West Sumatra
Transcript van de presentatie:

GESPRG Les 9 Gestructureerd programmeren in C

116 2 dimensionale array Array van array’s int i = 31; int a[4] = {7, 23, 6, 2}; int m[2][4] = { {1, 1, 61, 3}, {4, 23, 7, 0} }; 31 i a m

117 2 dimensionale array Array van array’s int m[2][4] = { {1, 1, 61, 3}, {4, 23, 7, 0} }; m m 4 1 m[1][0] = 18; 18 Row-major order 18

118 Sudoku int puzzel[9][9] = { {8,6,0,0,2,0,0,0,0}, {0,0,0,7,0,0,0,5,9}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,6,0,8,0,0}, {0,4,0,0,0,0,0,0,0}, {0,0,5,3,0,0,0,0,7}, {0,0,0,0,0,0,0,0,0}, {0,2,0,0,0,0,6,0,0}, {0,0,7,5,0,9,0,0,0} };

119 Huiswerk (deel 1) Schrijf een functie areRowsValid die checked of in een matrix van 9 bij 9 niet meerdere malen hetzelfde cijfer op dezelfde regel voorkomt. Een lege plaats wordt aangegeven met de waarde 0. De functie geeft 1 terug als er niet meerdere malen hetzelfde cijfer op dezelfde rij voorkomt. De functie geeft 0 terug als er meerdere malen hetzelfde cijfer op dezelfde rij voorkomt. Bestudeer C boek: paragraaf 6.11.

120 Domein (van een functie) Faculteit (met int) Domein = [0..12] n boven k (met int’s) Domein versie met faculteit = [0..12] Domein recursieve versie = [0..33] Wat was dat ook alweer?

121 Wie controleert of argument in domein ligt? Aanroeper (caller) De aanroeper moet voor aanroep van faculteit(i) controleren of i in het domein van de functie valt. Wat moet de functie doen als i niet in het domein valt? Aangeroepene (callee) De functie moet na aanroep van faculteit(i) controleren of i in het domein van de functie valt. Wat moet de functie doen als i niet in het domein valt? Niets! Misschien wel tijdens ontwikkelfase… Gebruik assert (zie volgende sheet). Foutmelding geven? Waar (denk aan embedded systeem)? Foutcode teruggeven? Caller moet checken!

Ik beweer: 0 ≤ n ≤ assert #include int faculteit(int n) { int i, res = 1; assert(n >= 0 && n <= 12); for (i = 1; i <= n; i = i + 1) { res = res * i; } return res; }

123 assert Compile in Debug mode: Functie geeft foutmelding en stopt programma als argument van assert 0 is. Compile in Release mode: Functie doet niets.

124 assert in Debug mode

125 assert in Release mode

126 Foutcode int faculteit(int n) { int i, res = 1; if (n >= 0 && n <= 12) { for (i = 1; i <= n; i = i + 1) { res = res * i; } else { res = -1; } return res; }

127 Foutcode controleren int main(void) { int n, fac; for (n=0; n<=13; n=n+1) { fac = faculteit(n); if (fac != -1) { printf("%d! = %d\n", n, fac); } else { printf("%d! = te groot\n", n); } getchar(); return 0; }

128 Uitvoer

129 Huiswerk (deel 2) Als het goed is heb je na les 6 een recursieve functie int fib(int n) geschreven die het n de getal uit de fibonacci rij berekent. Wat is het domein van deze functie. Pas de fib functie aan zodat gecontroleerd wordt of n in het domein ligt. Als de caller verantwoordelijk is voor de controle Als de callee verantwoordelijk is voor de controle Bestudeer C boek: paragraaf 8.10.

130 Uitwerking Reverse void wissel(int *p, int *q) { int hulpje = *p; *p = *q; *q = hulpje; } void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last) { wissel(&a[first], &a[last]); first = first + 1; last = last - 1; }