Mail: (of Sheets en verdere info: Onderwerp: vervolg C

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.

Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Workshop Nieuwe begroting
Ronde (Sport & Spel) Quiz Night !
Arduino project.
Gestructureerd programmeren in C
Practica Computerlinguistiek Tekst en uitleg:
PROS2 Les 11 Programmeren en Software Engineering 2.
Datastructuren Analyse van Algoritmen en O

1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
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.
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
Werken aan Intergenerationele Samenwerking en Expertise.
Talstelsels, rekenen en rekenschakelingen
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
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:
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Het werken met portfolio
2 januari 2009Nieuwjaarsreceptie "Meule wal straete" 1 Nieuwjaarsreceptie 2 januari 2009 Eerste bijeenkomst van de bewoners van de “Meule wal straete”
De financiële functie: Integrale bedrijfsanalyse©
Even voorstellen : Groep 3b
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
ZijActief Koningslust
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 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
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.
Onderwerp: PIC assembler programmeren
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,
1 XSLT processing & control Datamodellering 2006.
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.
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 
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.
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.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  de track structuur van een MIDI file interpreteren.
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Python – For loop + strings
Python – For loop + strings
Transcript van de presentatie:

(of wouter.vanooijen@hu.nl) Mail: wouter@voti.nl (of wouter.vanooijen@hu.nl) Sheets en verdere info: www.voti.nl/hvu/D3ESOT1 Onderwerp: vervolg C Literatuur: C handboek Kernighan & Ritchie Academic Service ISBN 90 62 334 881 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

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

Materiaal (?) Boek: C handboek, Kernighan & Ritchie USB memory stick (floppy?) Handouts DevC++ thuis installeren: http://www.bloodshed.net/devcpp.html Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

Onderwerpen voor vandaag GUI  command line redirection DevCpp Characters Opgave: ”+13” Command line parameters Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

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

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

Command line opstarten Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

‘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

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

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

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

gebruik van Bloodshed DevC++ Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

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

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

ASCII tabel Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Opdracht 2 ”parameters” Maak een programma dat zijn parameters afdrukt, precies in dit formaat: Program name : Project1.exe Number of parameters : 2 Parameter 1 : ’hello’ Parameter 2 : ’world’ Print zoveel ‘parameter N’ regels als er parameters zijn. Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology

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