MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):

Slides:



Advertisements
Verwante presentaties

Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.
Objectgeoriënteerd Programmeren in C++

Universiteit Leiden Inleiding programmeren in C++ Life Science & Technology 16 februari


Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Algoritmen en Datastructuren (ALDAT)
PROS2 Les 12 Programmeren en Software Engineering 2.
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.
Arduino project.
Gestructureerd programmeren in C
PROS2 Les 11 Programmeren en Software Engineering 2.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.

Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.


Hoofdstuk 6: Controle structuren
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
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 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.
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
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
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
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.
Mail: (of Sheets en verdere info: Onderwerp: vervolg C
Tircms03-p les 7 Standaardfuncties. In header opnemen bijv: using namespace std // C++ // oude C.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
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.
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,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
Les 1: Zaterdag 10 mei 2014 Wim Peeters
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Een (vaste) melodie spelen op de PC speaker 
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets.
Instructie Programmeren Task 7
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
1 februari Web concepts formulieren. 2 File i/o (input) $filename = “FILE_IO.CSV” ;// naam van het bestand $filesize = filesize( $filename )
Bestanden Lezen Schrijven Afbeeldingen. Bestandstypen.txt.png eigen.
Gameprogrammeren: Objecten en geheugen
Hoofdstuk 9.2 Strings.
Letterfrequentie turven
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Tinpro015b-les5 Invoer en Uitvoer.
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
Arjan Egges Paul Bergervoet Wouter van Toll
Gameprogrammeren: Tiles en File I/O in Tick Tick
Software Development fundamentals
Gameprogrammeren: Arrays
Python – For loop + strings
Python – For loop + strings
Transcript van de presentatie:

MICPRG Les 11 Microcontroller Programmeren in C

112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte): Array. Struct. Dynamisch datastructuren (variabele grootte): List. Tree. … Achtergrondgeheugen (PC): Files: Text files. Binary files. Achtergrondgeheugen (microcontroller): Flash EEPROM Heb je al gehad Krijg je bij MICPRG Krijg je later

113 Array in C Alle elementen moeten van hetzelfde type zijn. Een array variabele heeft een type, een naam en een grootte. double temperatuur[7]; Elk element heeft een index. Element kan gebruikt worden met indexering. temperatuur[3] = 13.7; In elk hokje past een double temperatuur

114 C-string Een 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!

115 struct in C Elementen kunnen van verschillende typen zijn. Een struct variabele heeft een naam en een structuur. struct { int uur, min, sec; double temp; } meting; Elk element heeft een naam (membername). Element kan gebruikt worden met selectie. meting.temp = 13.7; meting.uur = 14; uurminsectemp Kijk voor meer info op BB! meting

116 typedef Als 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 double WeekTemp[7]; WeekTemp temperatuur; typedef struct { int uur, min, sec; double temp; } TempMeting; TempMeting meting;

117 Statische datastructuren struct kan array(s) bevatten. typedef struct { char naam[80]; int punten; } Deelnemer; Array kan struct s bevatten. typedef struct { Deelnemer speler[100]; int aantalSpelers; } Stand;

118 Huiswerk Gegeven 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);

void printWinnaars(Stand st) { if (st.aantalSpelers == 0) { printf("Er is geen winnaar.\n"); } else { int i, max; max = st.speler[0].punten; for (i = 1; i < st.aantalSpelers; i++) { if (st.speler[i].punten > max) { max = st.speler[i].punten; } printf("De winnaar(s) is(zijn):\n"); for (i = 0; i < st.aantalSpelers; i++) { if (st.speler[i].punten == max) { printf("%s\n", st.speler[i].naam); } 119 Uitwerking Zie BB voor het hele programma

120 Tekst files Een 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.

#include int main(void) { FILE* outfile; outfile = fopen("output.txt", "w"); if (outfile == NULL) { printf("File output.txt kan niet aangemaakt worden.\n"); } else { int i; for (i = 0; i < 10; i = i + 1) { fprintf(outfile, "Het kwadraat van %d is %d.\n", i, i * i); } fclose(outfile); printf("File output.txt is aangemaakt.\n"); } getchar(); return 0; } 121 Tekstfile maken in C Een 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.

#include int main(void) { char naam[80]; int punten; FILE* infile; infile = fopen("stand.txt", "r"); if (infile == NULL) { printf("File stand.txt kan niet gelezen worden.\n"); } else { while (fscanf(infile, "%79s%d", naam, &punten) == 2) { printf("Speler %s heeft %d punten.\n", naam, punten); } fclose(infile); } getchar(); return 0; } 122 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.

123 Huiswerk Gegeven variabele: Stand s; /* zie voorgaande sheet */ Schrijf een functie om deze variabele te vullen met de data uit de file stand.txt. s = leesData();

Stand leesData(void) { Stand st; FILE* infile = fopen("stand.txt", "r"); if (infile == NULL) { printf("File stand.txt kan niet gelezen worden.\n"); st.aantalSpelers = 0; } else { int i = 0, punten; char naam[80]; while (i < 100 && fscanf(infile, "%79s%d", naam, &punten) == 2) { strcpy(st.speler[i].naam, naam); st.speler[i].punten = punten; i++; } st.aantalSpelers = i; fclose(infile); } return st; } 124 Uitwerking Zie BB voor het hele programma 124

125 Huiswerk Bestudeer: Blackboard: C-strings. Structs. Tekstfiles. C Boek: Paragraaf 6.9 en 6.10: C-strings. Paragraaf 9.1: Typedef. Paragraaf 9.2, 9.3, 9.5 en 9.6: Structs. Paragraaf 11.3 en 11.4: Tekstfiles. Maak opgaven met Microsoft Visual Studio 2012.