Download de presentatie
GepubliceerdLander Boender Laatst gewijzigd meer dan 9 jaar geleden
1
(of wouter.vanooijen@hu.nl)
Mail: (of Sheets en verdere info: Onderwerp: vervolg C Literatuur: C handboek Kernighan & Ritchie Academic Service ISBN Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
2
Wat er van u verwacht wordt
U bent (natuurlijk) aanwezig Neem de aangeven stof (boek, sheets) goed door U krijgt iedere week opgave(n); de opgave(n) van week N worden in principe op zijn laatst in week N+1 beoordeeld U maak de opgave(n) zelf U maakt de opgaven nauwkeurig, volgens de opgave Afsluitend tentamen, cijfer geldt alleen als alle opgaven voldoende zijn Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3
Materiaal (?) Boek: C handboek, Kernighan & Ritchie
USB memory stick (floppy?) Handouts DevC++ thuis installeren: Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
4
Onderwerpen voor vandaag
GUI command line redirection DevCpp Characters Opgave: ”+13” Command line parameters Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
5
GUI programa’s interactief, vaak WIMP GUI doe veel met 1 tool
handig voor de ‘eindgebruiker’ minder handig voor de ‘programmeur’: vaak geen command line IE / Netscape (print ...) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
6
command-line tools (unix style)
doe 1 ding, doe dat goed werk als filter (1 stap in een lopende band) niet interactief handig voor de ‘programmeur’ als onderdeel van een geheel minder handig voor de ‘eindgebruiker’ words : splits een text in regels van 1 woord lines : give line count sort : sorteer unique : remove duplicates from a sorted list grep x : filter (verwijder) alles behalve x Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
7
Command line opstarten
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
8
‘command box’ / ‘dos prompt’
”C:\ ………… T03202>” is de prompt ”C:\ ………… T03202” is de huidige directory Commando’s zijn bv: X: cd directory exit Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
9
redirection work> kopieer
lezen van toetsenbord schrijven naar beeldscherm Einde invoer geeft je aan met <CTRL-Z> <RETURN> work> kopieer <a.txt lezen uit de file a.txt en schrijven naar beeldscherm work> kopieer > b.txt lezen van toetsenbord en schrijven naar de file b.txt Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
10
redirection work> kopieer <a.txt >b.txt
lezen uit de file a.txt en schrijven naar de file b.txt work> kopieer < a.txt | sorteer >b.txt txtkopieer < a.txt > temp sorteer < temp > b.txt lezen, via tussenstap wegschrijven Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
11
gebruik van Bloodshed DevC++
file > new > project: select ’console application’ give name select ’C project’ select ’make default language’ Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
12
gebruik van Bloodshed DevC++
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
13
gebruik van DevC++ Als Dev-C++ een programma runt wacht het niet aan het einde van het programma Als je je programma wilt testen vanuit DevC++ voeg dan voor de ’return 0’ toe: system( ”pause” ); Als je het programma vanaf de command line runt (en dat is hier uiteindelijk de bedoeling) is dit juiste weer niet de goed! Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
14
characters Characters (tekens) worden opgeslagen volgens de ASCII code
ASCII is 7 bits, hoogste bit is standaard 0 Constanten: tussen enkele quotes: ’a’ Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
15
ASCII tabel Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
16
characters Let op: ’0’ is iets heel anders dan 0 char x; x = 0;
Welke integer waarde staat er nu in x? x = ’0’; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
17
Speciale characters ’\n’
Dit is het teken dat zorgt dat het schrijven verder gaat aan het begin van de volgende regel (er zijn er nog veel meer) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
18
characters Datatypes in C: signed char, unsigned char, char
char : is een van beiden, de compiler mag kiezen Welke range kan je veilig gebruiken als je een char gebruikt? Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
19
characters Chars zijn (kleine) integers, je kan er mee rekenen char x;
x = ’a’; x = x + 2; Welk bitpatroon staat er nu in x? Welk ASCII character stelt dat bitpatroon voor? Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
20
Character input / output : stdio.h
#include <stdio.h> int c; putchar( c ); c = getchar(); let op: getchar() geeft bij einde invoer EOF terug EOF is een waarde die buiten de char ranges valt geeft dus een int terug, geen char Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
21
Voorbeeld : copy input to outut
#include <stdio.h> int main( int argc, char *argv[] ){ int x; x = getchar(); while( x != EOF ){ putchar( x ); } return 0; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
22
Opdracht 1 ”+13” Maak een programma dat zijn invoer weer wegschrijft naar de uitvoer, maar met iedere kleine letter vervangen door de letter 13 plaatsen verderop in het alfabet. gebruikt wrap-around, dus ’z’ + 1 wordt ’a’ een letter die niet een kleine letter is niet veranderen, gewoon onveranderd wegschrijven Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
23
test Hoe test je ”+13”? Je hebt een invoertekst nodig, er is een file die je net hebt zitten maken. Als je die als invoer aanbiedt moet er leuke rotzooi uitkomen. +13 en dan nog een keer 13 geeft …hoe doe je dat met behulp van redirection? En dan (als je een automaat kan vinden) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
24
Layout neem een conventie naar keuze, maar wees consequent!
if( b > a ){ a = b; } if( b > a ) { Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
25
array Een array is een reeks (lijst?) dingen
heeft een vaste omvang (het aantal dingen is vast) Alle dingen zijn van het zelfde type (bv alleemaal chars) Een array heeft maar 1 index (dimensie): char woord[ 32 ]; Index loopt vanaf 0: woord[ 0 ] = ’a’; woord[ 31 ] = ’a’; Buiten je grenzen schrijven: woord[ -1 ] = ’a’; woord[ 32 ] = ’a’; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
26
array Je kan een array van arrays maken: char regel[ 100 ][ 32 ];
regel[ 0 ][ 0 ] = ’a’; regel[ 99 ][ 31 ] = ’a’; Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
27
string Een array van characters wordt een string genoemd.
Een string constante heeft dubbele quotes: ”hello world” De lengte van een string variable kan van de initiele waarde worden afgeleid: char regel[] = ”hello world”; Standaard wordt een string constante door de compiler afgesloten met een ’\0’ character Hoeveel bytes neemt de string ”Hello world” in beslag? Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
28
String output printf( format, .... )
De format string bepaald of en wat voor parameters er nog na moeten komen ‘gewone’ tekens in format worden gewoon geprint printf( ”Hello\nworld!” ); Wat print deze regel (precies)? Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
29
String output %d in de format vereist een integer parameter: int x;
printf( ”%d kleine negertjes”, x ); %s in de format vereist een string parameter: printf( ”%s world”, ”Hello” ); printf( ”de regel is: [%s]”, regel ); Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
30
Command line parameters
int main( int argc, char **argv ){ … } argc = aantal parameters argv = array van parameters, iedere parameter is een string = een array van characters argv[ 1 ] = eerste parameter argv[ 1 ][ 0 ] = eerste letter van eerste parameter Wat is hier onlogisch? Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
31
Opdracht 2 ”parameters”
Maak een programma dat zijn parameters afdrukt, precies in dit formaat: Program name : Project1.exe Number of parameters : 2 Parameter : ’hello’ Parameter : ’world’ Print zoveel ‘parameter N’ regels als er parameters zijn. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
32
Werk voor volgende week
Neem de sheets nog eens door Formuleer vragen over wat je niet begrijpt Maak (voor zover nog niet klaar) de opdrachten af Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.