Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.

Slides:



Advertisements
Verwante presentaties

Advertisements

H3 Tweedegraads Verbanden

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

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.

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.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
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.
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.
Conditionele expressie

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.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
Hoofdstuk 6: Controle structuren
Instructie Programmeren Task 5
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){
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
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.
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
CONTROLESTRUCTUREN (DEEL 1)
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.
Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor.
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.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Mail: Jan Zuurbier  Mail:
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
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.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Mail: (of Sheets en verdere info: Onderwerp: vervolg C
Tircms03-p les 7 Standaardfuncties. In header opnemen bijv: using namespace std // C++ // oude C.
CONTROLESTRUCTUREN (DEEL 1)
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Hoofdstuk 3 - Conditionele logica
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
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Maak, uitgaande van een MIDI file, een (klein) programma.
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
De laatste essentiele dingen.  Classes ◦ Syntax ◦ Constructors & Destructors  Header & Source Files ◦ Waar gebruiken we dit voor  Compiler Theorie.
18 Februari 2013 Where friends have access to your privates!
Robby de Robot. Javascript Tot nu toe gebruikt: – document.write(" Hello World "); – alert("tekst") – Toon een waarschuwingsvenster – prompt("tekst",
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Tiles in Tick Tick
Tinpro015b-les5 Invoer en Uitvoer.
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Gameprogrammeren: Tiles en File I/O in Tick Tick
Transcript van de presentatie:

tircms02-p les 4 Preprocessor In- en uitvoer Diversen

Preprocessor Een preprocessor faciliteit dient om de compiler van te voren te laten manipuleren met tekst voordat het eigenlijk compileren gebeurt. #Define AANTAL 1000 Nu wordt overal voor AANTAL 1000 ingevuld AANTAL heet macro De hele regel heet macrodefinitie #define identifier string

Preprocessor Voorbeeld #define max(a,b) ((a)>(b) ? (a) : (b) )  statement: y= 2 * max(i+1, j-1) +3;  Expansie y= 2 * ((i+1) > (j-1) ? (i+1) : (j-1)) +3  Haakjes zijn noodzakelijk Bij macro wordt de code in-line geplaatst

Preprocessor Bij een macro wordt de code in-line geplaatst dwz dat de macrocode in het programma geplaatst wordt Bij een functie wordt de code 1-malig in programma geplaatst Voordeel macro : is sneller dan functie Nadeel macro: het kost meer geheugen

Preprocessor #include “HULPTEKST” Nu wordt gezocht naar de file HULPTEKST in onze eigen directory, daarna in systeemdirectories #include Nu wordt alleen in de systeemdirectories gezocht.h zijn headerfiles #include regels kunnen genest zijn

In-en uitvoer Printf ( format-string, arg1, arg 2,..) formatstring bevat:  karakters, conversiespecificaties Conversiekarakters:  d,o,x,u,c,s,f,e,g Tussen % en conversiekarakter:  -teken, veldbreedte, een punt., precisie, l

Printf printf(“%-10.6s???%c\n”,”Vreemde dingen”,’!’); Geeft: Vreemd ???! zonder – teken geeft dit Vreemd???! De functiewaarde die afgegeven wordt is gelijk aan het aantal overgedragen karakters of negatief bij een foutmelding

Scanf scanf(formatstring, arg1, arg2, ….); formatstring bevat:  karakters, conversiespecificaties Conversiekarakters:  d,o,x,c,s,f Tussen % en conversiekarakter:  *, de maximale veldbreedte

Scanf int i,j,k; char str[6], ch; float x; scanf(“%c %d %f ++ %3d %2d %*d %s”, &ch, &i, &x, &j, &k,str); invoer: q abc geeft: ch =‘q’, i=123, x =3.14, j= 987, k=65, str=“abc\0”

Files 1. #include 2. main () 3. { 4. FILE *p, *q, *fopen(); 5. char ch; 6. p=fopen(“fff”, "r"); 7. q=fopen(“ggg”, "w"); 8. while (( ch=getc(p)) !=EOF) putc(ch, q); 9. }

EOF(ff f)? open file fff en ggg be gi n Schrijf karakter naar file ggg en d Lees kar uit file fff ja Flowchart

Files EOF = -1 ( 16 bit), eigenlijk checken op integer, maar char gaat in dit geval ook goed File is een type ( een structure) in stdio.h staat: typedef struct { … } FILE; Er dient een FCB (filecontrol block) te worden gemaakt. met FILE *p, *q, *fopen(); onstaan pointers naar FCB

Files Met p = fopen(“fff”,”r”); ontstaat een FCB ( er wordt een file geopend) De functiewaarde die fopen aflevert is een pointer naar gecreerde control block met ch = getc(p) wordt een karakter gelezen uit de file dmv pointer die afgeleverd wordt door fopen openen voor r,w,a

Files p file pointer file control block file werkgeheugendisk *pfff q*qggg

Files ch=getchar()  ch=getc(stdin) putchar(ch)  putc(ch, stdout) fgets(str,maxlen,p) leest 1 regel uit een file fputs(str,p) schrijft 1 regel naar een file gets(str) leest een regel van toetsenbord putst(str) schrijft regel naar beeldscherm

Goto goto ginds.... ginds: x = y +1; Met exit(0); wordt uit een functie gesprongen en alle files gesloten

Programma-argumenten 1. #include 2. FILE *openen 3. main(argc, argv) int argc; char *argv[]; 4. { FILE *pin1, *pin2, *puit, *fopen(); char ch; 5. if (argc !=4) 6. { printf(“3 argumenten vereist\n”’; exit(0);} 7. else 8. { pin1=openen(argv[1], “r”); 9. pin2=openen(argv[2], “r”); 10. puit=openen(argv[3], “w”); 11. while ((ch=getc(pin1)) !=EOF ) putc(ch,puit); 12. while ((ch=getc(pin2)) !=EOF ) putc(ch,puit); 13. }

Programma-argumenten 1. FILE *openen(pargv, s) char *pargv, *s ; 2. { FILE *p; 3. if (( p=fopen(pargv,s)) == NULL) 4. { printf(“er is een probleem met file 5. %s\n”, pargv); exit(1); 6. } 7. else return (p) 8. }

Programma-argumenten argc = argument count argv = argument vector op de command-line staat: kopieer in1 in2 uit De files in1 en in2 worden achter elkaar naar de file uit geschreven.

Programma-argumenten Na het intypen geldt: argc=4 argv[0] = “kopieer” argv[1] = “in1” argv[2] = “in2” argv[3] = “uit” Als er geen 3 argumenten zijn of de files niet bestaan wordt een foutmelding gegeven

Huiswerk les4 Maak de opgaven uit modulewijzer Maak de opgaven uit modulewijzer Maak de opgaven uit modulewijzer Bekijk vast de systemcalls van les 6