Slides:



Advertisements
Verwante presentaties
PROS2 Les 13 Programmeren en Software Engineering 2.
Advertisements



PSD Basisstructuren programmeren.

HM-ES-th2 Les 9 en 10 Electronic System Level Design and Verification.

Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Gestructureerd programmeren in C
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
PROS2 Les 11 Programmeren en Software Engineering 2.
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.

Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.

Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Les 2 Basisbouwstenen (deel 1)
Frank Stalpers en Ad Baars
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){
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 9 Gestructureerd programmeren in C dimensionale array Array van array’s int i = 31; int a[4] = {7, 23, 6, 2}; int m[2][4] = { {1, 1,
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.
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
PHP functies.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
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
P. 1 Deel I: Programmeertaal C 4. Functies en Macro’s Prof.Dr.Ir. Filip De Turck.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
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.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  Oefening: melodie Klas EV2B: week.
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.
Vorige week: Paragraaf 8.1 DEZE WEEK: Een na laatste les voor de toets! Volgende week herhaling van alle stof. Daarom nu zoveel mogelijk oefenen met de.
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,
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Objecten en geheugen
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Herhalingen
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Aanroep van een methode voert opdrachten uit in de body daarvan
Hoofdstuk 17 Breuken basis. Hoofdstuk 17 Breuken basis.
Python – For loop + strings
Python – For loop + strings
Transcript van de presentatie:

Gestructureerd programmeren in C GESPRG Les 5

Verdeel en heers

Problemen bij grotere prog’s Programma wordt heel lang  programma opsplitsen in delen maakt het duidelijker. Sommige stukken code komen meerdere keren in het programma voor (b.v. inlezen van een positief getal + controle).  slecht voor de onderhoudbaarheid. Deel van een programma is niet eenvoudig te gebruiken in een ander programma.  slecht voor de herbruikbaarheid.

Functionele decompositie Programma opdelen in stukken (functies). Deze functies kunnen meerder keren worden aangeroepen. Goed voor aanpasbaarheid en herbruikbaarheid.

Schrijf een functie om 3 regels over te slaan Voorbeeld int main(void) { … printf("\n"); return 0; } Sla 3 regels over Sla 3 regels over Schrijf een functie om 3 regels over te slaan

Deze functie geeft niets terug en heeft geen parameters (zie verderop) Voorbeeld void sla3RegelsOver(void) { printf("\n"); } int main(void) { … sla3RegelsOver(); return 0; Functie definitie void betekent leeg Deze functie geeft niets terug en heeft geen parameters (zie verderop) Functie aanroep Functie aanroep

Voorbeeld Functie declaratie (functie prototype) Functie aanroep int main(void) { void sla3RegelsOver(void); … sla3RegelsOver(); return 0; } void sla3RegelsOver(void) { printf("\n"); Functie declaratie (functie prototype) Functie aanroep Functie aanroep Functie definitie

Schrijf een functie om een aantal regels over te slaan Voorbeeld int main(void) { … printf("\n"); return 0; } Sla 3 regels over Sla 4 regels over Schrijf een functie om een aantal regels over te slaan

Voorbeeld parameter lokale variabele void slaRegelsOver(int aantal) { int teller; for (teller = 0; teller < aantal; teller = teller + 1) { printf("\n"); } int main(void) { … slaRegelsOver(3); slaRegelsOver(4); return 0; lokale variabele Bij aanroep van de functie wordt de waarde van het argument gekopieerd naar de parameter (call by value) argument argument

Voorbeeld (zo moet het niet!) int aantal; void slaRegelsOver(void) { int teller; for (teller = 0; teller < aantal; teller = teller + 1) { printf("\n"); } int main(void) { … aantal = 3; slaRegelsOver(); aantal = 4; slaRegelsOver(); globale variabele Waarom is het verkeerd om globale variabelen te gebruiken?

Globale variabelen

Voorbeeld Lees een geheel getal en controleer op een minimale en maximale waarde. int leesGetal(int min, int max) { int getal; do { printf("Geef een getal [%d..%d]: ", min, max); scanf("%d", &getal); } while (getal < min || getal > max); return getal; int main(void) { int toetscijfer = leesGetal(1, 10); … Na afloop van de functie wordt de waarde van het return statement gekopieerd naar de functieaanroep (return by value)

Huiswerk Bestudeer C boek: Maak opdrachten: paragraaf 1.7. paragrafen 5.1 t/m 5.5. Maak opdrachten: 1, 2 en 3 van paragraaf 5.17.