De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Wouter van Ooijen Mail:

Verwante presentaties


Presentatie over: "Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Wouter van Ooijen Mail:"— Transcript van de presentatie:

1 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Wouter van Ooijen Mail: Jan Zuurbier  Mail: Sheets en verdere info: Onderwerp: C programmeren voor niet-C programmeurs Literatuur:C handboek Kernighan & Ritchie Academic Service ISBN

2 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 Wat er van u verwacht wordt U bent (op tijd!) aanwezig Theorie in D105; praktijk in 3009A Neem de aangeven stof (boek) goed door U krijgt iedere week een opgave; de opgave(n) van week N wordt op zijn laatst aan het begin van week N+1 getoond ter beoordeling U maak de opgave(n) zelf Afsluitend tentamen, cijfer geldt alleen als de opgaves voldoende zijn (> 5.5) (tbd: opgaves 30%?)

3 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Verplichte aanschaf Boek: C handboek, Kernighan & Ritchie Knoppix CD: bij je docent, E 1.00, copieren mag USB memory stick (floppy mag ook, maar op eigen risico)

4 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 Wat is C? C ligt zeer dicht bij de processor C is een taal van weinig woorden C kan je makkelijk aanvullen met assembler C is de taal van DSP en Micro´s C is portabel en zeer flexibel C is zeer krachtig C is modulair

5 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 Maar C is ook: De taal om de meest verschrikkelijke fouten te maken zonder dat je het in de gaten hebt De taal waarmee je ongemerkt de boel kunt verzieken De taal van de onbegrijpelijke foutmeldingen De taal van de onleesbare programma´s De taal die je tot wanhoop kan drijven

6 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 Waarom C?  C haalt het uiterste uit de computer C is oorspronkelijk bedacht als alternatief voor assembler en ‘machine-afhankelijke’ hogere programmeertalen, voor het schrijven van een ‘machine-onafhankelijke’ Unix ”C is de beste assembler die er bestaat.”

7 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 Waarom *geen* C?  C haalt het uiterste uit de computer! Maar het vergt ook het uiterste van de programmeur  Java / Python / Tcl / Perl / Delphi /... C assembler solderen nieuwe chip maken er is geen ‘beste programmeertaal/gereedschap’ maar er zijn wel verschillende toepassingsgebieden

8 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 Onleesbaar schrijven in C #define P(X)j=write(1,X,1) #define C 39 int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,- 1,C},*b=N, *d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0; s =0&&k =16!=M[ k]>=16))a[f++ ]=s;if(f){f=M[e=m[s=a[rand()/( /f)]]+g];j=j

9 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9 C syntax lijkt op Java - loops (of eigenlijk andersom) while( Boolean expression ) { statement(s) } do { statement(s) } while ( Boolean expression ); for( initialisation; termination condition; incrementing expr ) { statement(s) }

10 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 C syntax lijkt op Java - conditionals (of eigenlijk andersom) if( Boolean expression ){ statement(s) } if( Boolean expression ){ statement(s) } else { statement(s) } switch( integer expression ){ case constant integer expr: statement(s) break;... default: statement(s) break; }

11 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 C syntax lijkt op Java (of eigenlijk andersom) maar geen:  exception handling  classes  break met label IO via

12 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 12 Layout neem een conventie naar keuze, maar wees consequent! if( b > a ){ a = b; } if( b > a ) { a = b; } if( b > a ) { a = b; }

13 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 13 char data type in C is een char gewoon een getal ’A’ + 1 == ’B’ ASCII: ’a’..’z’, ’A’.. ’Z’, ’0’..’9’, ’ ’ speciale tekens: bv ’\n’

14 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 14 arrays Een array heeft een vaste omvang Een array heeft maar 1 dimensie char woord[ 32 ]; char regel[ 100 ][ 32 ]; Index loopt vanaf 0: woord[ 0 ] = ’a’; woord[ 31 ] = ’a’; Buiten je grenzen schrijven: woord[ -1 ] = ’a’; woord[ 32 ] = ’a’;

15 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 15 input / output : Stdio.h putchar( c ); printf( string, expressie(s) ); bv: printf( “n=%d, m=%d”, n, m ); c = getchar(); let op: geeft een int terug, geen char geeft bij einde invoer EOF terug

16 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 16 Command line parameters int main( int argv, char **argc ){ … } argc = aantal parameters argv[ 1 ] = eerste parameter argv[ 1 ][ 0 ] = eerste letter van eerste parameter  Wat is hier onlogisch?

17 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 17 "Hello world!" #include informatie over de standaard bibliotheek in het programma opnemen. int main( int argc; char **argv )Definieer de functie main. Start altijd als eerste. Programma heeft altijd een main. {De statements van main staan tussen de accoladen in compound. printf( ”Hello world!\n” );Main roept een uit stdio.h een standaardfunctie aan printf return 0;Deze functie heeft de returnwaarde 0 }Einde van main. Accolade sluiten.

18 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 18 Een zeer simpel hello.c programma #include int main( int argc, char **argv ) { printf(”Hello world!\n”); return 0; } Kan worden gecompileerd door: gcc –Wall hello.c –o hello en worden geexecuteerd door:./hello

19 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 19 gebruik van Knoppix CD erin en (her) opstarten click onderaan op Konsole (beeldscherm met schelp) typ: nedit & programma intypen, saven als hello.c in de console window: gcc –Wall hello.c –o hello hello

20 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 20 gebruik van Knoppix – USB stick commando’s: mkdir usb sudo mount /dev/sda usb Je hebt nu een subdirectory usb waarin je stick ‘zit’ Maar… de ’owner’ is root, dus voor ieder commando moet je ’sudo’ zetten: sudo cp opgave1.c usb

21 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 21 Opdracht 1 ’hello world!’ Start een systeem op Voer het programma hello.c in Compileer het programma Executeer (run) het programma

22 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 22 Opdracht 2 ’Cesar’ Maak een programma dat zijn invoer weer wegschrijft als uitvoer, maar met iedere letter vervangen door de letter N plaatsen verderop. N wordt bepaald door de letter die als command- line parameter, wordt meegegeven, waarbij a=0, b=1, etc. Let op: –gebruikt wrap-around, –kleine letters blijven kleine letters, etc –niet-letters niet veranderen

23 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 23 Opdracht 3 ’omkeren’ Maak een programma dat zijn invoer weer wegschrijft als uitvoer, maar met ieder woord achterstevoren. –Neem als maximum woordlengte 10. –Zorg dat je programma niet uit dat array kan lopen. –Zorg dat je programma zijn eigen inverse is.

24 Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 24 Werk voor volgende week Koop het boek en een UsbStick Lees hoofdstuk 1 Maak (voor zover nog niet klaar) de opdrachten af Bewaar je opdrachten op je UsbStick


Download ppt "Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Wouter van Ooijen Mail:"

Verwante presentaties


Ads door Google