Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,

Slides:



Advertisements
Verwante presentaties

Advertisements


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.

Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Algoritmen en Datastructuren (ALDAT)
Arduino project.
Gestructureerd programmeren in C
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.
Les 5 - onderwerpen Aansturen van vier 7-segment displays
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.

Instructie Programmeren Task 5
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 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Opg.1a: substring } String substring(int a) { int t; for (t=a; t
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
Deel I: Programmeertaal C 6. Arrays en Pointers
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Tellen.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Mail: Jan Zuurbier  Mail:
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
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  een MIDI track interpreteren, laten zien en afspelen.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Finite State Machine (Eindige.
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;
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag User-defined characters op de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB027 hardware : LEDs en displays.
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:
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
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 
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
Inleiding computersystemen en netwerken Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2.1 Programmeren (2.9) assembler,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets.
Instructie Programmeren Task 7
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.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  de track structuur van een MIDI file interpreteren.
1 februari Web concepts formulieren. 2 File i/o (input) $filename = “FILE_IO.CSV” ;// naam van het bestand $filesize = filesize( $filename )
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Small Basic Console deel 2
Codesystemen Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology.
Python – For loop + strings
Python – For loop + strings
Transcript van de presentatie:

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection, Unix filter tool style C arrays, C pointers

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 redirection $ kopieer lezen van toetsenbord schrijven naar beeldscherm $ kopieer <a.txt lezen uit de file a.txt en schrijven naar beeldscherm $ kopieer > b.txt lezen van toetsenbord en schrijven naar de file b.txt $ kopieer b.txt lezen uit de file a.txt en schrijven naar de file b.txt $ copieer b.txt lezen, via tussenstap wegschrijven

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Unix command-line style tools doe 1 ding, doe dat goed werk als filter niet interactief handig voor de ‘programmeur’ minder handig voor de ‘eindgebruiker’ wc : word count sort : sorteer unique : remove duplicates

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 GUI-style tools doe veel met 1 tool interactief, GUI handig voor de ‘eindgebruiker’ minder handig voor de ‘programmeur’ vaak geen command line IE / Netscape (print...)

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 C arrays, C pointers een char array is een verzameling (0..n) characters behalve bij het definieren wordt de lengte *niet* genoemd! een array wordt geindexeerd: a[ i ] een int pointer wijst naar een verzameling (0..n) ints naar hoeveel wordt nergens genoemd! een pointer wordt gedereferenced: *a met een pointer kan je rekenen, de ‘teleenheid’ is de omvang van het basistype (bv int)

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 C arrays, C pointers gebruik van een array char a[ 10 ]; for( i = 0; i < 10; i++ ){ a[ i ] = ’x’; } gebruik van een pointer char *p =...; for( i = 0; i < 10; i++ ){ *p = ’x’; p++; }

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 C pointers een pointer wijst uitzichzelf (nog) nergens naar int *p; *p = 15; /* geen idee waar de pointer heen wijst! */ een pointer kan wijzen naar een ‘gewone’ variabele int i; int *p = &i; *p = 15; /* OK */ p++; int *p = 15; /* fout! */

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 een array is een pointer? int a[ 100 ]; int *p; p = &a[ 0 ]; p = a; a = p; a[ 10 ] = 12; *( p + 10 ) = 12; *( a + 10 ) = 10; p[ 10 ] = 10; 1 regel is fout, de rest is goed!

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9 drie mogelijke implementaties van strlen a) int strlen( char s[] ){ int i = 0; while (s[i] != ‘\0’) i++; return i; } b) int strlen( char *s ){ int i = 0; while( *( s + i ) != ‘\0’){ i++ } return i; } c) int strlen( char *s ){ int i = 0; while( *s != ‘\0’){ s++; i++ } return i; }

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 oefening: zoek de 2 fouten if( ! strcmp( s, ’Hello’ )){ printf( ’de string is: Hello\n’ ); }

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 oefening: zoek de 3 fouten char * add( char *a, char *b ){ char r[ 132 ]; char *p = r; while( *a != ‘\0’ ){ *p++ = *a++; } while( *b != ‘\0’ ){ *p++ = *b++; } return r; }

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 Opdracht: ’strncpy’ Schrijf een implementatie van de string functie char *strncpy( char *dest, char *src, size_t n ); op de a) (=array) en c) (=pointer) manieren.

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 13 Werk voor volgende week Lees 5.1, 5.2, 5.3 Maak de opdracht