Slides:



Advertisements
Verwante presentaties

Advertisements



Een getal met een komma noemen we een decimaalgetal.
PSD Basisstructuren programmeren.

Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
© 2010 Noordhoff UitgeversMarketingcommunicatiestrategie.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
dia's bij lessenserie Pythagoras ± v Chr.
MICPRG Les 12 Microcontroller Programmeren in C. 127 Real-time clock PC heeft een RTC Real-time Clock die de “time of day” bijhoudt. De RTC is voorzien.
Een paar programma’s met een aantal basisprincipes.
ZHRB Stuurlieden cursus 2004 Stuurliedencursus ter voorbereiding op de Head en de Heineken.
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
Gestructureerd programmeren in C
<Mdl01 hoorcollege 1>
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Enumerate typedef struct union functiepointers 1.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Conditionele expressie

REKENEN.

Hoofdstuk 6: Controle structuren
Presentatie vergelijkingen oplossen Deel 2
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 8 Gestructureerd programmeren in C. 101 Array Meerdere variabelen van hetzelfde type kun je samennemen in één array variabele. Stel in een.
GESPRG Les 12 Gestructureerd programmeren in C. 152 Huiswerk Uitwerking void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last)
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Optellen en aftrekken tot 100 TE + E = TE mb
SWI cursus: ‘Inleiding programmeren in Java’
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
CONTROLESTRUCTUREN (DEEL 1)
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.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Tircms02-p les 7 systemcalls linux vervolg. Inleiding Onder /usr/include/linux staan bestanden die de linuxkernel o.a. gebruikt om drivers aan te spreken.
Vergelijkingen oplossen
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
Oppervlakte Rechthoek.
Tircms03-p les 7 Standaardfuncties. In header opnemen bijv: using namespace std // C++ // oude C.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Team #1 presents: Move-It. Ons team bestaat uit: Dean Schoemaker Pieter Sneep Tim Poot Justin Dijkshoorn Erik Smulders.
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,
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
1 februari 2016 PHP expressie statement. 1 februari 2010 Titel van de presentatie 2 Boole logica? Definitie De booleaanse operatoren zijn genoemd naar.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Informatie beoordelen If else Switch En Wiskunde.
Kennismaking met programmeren
Gameprogrammeren: Keuzeopdrachten
Wat is het grootste getal
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Gameprogrammeren: Recursie
Kennismaking met programmeren
Implementatie Zoekboom
Machten en vierkantswortels van gehele getallen
Nim, een strategisch spelletje
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Natuurlijke, gehele en rationale getallen
GGD en KGV.
Transcript van de presentatie:

Gestructureerd programmeren in C GESPRG Les 4

Beslissen

Beslissen Er zijn in C 3 beslisopdrachten: if if else switch

if Lees 2 gehele getallen in en druk de grootste af #include <stdio.h> int main(void) { int max, getal; printf("Geef een getal: "); scanf("%d", &max); printf("Geef nog een getal: "); scanf("%d", &getal); if (getal > max) { max = getal; } printf("Het maximum is: %d\n", max); fflush(stdin); getchar(); return 0;

Welke van deze twee programma’s vind jij beter? if else Lees 2 gehele getallen in en druk de grootste af #include <stdio.h> int main(void) { int a, b, max; printf("Geef een getal: "); scanf("%d", &a); printf("Geef nog een getal: "); scanf("%d", &b); if (a > b) { max = a; } else { max = b; printf("Het maximum is: %d\n", max); fflush(stdin); getchar(); return 0; Welke van deze twee programma’s vind jij beter?

Geven beide programmadelen dezelfde uitvoer als a = 1? Bij welke if hoort else ? if (a > 3) if (a < 2) printf("a\n"); else printf("b\n"); if (a > 3) if (a < 2) printf("a\n"); else printf("b\n"); Geven beide programmadelen dezelfde uitvoer als a = 1? Welke uitvoer?

Geven beide programmadelen dezelfde uitvoer als a = 1? Bij welke if hoort else ? if (a > 3) { if (a < 2) { printf("a\n"); } else { printf("b\n"); if (a > 3) { if (a < 2) { printf("a\n"); } else { printf("b\n"); Geven beide programmadelen dezelfde uitvoer als a = 1? Welke uitvoer?

switch Zet Nederlands toetscijfer om naar Amerikaans resultaat. Ga uit van: Nederlands Amerikaans 8, 9 of 10 A 7 B 6 C 5 D 0, 1, 2, 3 of 4 E

switch switch (cijfer) { case 10: case 9: case 8: letter = 'A'; break; letter = 'B'; break; case 6: letter = 'C'; break; case 5: letter = 'D'; break; default: letter = 'F'; break; }

if else Is deze else nodig? if (cijfer == 10 || cijfer == 9 || cijfer == 8) { letter = 'A'; } else if (cijfer == 7) { letter = 'B'; } else if (cijfer == 6) { letter = 'C'; else if (cijfer == 5) { letter = 'D'; else { letter = 'F'; Is deze else nodig?

Booleaanse operatoren And && Or || Not ! do { printf("Geef je cijfer: "); scanf("%d", &cijfer); } while (cijfer < 0 || cijfer > 10); Veel gemaakt fout: !(0 <= cijfer <= 10)

Short-circuit evaluation || && Bij het uitvoeren van de booleanse operatoren || en && wordt gestopt zodra de uitkomst bekend is. Als a deelbaar is door b dan … if (a % b == 0) … Gaat fout als b == 0 if (b != 0 && a % b == 0) … Gaat goed als b == 0 Dankzij short-circuit evaluation

Conversie naar waar en onwaar Een expressie wordt in C als dat nodig is impliciet (automatisch) omgezet naar waar of onwaar. Een expressie met de waarde 0 wordt onwaar. Een expressie met een waarde ongelijk aan 0 wordt waar. Dus: if (i) { printf("Hallo"); } Is hetzelfde als: if (i != 0) { printf("Hallo"); } Het is beter om expliciet te zeggen wat je bedoeld.

Programmeren == Moeilijk ? Schrijf een programma dat… Hoe bedenk je een programma? Stap voor stap… Stapgewijze verfijning http://bd.eduweb.hhs.nl/gesprg/tafels_stap_voor_stap.htm Programmeren = De computer vertellen wat hij moet doen, schreeuwen helpt niet!

Tafels stap voor stap Schrijf een programma dat een geheel getal 0 < n < 7 inleest en vervolgens de tafels van 1 t/m n naast elkaar afdrukt.

Stap 0: Bezint eer gij begint Snap je de opdracht? Bedenk mogelijke testgevallen. Bij de invoer 4 moet het programma de volgende uitvoer produceren: 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 10 x 1 = 10 10 x 2 = 20 10 x 3 = 30 10 x 4 = 40

Stap 1: Alle begin is moeilijk makkelijk. #include <stdio.h> /* © 2013 Harry Broeders */ int main(void) { /* Hier komt de code */ fflush(stdin); getchar(); return 0; }

Stap 2: Invoer. #include <stdio.h> /* © 2012 Harry Broeders */ /* Dit programma leest een geheel getal 0 < n < 7 en drukt vervolgens de tafels van 1 t/m n naast elkaar af */ int main(void) { int n; printf("Geef de waarde van n (1..6): "); scanf("%d", &n); printf("Test n = %d", n); fflush(stdin); getchar(); return 0; }

Stap 3: Controle op invoer. #include <stdio.h> int main(void) { int n; do { printf("Geef de waarde van n (1..6): "); scanf("%d", &n); } while(n < 1 || n > 6); printf("Test n = %d", n); fflush(stdin); getchar(); return 0; }

Stap 4. Eerste regel van de tafels afdrukken. #include <stdio.h> int main(void) { int n, tafel; do { printf("Geef de waarde van n (1..6): "); scanf("%d", &n); } while(n < 1 || n > 6); for (tafel = 1; tafel < n + 1; tafel = tafel + 1) { printf(" 1 x %d = %2d ", tafel, 1 * tafel); } printf("\n"); fflush(stdin); getchar(); return 0;

Stap 5: Alle 10 regel van de tafels afdrukken #include <stdio.h> int main(void) { int n, tafel, factor; // ... for (factor = 1; factor < 11; factor = factor + 1) { for (tafel = 1; tafel < n + 1; tafel = tafel + 1) { printf("%2d x %d = %2d ", factor, tafel, factor * tafel); } printf("\n");

Stap 6: Een laatste verbetering #include <stdio.h> int main(void) { int factor, tafel, n; do { printf("Geef de waarde van n (1..6): "); fflush(stdin); } while (scanf("%d", &n) != 1 || n < 1 || n > 6); // ...

Huiswerk Bestudeer C boek: Maak opdrachten: paragraaf 4.4. 9 en 33 van paragraaf 4.19.