pros2 les 11 programmeren en software engineering 2

15
PROS2 Les 11 Programmeren en Software Engineering 2

Upload: ivo-wouters

Post on 08-Jun-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROS2 Les 11 Programmeren en Software Engineering 2

PROS2 Les 11

Programmeren en Software Engineering 2

Page 2: PROS2 Les 11 Programmeren en Software Engineering 2

Datastructuren in CWerkgeheugen (PC en microcontroller):

Statisch (vaste grootte):Array.Struct.

Dynamisch (variabele grootte):List.Tree.…

Achtergrondgeheugen (PC):Files:

Text files.Binary files.

• Heb je al gehad• Krijg je nu• Krijg je later

Page 3: PROS2 Les 11 Programmeren en Software Engineering 2

Array in C

Alle elementen moeten van hetzelfde type zijn.

Een array variabele heeft een type, een naam en een grootte.float temperatuur[7];

Elk element heeft een index.Element kan gebruikt worden met

indexering.temperatuur[0]=13.7;

0 1 2 3 4 5 6

Page 4: PROS2 Les 11 Programmeren en Software Engineering 2

C-stringEen stukje tekst wordt in C een C-string

genoemd.Een vaste tekst wordt tussen " opgegeven."Dit is een C-string"

Een C-string eindigt met een NUL-karakter ('\0' is iets anders dan '0').

Een char array kan gebruikt worden voor het opslaan en bewerken van een C-string.

In de include file string.h zijn een groot aantal functies gedeclareerd waarmee je C-strings kunt bewerken.

Kijk voor meer info op BB!

Page 5: PROS2 Les 11 Programmeren en Software Engineering 2

struct in CElementen kunnen van verschillende typen

zijn.Een struct variabele heeft een naam en een

structuur.struct {

int uur, min, sec;float temp;

} meting;Elk element heeft een naam (membername).Element kan gebruikt worden met selectie.meting.temp=13.7;meting.uur=14;

uur min sec temp

Kijk voor meer info op BB!

Page 6: PROS2 Les 11 Programmeren en Software Engineering 2

typedefAls een array of struct type meerdere keren in

een programma wordt gebruikt dan kan de declaratie van het type en de definitie van variabelen worden gesplitst met een typedef.

typedef float WeekTemp[7];WeekTemp temperatuur;

typedef struct {int uur, min, sec;float temp;

} TempMeting;TempMeting meting;

Page 7: PROS2 Les 11 Programmeren en Software Engineering 2

Statische datastructurenArray kan structs bevatten.Struct kan array(s) bevatten.

typedef struct {char naam[80];int punten;

} Deelnemer;

typedef struct {Deelnemer speler[100];int aantalSpelers;

} Stand;

Page 8: PROS2 Les 11 Programmeren en Software Engineering 2

HuiswerkGegeven variabele:

Stand s; /* zie vorige sheet */

Neem aan dat deze variabele gevuld is met data.

s=leesData();

Schrijf een functie om de naam van de speler(s) met de meeste punten af te drukken.

printWinnaars(s);

Page 9: PROS2 Les 11 Programmeren en Software Engineering 2

Uitwerking

Zie BB voor het hele

programma

Page 10: PROS2 Les 11 Programmeren en Software Engineering 2

Tekst filesEen tekstfile bevat in ASCII gecodeerde data.Tekstfiles kunnen eenvoudig bewerkt

worden (b.v. met Notepad.)Tekstfiles kunnen ook met een C programma

eenvoudig aangemaakt, beschreven en uitgelezen worden.

Page 11: PROS2 Les 11 Programmeren en Software Engineering 2

Tekstfile maken in CEen FILE* verwijst naar een file.

fopen opent een file. "w" opent de file voor

schrijven (write).

fprintf schrijft in een file.

fclose sluit een file.

fopen geeft NULL terug als openen niet gelukt is.

Page 12: PROS2 Les 11 Programmeren en Software Engineering 2

Tekstfile lezen in C

"r" opent de file voor lezen (read).

fscanf leest uit een file.

fscanf geeft aantal correct ingelezen variabelen terug.

%79s leest maximaal 79 karakters in.

Page 13: PROS2 Les 11 Programmeren en Software Engineering 2

HuiswerkGegeven variabele:

Stand s; /* zie voorgaande sheet */

Schrijf een functie om deze variabele te vullen met de data uit de file stand.txt.

s=leesData();

Page 14: PROS2 Les 11 Programmeren en Software Engineering 2

Uitwerking

Zie BB voor het hele

programma

Page 15: PROS2 Les 11 Programmeren en Software Engineering 2

HuiswerkBestudeer:

Blackboard: C-strings.Structs.Tekstfiles.

C Boek:Paragraaf 10.2: C-strings.Paragraaf 12.3.1, 12.3.2, 12.4: Structs.Paragraaf 10.4: Tekstfiles.Paragraaf 12.1: Typedef.

Maak opgaven met wxDev!