4 Invoer en uitvoer. 4.1 Toegang tot de standaardbibliotheek

Maat: px
Weergave met pagina beginnen:

Download "4 Invoer en uitvoer. 4.1 Toegang tot de standaardbibliotheek"

Transcriptie

1 4 Invoer en uitvoer Strikt genomen maken invoer- en uitvoerfaciliteiten geen deel uit van de taal C, zoals dat in FORTRAN wel het geval is, waar de statements READ en WRITE als deel van de taal zijn gedefinieerd. Toch moeten echte programma's met de buitenwereld communiceren. In dit hoofdstuk bespreken we een deelverzameling van de bibliotheek voor standaard-i/0 (input/output), bestaande uit een verzameling functies die bedoeld zijn als standaardfaciliteit voor invoer en uitvoer. We zullen hier niet de hele I/O-bibliotheek behandelen. We beperken ons tot vier functies die met de terminal van de gebruiker communiceren. Dat is voldoende voor het schrijven van volledige werkende programma's. In hoofdstuk 14 zullen we op I/0 terugkomen en programma's bekijken die werken met data die in computerfiles staan. 4.1 Toegang tot de standaardbibliotheek Als een C-programma wordt uitgevoerd, worden door het besturingssysteem automatisch drie files geopend voor gebruik door dat programma. Die files zijn standaardinvoer, standaarduitvoer en standaardfout. Het is de bedoeling dat normale invoer door het programma uit de standaardinvoer wordt gelezen. In een interactieve omgeving zal de standaardinvoer normaal gekoppeld zijn aan de terminal (het toetsenbord) van de gebruiker. Normale uitvoer wordt naar de standaarduitvoer geschreven en dat zal normaal ook de terminal (het beeldscherm) van de gebruiker zijn. Tenslotte wordt er nog een uitvoerfile geopend. Het is de bedoeling dat eventuele foutmeldingen die het programma oplevert naar deze standaardfoutfile worden geschreven. In dit hoofdstuk houden we ons alleen bezig met programma's die met de standaardinvoer en - uitvoer werken. In hoofdstuk 14, waar invoer en uitvoer via files wordt behandeld, bestuderen we de files standaardinvoer, standaarduitvoer en standaardfout nader. In elke bronprogrammafile die naar een functie uit de standaard-i/o-bibliotheek verwijst, moet aan het begin de regel #include <stdio.h> voorkomen. Strikt genomen is dit niet helemaal waar, want alleen bepaalde functies uit deze bibliotheek hebben informatie nodig die in de headerfile stdio.h staan. Maar als we deze regel altijd opnemen, hoeven we niet te onderzoeken of het nodig is of niet. Een nauwkeurige beschrijving van deze statement #include geven we in het volgende hoofdstuk. Hier is het voldoende te zeggen dat een file met de naam stdio.h bepaalde dingen definieert die de standaard-i/o-bibliotheek nodig heeft. Daar worden bijvoorbeeld de standaardinvoer, 1

2 standaarduitvoer en standaardfout gedefinieerd. Deze gegevens worden vanuit deze headerfile in het toepassingsprogramma opgenomen. 4.2 Geformatteerde uitvoer Geformatteerde regels uitvoer worden geproduceerd met de functie printf uit de standaard- I/O-bibliotheek. We hebben de functie printf in hoofdstuk 2 al informeel gebruikt. De volledige en algemene beschrijving van printf luidt: printf(formaat, argument1, argument2,... ); De functie printf formatteert de argumenten en drukt ze in de standaarduitvoer af. De argumenten zijn de expressies die de waarden produceren die moeten worden afgedrukt. De weergave van deze argumenten wordt geregeld door de formatteringsstringformaat. Deze string (zie paragraaf 3.4) bevat twee soorten informatie: gewone karakters, die gewoon in de uitvoer worden gekopieerd, en conversiespecificaties, die de argumenten van printf converteren en afdrukken. In het eenvoudigste geval heeft printf een formaatstring zonder conversie en geen argumenten. In dat geval wordt de string letterlijk naar de standaarduitvoer gekopieerd: printf("een eenvoudige mededeling.\n"); Het resultaat van deze statement is dat de inhoud van de formaatstring in de standaarduitvoer terecht komt. Omdat de formaatstring een newline-symbool als laatste af te drukken karakter bevat, verschijnt latere uitvoer vanaf de linker kantlijn van de regel die na deze uitvoer komt. En deze uitvoer komt na eventuele eerdere uitvoer. Voor elk argument van printf moet een corresponderende conversiespecificatie in de formaatstring staan. Er moet precies het juiste aantal argumenten van de juiste typen zijn, die met de conversies overeenkomen; anders is het resultaat van het uitvoeren van printf onvoorspelbaar. Als een van de conversiespecificaties in de formaatstring onjuist is geformuleerd, is het effect ook onvoorspelbaar. Een conversiespecificatie in de formaatstring begint met het procentteken Daarna komt een reeks van nul of meer opties van de conversie. De specificatie eindigt met een conversieoperator, die als één karakter wordt genoteerd. De volledige definitie voor een conversiespecificatie is: 2

3 Alleen het procentteken en de uit één karakter bestaande conversie-operatie moeten aanwezig zijn. De andere velden zijn optioneel (opt). Verder hebben niet alle combinaties van velden betekenis. De precisiespecificatie regelt bijvoorbeeld het aantal decimale plaatsen dat in een decimaal getal wordt afgedrukt. Dit is een zinloos gegeven als er een integer waarde wordt geformatteerd en afgedrukt. We verkennen in deze paragraaf niet alle mogelijke combinaties. Het zijn er gewoon te veel. We geven hier een uitleg van een aantal voorbeelden van de beginselen van geformatteerde uitvoer. Een minimale conversiespecificatie bestaat uit het procentteken en een conversie-operatie. Deze laatste wordt genoteerd als een van de karakters uit volgende tabel. Het procentteken wordt gebruikt als representatie van het procentteken zelf, omdat dit in formaatstrings verder gereserveerd is voor conversiespecificaties. De uitvoer van printf("de korting bedraagt 10%%\n"); is De korting bedraagt 10% Tabel 4-1 bevat een beknopte beschrijving van elke operatie en is gemakkelijk om de werking even snel op te zoeken. Daarna volgen enkele voorbeelden. Conversieoperatie Toepassing d, i conversie van int naar signed decimaal getal u conversie van int naar unsigned decimaal getal 0 conversie van unsigned naar unsigned octaaf getal x, X conversie van int naar unsigned hexadecimaal getal c conversie van int naar één karakter s conversie naar string f conversie naar signed decimaal floating-point getal (met komma) e, E conversie naar signed decimaal floating-point getal (wetenschappelijke notatie) g, G conversie naar signed decimaal floating-point getal p conversie naar pointer n aantal geschreven karakters Tabel 4-1 Conversie-operaties bij gebruik van printf 3

4 Een argument expressie die bij evaluatie een integer waarde oplevert, wordt geformatteerd met de conversie-operator d. Als de declaraties en toekenningen int a=10, b=15; gelden, produceert de functieaanroep printf ("De som van %d en %d is %d. \n", a, b, a+b); de uitvoer De som van 10 en 15 is 25. De conversie-operatie %d zorgt ervoor dat de waarde van het corresponderende argument naar een signed decimaal getal wordt geconverteerd. Elk voorkomen van %d verbruikt één argument. Het argument moet van type int zijn. De geconverteerde waarde is een reeks decimale cijfers. De reeks is de kortste die nodig is om de waarde af te drukken. De waarde van variabele a (10) vereist bijvoorbeeld twee karakterposities in de uitvoerstroom. In een conversiespecificatie kan ook een minimale veldbreedte staan. In zijn eenvoudigste vorm bestaat deze uit een unsigned decimale integer constante. Als het argument minder karakters oplevert dan de opgegeven veldbreedte, worden de karakters rechts in het veld uitgelijnd en aan de linkerkant met spaties aangevuld. De functieaanroep printf ("De som van %d en %d is %4d \n", a, b, a+b); produceert als uitvoer De som van 10 en 15 is 25 (nota: drie blanco s tussen is en 25!) waarbij de waarde van de expressie a + b wordt weergegeven in een veld met een breedte van vier karakterposities. Maar als de geconverteerde waarde van het argument meer karakters omvat dan de opgegeven veldbreedte, wordt het veld voldoende verbreed om plaats te maken voor de af te drukken waarde. De waarde wordt niet afgekapt, maar de geformatteerde uitvoer ziet er nu anders uit dan verwacht. Zo levert het voorbeeld printf ("De som van %d en %1d is %3d. \n, a, b, a+b); als uitvoer De som van 10 en 15 is 25. 4

5 De conversiespecificatie die bij het argument b hoort, is %1d. Dit zegt dat de waarde moet worden afgedrukt in een veld met breedte 1, maar aangezien de geconverteerde waarde van het argument een veld met breedte 2 nodig heeft, heeft deze grotere breedte voorrang. Floating-point waarden worden met de conversiespecificatie %f weergegeven. De geconverteerde waarde is een reeks decimale cijfers met daarin een decimale punt, maar hoogstens zoveel als nodig is voor het representeren van de waarde. Als er geen precisie wordt gespecificeerd, wordt er uitgegaan van een precisie van zes decimale plaatsen. Als de declaraties en toekenningen float x, y; x = 1.234; y = 56.78; gelden, produceert printf ("%f afgetrokken van %f is %f \n" y, x, x-y); de uitvoer afgetrokken van is De minimale veldbreedte en de precisie kunnen worden opgegeven als twee unsigned integer constanten gescheiden door een punt. Deze elementen zijn beide optioneel. Als de precisie niet wordt opgegeven, wordt de punt weggelaten en wordt de standaardprecisie 6 aangehouden. Zo nodig kan de geconverteerde waarde worden afgerond. Het voorbeeld printf ("%5.2f afgetrokken van %4.2f is %7.2f \n", y, x, x-y); geeft als uitvoer afgetrokken van 1.23 is Tenslotte laten we zien hoe de formattering van een string wordt geregeld. De vereiste conversie-operatie is %s. Als er geen veldbreedte wordt opgegeven, worden de karakters van de string afgedrukt in het kleinste benodigde veld: printf ("[%s] \n", "Hallo allemaal"); levert [Hallo allemaal] 5

6 Een veldbreedte wordt gerepresenteerd als een unsigned decimale integer constante voorafgaand aan de conversie-operatie. De string wordt rechts uitgelijnd en aan de linkerkant met spaties aangevuld: printf ("[%20s] \n","hallo allemaal"); levert [ Hallo allemaal] In geen van de voorbeelden is tot nu toe een vlagkarakter gebruikt. Vlagkarakters wijzigen de betekenis van de hoofdconversie-operatie. In alle voorbeelden waarin de geconverteerde waarde minder karakters beslaat dan de expliciete veldbreedte, wordt de waarde rechts uitgelijnd in het veld en aan de linkerkant met spaties aangevuld. Door een koppelteken als vlagkarakter aan de conversiespecificatie te laten voorafgaan, kunnen we de waarde links laten uitlijnen en aan de rechterkant met spaties laten aanvullen: printf ("[%-20s] \n", "Hallo allemaal"); levert [Hallo allemaal ] Samenvattend: Om een variabele van een bepaald type af te drukken, is een formaat nodig. In volgende tabel geven we voor de meest voorkomende types het overeenkomende (basis)formaat. De parameters x,., en y kunnen weggelaten worden. Type formaat De x komt steeds overeen met een minimale veldbreedte. De y staat int %xd eventueel voor het aantal cijfers na de short int %xhd komma. long int %xld float %x.yf %x.ye %x.yg double %x.ylf %x.yle %x.ylg long double %x.ylf %x.yle %x.ylg Merk op dat wat hier voor %d genoteerd is, ook geldt voor U, 0 en x. Dit zijn natuurlijk minder gebruikte getalvoorstellingen en types (voor U -unsigned). De lezer (programmeur) moet zich strikt aan deze voorschriften houden, anders worden bijvoorbeeld getallen compleet verkeerd afgedrukt (of ingelezen, zie volgende paragraaf) 6

7 4.3 Geformatteerde invoer De functie scanf is de tegenhanger van printf. De stroom invoerkarakters uit de standaardinvoer wordt ontleed aan de hand van een besturingsstring en de ingevoerde waarden worden aan programmavariabelen toegekend. De functieaanroep heeft de vorm scanf(formaat, argument1, argument2,...); Elk argument is het adres van een geheugenlocatie die de bijbehorende invoerwaarde moet krijgen. Elk argument moet dus het adres van de ontvangende variabele zijn. Dit wordt in C genoteerd door middel van de adresoperator, weergegeven als het ampersand-teken (&) voor de naam van de variabele. Verdere details over deze operator worden in hoofdstuk 5 gegeven. Om twee datawaarden in te voeren en op te bergen in locaties waarnaar de identifiers maand en jaar verwijzen, gebruiken we: scanf (" ", &maand, &jaar); De string formaat is een 'plaatje' van de verwachte vorm van de invoer. De functie scanf ontleedt de stroom invoerkarakters aan de hand van de formaatstring. In de formaatstring worden conversiespecificaties gebruikt die lijken op die bij printf. Er moet precies het juiste aantal argumenten aanwezig zijn, die overeenkomen met de conversiespecificaties in de formaatstring, anders zijn de resultaten onvoorspelbaar. Als een conversiespecificatie niet correct is genoteerd, is het effect ook onvoorspelbaar. Behalve conversiespecificaties kan een formaatstring ook witruimtekarakters bevatten. Een witruimtekarakter in de formaatstring heeft als gevolg dat er een of meer witruimtekarakters uit de standaardinvoer worden gelezen en weggegooid. Het eerste karakter in de invoer dat geen witruimtekarakter is, wordt als volgende te lezen karakter beschouwd. Tenslotte kunnen er in een formaatstring andere dan witruimtekarakters en karakters voor een conversiespecificatie voorkomen. Deze andere karakters moeten precies met de resterende karakters in de invoerstroom overeenkomen. Als er geen overeenkomst is, eindigt scanf en blijft het onverwachte karakter in de invoer als volgend beschikbaar karakter staan. En conversiespecificatie begint met een procentteken (%). conversiespecificatie bij scanf is: De vorm van een 7

8 De conversieoperaties die scanf kent, lijken op die van printf en worden in tabel 4-2 getoond. Conversieoperatie Toepassing d, i conversie van signed decimaal getal naar int u conversie van unsigned decimaal getal naar int 0 conversie van unsigned octaaf getal naar unsigned x conversie van unsigned hexadecimaal getal naar int c conversie van één karakter s conversie van string f conversie van signed decimaal floating-point getal (met komma) e conversie van signed decirnaal floating-point getal (wetenschappelijke notatie) g conversie van signed decimaal floating-point getal p invoer van pointer n aantal gelezen karakters Tabe1 4-2 Conversie-operaties bij gebruik van scanf Hoeveel karakters er uit de invoerstroom worden gelezen, hangt van de conversieoperatie af. In het algemeen verwerkt een conversieoperatie een reeks van een of meer karakters totdat (a) er een witruimtekarakter of een andere niet passend karakter wordt gelezen, of (b) het aantal gelezen karakters gelijk is aan de opgegeven maximale veldbreedte. Als de declaraties int dag, maand, jaar; char ch1, ch2; gegeven zijn, verwacht de aanroep van scanf scanf ("%d %d %d", &dag, &maand, &jaar); dat er drie integers worden opgegeven. De eerste integer waarde die gelezen wordt, wordt aan de variabele dag toegekend. Eventuele witruimtekarakters die vóór de cijfers van het getal komen, worden genegeerd. De tweede integer waarde wordt van de eerste gescheiden door een of meer witruimtekarakters en wordt aan de variabele maand toegekend. Hetzelfde gebeurt met de laatste variabele jaar. Als de invoer is:

9 wordt de waarde 31 toegekend aan de variabele dag, 12 aan de variabele maand en 1985 aan de variabele jaar. De invoerwaarden worden door een reeks witruimtekarakters van elkaar gescheiden. Tussen de waarden 31 en 12 staan spaties en/of tabs, en tussen 12 en 1985 staan newline-karakters. De waarde 1985 wordt ook met een newline-karakter afgesloten. Het laatste karakter blijft in de invoerbuffer staan om door de volgende aanroep van scanf te worden verwerkt. In het voorbeeld scanf("%d/%d/%d", &dag, &maand, &jaar); wordt verwacht dat de integer waarden door een /-karakter worden gescheiden. Een voorbeeld van een geldige invoerstroom voor bovenstaande aanroep van scanf is: 12/4/1985 In een conversiespecificatie kan ook een maximale veldbreedte voorkomen. Die wordt opgegeven als een unsigned decimale integer constante ongelijk aan nul. De conversie eindigt als het vereiste aantal karakters is gelezen of als de invoerwaarde eindigt met witruimte of een ongeldig karakter. Het vorige voorbeeld van een aanroep van scanf kan ook worden geschreven als scanf("%2d/%2d/%4d", &dag, &maand, &jaar); zodat er plaats is voor een dag en een maand van 2 cijfers en een jaar van 4 cijfers. Als er maximale veldbreedten worden gebruikt, hoeven er geen witruimtekarakters te worden gebruikt. De invoer kan zo worden ontleed dat de waarde 12 aan de variabele dag wordt toegekend, de waarde 5 aan de variabele maanden de waarde 1985 aan de variabele jaar. Bij gebruik van de conversiespecificatie %c is voorzichtigheid geboden. Bij deze operatie worden eventuele witruimtekarakters aan het begin niet overgeslagen. De aanroep scanf("%d%c%d%c%d", &dag, &ch1, &maand, &ch2, &jaar); kent bij de invoer 5-9/1985 9

10 weer de waarde 5 aan de integer variabele dag toe, de waarde 9 aan de integer variabele maand en de waarde 1985 aan de integer variabele jaar. Aan de karaktervariabelen ch1 en ch2 worden respectievelijk het koppelteken (-) en de slash (/) toegekend. 4.4 De functies getchar en putchar In de vorige twee paragrafen hebben we gezien hoe we met routines voor geformatteerde I/O één karakter kunnen overbrengen. Als de declaratie char ch; gegeven is, kunnen we één karakter uit de standaardinvoer lezen en naar de standaarduitvoer schrijven met: scanf ("%c", &ch) ; printf ("%c", ch) ; Op deze manier gebeurt onnodig dubbel werk. Dat komt doordat scanf en printf beide hun formaatstring moeten verwerken. Voor invoer en uitvoer van één karakter zijn er ook de twee eenvoudigere mogelijkheden getchar en putchar. Strikt genomen moeten we dit geen functies noemen, want zoals we later in het boek zullen zien, zijn het helemaal geen bibliotheekfuncties. Wat ze precies wel zijn, zien we in hoofdstuk 14. Voorlopig kunnen we ze wel als functies beschouwen. De functie putchar heeft één argument en drukt het betreffende karakter af in de standaarduitvoer. Om de waarde van de karaktervariabele ch als uitvoer te produceren, gebruiken we putchar(ch); Om één newline-karakter als uitvoer te produceren, kunnen we gebruiken: putchar( \n ); De functie getchar() leest het volgende karakter uit de standaardinvoerstroom. Er worden aan getchar() geen argumenten opgegeven, maar de haakjes zijn wel verplicht. De waarde van het gelezen karakter wordt in de vorm van een int als functiewaarde afgeleverd. Deze waarde kan in een toekenning worden gebruikt: ch = getchar(); Als de variabele ch van type char is, worden bij de toekenning de juiste conversies uitgevoerd. 10

11 Het oorspronkelijke probleem van het invoeren en weer uitvoeren van één karakter kan nu zo worden opgelost: ch = getchar(); putchar(ch); Opmerking: Indien men wenst te verifiëren of het einde van een bestand gelezen is, kan men de waarde van de ingelezen character vergelijken met EOF. Aangezien EOF een int is, kan men best voor de variabele die de waarde van getchar() krijgt, eveneens een int gebruiken! De invoer/uitvoeroperaties scanf, printf, getchar en putchar kunnen vrijelijk gemengd worden gebruikt. De in te voeren datum 12-10/1985 kan bijvoorbeeld worden gelezen met de functies: scanf ("%d", &dag) ch1 = getchar () ; scanf("%d", &maand); ch2 = getchar () ; scanf ("%d", &jaar); waarna de karaktervariabelen ch1 en ch2 de scheidingstekens tussen de drie getallen bevatten. Als we geformatteerde invoer met scanf gebruiken, moeten we eraan denken dat het invoeren van bijvoorbeeld een getal doorgaat tot de eerste witruimte of een karakter dat geen deel uitmaakt van een getal. De gegeven invoer kan worden gelezen met: scanf ("%d%c%d%c%d", &dag, &ch1, &maand, &ch2, &jaar); De waarde voor de variabele dag wordt gelezen als de karakterreeks tot aan (niet tot en met) het koppelteken. Dat blijft in de invoerstroom staan voor de volgende toekenning. De volgende conversiespecificatie is %c, zodat er één karakter wordt ingevoerd en aan de variabele ch1 wordt toegekend. Dit ene karakter is het koppelteken. Als een gelezen getal door witruimte wordt afgesloten, blijft het witruimtekarakter als eerste karakter achter voor de volgende invoeroperatie. Laten we eens kijken naar een programma dat de gebruiker om een getal vraagt, de door een newline afgesloten waarde leest, de gebruiker vraagt of de waarde juist is en het als één karakter J of N (voor 'ja' respectievelijk 'nee') verwachte antwoord leest. Een eerste poging om dit te programmeren kan zijn: 11

12 printf ("Voer een getal in: ); scanf("%d, &getal); printf("correct?"); antwoord = getchar () ; Nadat het getal is gelezen, blijft het afsluitende newline-karakter in de invoerbuffer staan. Als de vraag Correct? wordt weergegeven, wacht het programma niet op invoer van de gebruiker, maar beschouwt het newline-karakter in de buffer als antwoord. Het programma loopt dan verder zonder dat er nog invoer van de gebruiker wordt gevraagd. Dit is natuurlijk niet de bedoeling. Een eenvoudige oplossing voor dit probleem is het newline-karakter weg te gooien voordat er een antwoord wordt gevraagd. Aangenomen dat het getal door een onmiddellijk volgend newline-karakter is afgesloten, kunnen we één extra karakter lezen. Dat kan in de eerste scanf zelf gebeuren, of met een aparte getchar(). Deze laatste oplossing ziet er zo uit: printf ("Voer een getal in: "); scanf ("%d", &getal); weggooien = getchar(); // verwijder newline uit invoer printf("correct? "); antwoord = getchar(); 4.5 Speciaaltjes. Men kan de uitvoer van printf ook naar een string (rij van characters) sturen. Een voorbeeld: char tekst[256]; sprintf(tekst, "formaat", argumenten); Het enige verschil met printf is dus dat de eerste (extra) parameter de naam van een string is. Hetzelfde kan men doen met sscanf: sscanf(tekst, "formaat", argumenten); Voor het gebruik van het formaat en de argumenten kan men teruggrijpen Zowel printf als sprintf geven ook een resultaat terug. Zo zou men bijvoorbeeld kunnen schrijven: int i; i=printf("voorbeeld %d",5+3); 12

13 i bevat nadien het aantal afgedrukte tekens. Indien dit aantal EOF is, is er een fout gebeurd, bijvoorbeeld: de schijf was vol,. Voor scanf en sscanf kan men hetzelfde zeggen: int i; i=scanf("%d",&j); Hier bevat i het aantal ingelezen variabelen. Indien dit 0 is, is er iets fout. Indien niet kon gelezen worden is dit EOF. 4.6 Invoer vanuit het toetsenbord. Getchar() is een functie die een teken uit de inputbuffer neemt. In sommige gevallen, bijvoorbeeld een menuoptie is het handig een teken rechtstreeks van het toetsenbord te kunnen lezen, zonder de inputbuffer te moeten aanbieden met het <enter> teken. C kent twee functies om rechtstreeks het toetsenbord te lezen: getch(); is een functie die een teken rechtstreeks van het toetsenbord leest. getche(); doet hetzelfde en zet het teken eveneens op het scherm (e van echo). In gebruik (toekenning aan variabele, headerbestand, ) zijn getch en getche gelijk aan getchar. Putch bestaat ook, maar is hetzelfde als putchar. Volgens sommige C compilers is het af te raden putch te gebruiken (minder portabel) kbhit() is een functie die kijkt of een toets van het toetsenbord is ingedrukt. Indien een toets is ingedrukt, geeft de functie een waarde TRUE (waar) af. De header conio.h is vereist. Indien het de bedoeling is tekens van en naar een bestand te schrijven gebruikt men getc en putc: int getc(file *stream); int putc(int c, FILE *stream); Voor het gebruik van het FILE type, verwijzen we eerst naar het hoofdstuk over bestand invoer en uitvoer. 13

14 4.7 Samenvatting 1. Invoer/uitvoerfaciliteiten worden in C geleverd door een aantal functies in de standaardbibliotheek. 2. Bij gebruik van invoer/uitvoer constructies met de systeem-headerfile stdio.h in een programma worden opgenomen door middel van de besturingsregel #include <stdio.h>. 3. Geformatteerde uitvoer wordt gedaan door de bibliotheekfunctie printf. Geformatteerde invoer wordt gedaan door de bibliotheekfunctie scanf. Formatteren is het regelen van de lay-out van de afgedrukte uitvoer en de invoer van het programma. 4. Een formateringsstring bestaat uit een mengsel van witruimtekarakters, gewone karakters en conversiespecificaties. 5. Invoer en uitvoer van één karakter wordt gedaan met de bibliotheek-'functies' getchar en putchar. 14

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

Een typisch programma in C en C++ bestaat uit een aantal onderdelen: Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Hoofdstuk 6: Beslissingen: if-statement en switch-statement. Inleiding: Condities zijn waar (true) of onwaar (false) In C staat het int-getal

Nadere informatie

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd Inhoudsopgave 1 Inleiding... 1 2 Toekenning- en herhalingsopdrachten (for loop)... 2 2.1 De wet van Ohm... 3 2.2 De spaarrekening... 3 2.3 De transformator... 3 3 Keuze- en herhalingsopdrachten (if, switch,

Nadere informatie

EE1400: Programmeren in C BSc. EE, 1e jaar, , 2e college

EE1400: Programmeren in C BSc. EE, 1e jaar, , 2e college EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-2013, 2e college Arjan van Genderen, Computer Engineering 20-11-2012 Delft University of Technology Challenge the future Agenda A.s. woensdagmiddag 14.00

Nadere informatie

9 Meer over datatypen

9 Meer over datatypen 9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,

Nadere informatie

Week 3 : Hoofdstukken 7 en 8; extra stof: invoer met scanf() extra aanvulling op het boek: inlezen met scanf() in C

Week 3 : Hoofdstukken 7 en 8; extra stof: invoer met scanf() extra aanvulling op het boek: inlezen met scanf() in C Week 3 : Hoofdstukken 7 en 8; extra stof: invoer met scanf() extra aanvulling op het boek: inlezen met scanf() in C Voorbeeld Extra_4 In dit voorbeeld lezen we in van toetsenbord met scanf(). Let op de

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

1.1 Programmeren en voorbereiding

1.1 Programmeren en voorbereiding Een overzicht van C 1.1 Programmeren en voorbereiding 1.2 Programma-uitvoer 1.3 Variabelen, expressies en toewijzing 1.4 Het gebruik van #define en 1.5 Het gebruik van printf() en scanf() 1.6 Programmabesturing

Nadere informatie

Operaties op bestanden

Operaties op bestanden Operaties op bestanden C bevat geen speciale taalconstructies voor in- en uitvoer. een verzameling van functies, onderdeel van de standaard C-bibliotheek: fopen fclose fgetc fputc ungetc fscanf fprintf

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Functioneel programmeren

Functioneel programmeren Functioneel programmeren Practicumopgave 2: Mastermind Het doel van deze opgave is het implementeren van het spel Mastermind; zie http://nl.wikipedia.org/wiki/mastermind voor een uitleg. Het spel is klein

Nadere informatie

AFO 126 - Printen plaatskenmerk-etiketten

AFO 126 - Printen plaatskenmerk-etiketten AFO 126 - Printen plaatskenmerk-etiketten 126.1 Inleiding Met AFO 126 regelt u het printen van plaatskenmerk-etiketten. U kunt met deze AFO ook de printformaten definiëren waarmee u wilt printen. U kunt

Nadere informatie

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

Nadere informatie

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,,  , \, save, read, protect, unprotect maplev 2010/7/12 14:02 page 15 #17 Module 2 Het gebruik van Maple, vervolg Onderwerp Voorkennis Expressies Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

Nadere informatie

Online c++ leren programmeren:

Online c++ leren programmeren: Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma

Nadere informatie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

AFO 142 Titel Aanwinsten Geschiedenis

AFO 142 Titel Aanwinsten Geschiedenis AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.

Nadere informatie

Wat zijn de verschillen tussen SPSS 9 en SPSS 10?

Wat zijn de verschillen tussen SPSS 9 en SPSS 10? Wat zijn de verschillen tussen SPSS 9 en SPSS 10? 1.1 De data-editor / het definiëren van variabelen 1.2 Het openen van bestanden 1.3 Output lezen 1.4 Mogelijke problemen 1.1.1 De data-editor Het grootste

Nadere informatie

AFO 139 Automatische export

AFO 139 Automatische export AFO 139 Automatische export 139.1 Inleiding Vubis Smart beschikt over de mogelijkheid om volledig automatisch beschrijvingen te exporteren naar bestanden op de server. Andere bibliotheken (ongeacht of

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

College Notatie, Recursie, Lijsten

College Notatie, Recursie, Lijsten College 2016-2017 2. Notatie, Recursie, Lijsten Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Functieapplicatie functieapplicatie associeert naar links: als x in f x y moet kiezen

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Numerieke benadering van vierkantwortels

Numerieke benadering van vierkantwortels HP Prime Grafische Rekenmachine Numerieke benadering van vierkantwortels Doel: De waarde van een vierkantswortel met een recursieve rij benaderen, het schrijven van een klein programma. Sleutelwoorden:

Nadere informatie

Handleiding. Loket.nl / Import variabele gegevens

Handleiding. Loket.nl / Import variabele gegevens Handleiding Loket.nl / Import variabele gegevens Inhoudsopgave 1. Aanzetten product Import variabele gegevens (50)... 3 2. Bestandsstructuur... 3 2.1. Voorwaarden:... 3 2.2. Voorbeeld bestand:... 3 3.

Nadere informatie

C-programmeren. Boek : In zee met C, Leo van Moergestel, Academic Service, ISBN 978 90 395 2479 4

C-programmeren. Boek : In zee met C, Leo van Moergestel, Academic Service, ISBN 978 90 395 2479 4 C-programmeren Boek : In zee met C, Leo van Moergestel, Academic Service, ISBN 978 90 395 2479 4 Indeling van de cursus Per week 2 uur theorie en 2 uur practicum. Aanwezigheid bij de theorie is niet verplicht.

Nadere informatie

DE INTERACTIEVE SHELL

DE INTERACTIEVE SHELL Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren

Nadere informatie

Persistentie via bestanden. Bestanden

Persistentie via bestanden. Bestanden programma is transient Persistentie via bestanden Administratieve gegevens zijn verzameld in het file-object: o.a. waar ergens op de disk de data van het bestand te vinden is. invoer van de gebruiker programma

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse Objective-C Basis 23 april 2005, Eindhoven Patrick Machielse patrick@hieper.nl Algemeen // extensies Objective-C code in bestanden met.m extensie // commentaar moet! /* Alles hiertussen wordt genegeerd

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

VOORBLAD SCHRIFTELIJKE TOETSEN

VOORBLAD SCHRIFTELIJKE TOETSEN Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG : EP11/EP12 TOETSDATUM : 07-02-2014 TIJD : 13.00 14.30 uur AANTAL PAGINA S (incl.

Nadere informatie

Releasenotes. Intramed versie 7.0.1. Intramed versie 7.0.1

Releasenotes. Intramed versie 7.0.1. Intramed versie 7.0.1 Releasenotes Intramed versie 7.0.1 Intramed versie 7.0.1 Hoofdstuk 1 Releasenotes Een Intramed patch: verbeteringen en oplossingen. Intramed versie 7.0 was een versie met belangrijke nieuwe mogelijkheden

Nadere informatie

int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }

int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ } 1 Functies ( ) voorbeeld: int power(int base, int n) int i, p; p = 1; for ( i=1, i

Nadere informatie

Blog-Het gebruik van variabelen in Excel VBA

Blog-Het gebruik van variabelen in Excel VBA Blog-Het gebruik van variabelen in Excel VBA Versie : 2012.01.31.1 (Blog http://www.reinder.eu) Dank voor de leuke reacties op het vorige blog en ook dank voor de kritische noot over het nivo dat de gebruiker

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 2, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Terugblik Functies Organisatie (architectuur) van programma s Arrays Structuren

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

{button Installeer Zelfstudie Bestanden, execfile(seedatauk.exe,tutorial.ctb;tutorial nn.see)}

{button Installeer Zelfstudie Bestanden, execfile(seedatauk.exe,tutorial.ctb;tutorial nn.see)} Kringnet Vereffening Deze zelfstudie maakt gebruik van de module Vereffening. Opmerking: Deze zelfstudie kan niet worden uitgevoerd met LISCAD Lite. Doelstelling Het doel van deze zelfstudie is om te laten

Nadere informatie

Talstelsels en getalnotaties (oplmodel)

Talstelsels en getalnotaties (oplmodel) Talstelsels en getalnotaties (oplmodel) herhalingsvragen 1. Waarom werken computers binair? Omdat binaire computers veel makkelijker te maken is. De kans op fouten is ook veel kleiner. het spanningsverschil

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Excellerend Kwartaaltip 2014-2

Excellerend Kwartaaltip 2014-2 Excellerend Heemraadweg 21 2741 NC Waddinxveen 06 5115 97 46 richard@excellerend.nl BTW: NL0021459225 Bank: NL72 ABNA 0536825491 KVK: 24389967 Onjuiste invoer! Wanneer je werkt met een Excelbestand waarbij

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Week 5 : Hoofdstuk 11+ extra stof: meer over functies. Hoofdstuk 11:

Week 5 : Hoofdstuk 11+ extra stof: meer over functies. Hoofdstuk 11: Week 5 : Hoofdstuk 11+ extra stof: meer over functies Hoofdstuk 11: Functies Functies in C lijken heel erg op functies in Java. Maar er is één groot veschil: Java ken uitsluitend invoer-parameters, terwijl

Nadere informatie

Instructies en blokken

Instructies en blokken Herhaling 1 Instructies en blokken Naar elke instructie staat een ; puntkomma Verschillende instructies worden door de accolades in een block samengevat. Een blok is het zelfde als een enkele instructie.

Nadere informatie

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59. Datastructuren 2015 Programmeeropdracht 3: Expressies Deadline. Dinsdag 8 december 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek van Drozdek. U wordt gevraagd expressies

Nadere informatie

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 TU/e Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica (Na de toets gecorrigeerde versie) PROBLEEM: Sleutels Lees

Nadere informatie

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Bijlage Inlezen nieuwe tarieven per verzekeraar ! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

EE1400: Programmeren in C BSc. EE, 1e jaar, , 3e college

EE1400: Programmeren in C BSc. EE, 1e jaar, , 3e college EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-201, e college Arjan van Genderen, Computer Engineering 4-12-2012 Delft University of Technology Challenge the future Hoorcollege Arrays, Pointers en Strings

Nadere informatie

Handleiding ChainWise Data import Module

Handleiding ChainWise Data import Module Handleiding ChainWise Data import Module Versie: 1.1 Datum: Januari 2013 Inhoudsopgave 2 Inleiding... 3 3 Uploaden naar tijdelijk tabel... 4 3.1 Uploaden... 4 3.2 Koppelingen... 4 3.3 Opslaan en Errors...

Nadere informatie

EXCEL BASIS 2013

EXCEL BASIS 2013 EXCEL BASIS 2013 WWW.I-LEARNING.BE - 4 FORMULE-INVOER ALS EXCEL EEN BEREKENING MOET DOEN, MOET JE EEN FORMULE OF EEN FUNCTIE INVOEREN 4.1 OPERATOREN + om op te tellen - om af te trekken / om te delen *

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

Deeltentamen Grammatica s en ontleden 22 december 2005 Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

College Introductie

College Introductie College 2016-2017 Introductie Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Waarom is FP anders? in plaats van opdrachten die na elkaar moeten worden uitgevoerd, definiëren we

Nadere informatie

PROGRAMMEREN IN C CURSUS VOOR STARTERS. J.W. Welleman. header files. source files. *.h. *.c. compiler. object files. library builder. *.

PROGRAMMEREN IN C CURSUS VOOR STARTERS. J.W. Welleman. header files. source files. *.h. *.c. compiler. object files. library builder. *. PROGRAMMEREN IN C CURSUS VOOR STARTERS J.W. Welleman header files *.h source files *.c compiler library builder library files object files *.obj *.lib linker executable *.exe PROGRAMMEREN IN C CURSUS VOOR

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

College I/O

College I/O College 2016-2017 I/O Doaitse Swierstra Verteld door Jurriaan Hage Utrecht University Input en Output Tot dusverre: een module bevat een aantal functiedefinities GHCi drukt de waarde af van een ingetikte

Nadere informatie

De MySQL C API. Variabelen in C Functies in C Pointers in C

De MySQL C API. Variabelen in C Functies in C Pointers in C LinuxFocus article number 304 http://linuxfocus.org De MySQL C API door Özcan Güngör Over de auteur: Ik gebruik Linux sinds 1997. Vrijheid, flexibiliteit en opensource. Dat

Nadere informatie

AFO 241 - Leveranciers

AFO 241 - Leveranciers AFO 241 - Leveranciers 241.1 Inleiding[//] Het systeem hanteert een authority bestand voor leveranciers waarin alle leveranciers opgenomen worden. Bij het invoeren van een bestelling wordt een leverancier

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14 Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies

Nadere informatie

QR-code op aanvoerbrief 2.xx.0: Specificaties

QR-code op aanvoerbrief 2.xx.0: Specificaties QR-code op aanvoerbrief 2.xx.0: Specificaties Door: Bert Velthuijs Datum 1e versie: 5 april 2012 (versie 0.xx) Datum laatste wijziging 20 september 2012 Huidige Versie: 2.xx.0 Wijzigingen 19 juli 2012

Nadere informatie

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino

Nadere informatie

Dynamisch geheugen beheer

Dynamisch geheugen beheer Dynamisch geheugen beheer + Normaal wordt laats in het werkgeheugen gereserveerd tijdens de comilatie aan de hand van de declaraties van de variabelen. + Deze geheugenreservering is statisch: in het bronbestand

Nadere informatie

Handleiding voor implementatie WEBSERVICE GEOCODEREN

Handleiding voor implementatie WEBSERVICE GEOCODEREN Handleiding voor implementatie WEBSERVICE GEOCODEREN Opgesteld door Bridgis BV Datum 13 september 2012 INHOUDSOPGAVE 1 Geocoderen 3 2 Bridgis Adreslocaties 3 3 URL 3 4 Functie 3 5 Input en Output 4 5.1

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x

Nadere informatie

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen. Hoofdstuk 3: controlestructuren instructies en blokken Naar elke instructie staat een ; Instructies worden door de haakjes {} in een block samengevat. if else if ( expression) statement1; else statement2;

Nadere informatie

Jörg R. Hörandel Afdeling Sterrenkunde.

Jörg R. Hörandel Afdeling Sterrenkunde. Jörg R. Hörandel Afdeling Sterrenkunde http://particle.astro.ru.nl/goto.html?prog1213 1 Alle mensen moeten op blackboard ingeschreven zijn! 2 http://particle.astro.ru.nl/goto.html?prog1213 3 eindcijfer:

Nadere informatie

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/ Programmeermethoden Controle-structuren Walter Kosters week 3: 17 21 september 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleveren opgave 1 Inleveren: digitaal clintonobama1.cc en print van mooi.pdf.

Nadere informatie

PROGRAMMA'S SCHRIJVEN

PROGRAMMA'S SCHRIJVEN Hoofdstuk 3 Hoofdstuk 3 Programma's schrijven 13 PROGRAMMA'S SCHRIJVEN In dit hoofdstuk behandelen we: Hoe de verwerking van instructies verloopt Strings (tekenreeksen) Stringconcatenatie (oftewel strings

Nadere informatie

Vergelijkingen met breuken

Vergelijkingen met breuken Vergelijkingen met breuken WISNET-HBO update juli 2013 De bedoeling van deze les is het doorwerken van begin tot einde met behulp van pen en papier. 1 Oplossen van gebroken vergelijkingen Kijk ook nog

Nadere informatie

FostPack Importeren verpakkingsfiches via Excel

FostPack Importeren verpakkingsfiches via Excel FostPack Importeren verpakkingsfiches via Excel 1 Inhoudsopgave FostPack Importeren verpakkingsfiches via Excel 1. Algemeen... 3 2. Aandachtspunten bij het importeren van verpakkingsfiches... 3 3. Verpakkingsfiches

Nadere informatie

RAAD HET GETAL. Hoofdstuk 4. Het spelletje 'Raad het getal' Voorbeeld van uitvoering van 'Raad het getal' Hoofdstuk 4 Raad het getal 21

RAAD HET GETAL. Hoofdstuk 4. Het spelletje 'Raad het getal' Voorbeeld van uitvoering van 'Raad het getal' Hoofdstuk 4 Raad het getal 21 Hoofdstuk 4 Raad het getal 21 Hoofdstuk 4 RAAD HET GETAL In dit hoofdstuk behandelen we: import-statements Modules Argumenten while-statements Voorwaarden Blokken Boole-waarden Vergelijkingsoperatoren

Nadere informatie

Het gebruik van een spreadsheetprogramma Algemene introductie in het gebruik van spreadsheets Fons Vernooij

Het gebruik van een spreadsheetprogramma Algemene introductie in het gebruik van spreadsheets Fons Vernooij Het gebruik van een spreadsheetprogramma Algemene introductie in het gebruik van spreadsheets Fons Vernooij Introductie Een spreadsheetprogramma kan heel veel. Zoveel zelfs dat je bijna vergeet dat hij

Nadere informatie

Handleiding OSIRIS Self Service. Schermen en procedures in OSIRIS voor docenten en studenten

Handleiding OSIRIS Self Service. Schermen en procedures in OSIRIS voor docenten en studenten Schermen en procedures in OSIRIS voor docenten en studenten Onderhoud en versiebeheer Dit document is eigendom van de projectleider Implementatie Osiris Volg. Wijzigingen aan het document worden geïnitieerd

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

Automatische conversie banknummers naar het IBAN formaat

Automatische conversie banknummers naar het IBAN formaat Automatische conversie banknummers naar het IBAN formaat Sdu Advocatensupport Sdu Uitgevers www.scherpinsupport.nl september 2013 1 Inhoudsopgave Overzicht... 3 Converteren banknummers... 3 Rapport maken...

Nadere informatie

Zelftest Programmeren in COBOL - deel I

Zelftest Programmeren in COBOL - deel I Zelftest Programmeren in CBL - deel I Document: n1290test.fm 05/01/2016 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST PRGRAMMEREN IN CBL -

Nadere informatie

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES Onderdeel van SmartProducts INHOUD COLLEGE 2 module4.io.utwente.nl/applicatiebouw Software ontwerpen Gebruikersinterfaces,

Nadere informatie

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof Programmeren Blok A Persistente opslag van waarden http://www.win.tue.nl/ wstomv/edu/2ip05/ College 4 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering

Nadere informatie

AAN DE SLAG MET QDAC VOLLEDIG

AAN DE SLAG MET QDAC VOLLEDIG AAN DE SLAG MET QDAC VOLLEDIG INHOUD Het uiterlijk van QDAC... 2 De rode draad... 4 Openen van een Excel bestand... 4 Totaliseren van velden... 6 Sorteren van velden... 7 Analyses: Gaps... 8 Openen van

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie

Nadere informatie

C in plaats van Pascal

C in plaats van Pascal C in plaats van Pascal Jeroen Fokker januari 1993 3e, herziene druk INF/DOC-92-01 Vakgroep Informatica Inhoudsopgave 1 Inleiding 1 2 Opbouw van een programma 1 3 Lexicale structuur 3 4 Statements 3 5 Expressies

Nadere informatie

V.2 Limieten van functies

V.2 Limieten van functies V.2 Limieten van functies Beschouw een deelverzameling D R, een functie f: D R en zij c R. We willen het gedrag van f in de buurt van c bestuderen. De functiewaarde in c is daarvoor niet belangrijk, de

Nadere informatie

Het programma in dit hoofdstuk vertelt een paar moppen aan de gebruiker.

Het programma in dit hoofdstuk vertelt een paar moppen aan de gebruiker. Hoofdstuk 5 Moppen 36 Hoofdstuk 5 MOPPEN In dit hoofdstuk behandelen we: Het gebruik van het sleutelwoord end als argument in de print-functie om niet naar een nieuwe regel te gaan Escape-tekens Het gebruik

Nadere informatie

Handleiding wordpress

Handleiding wordpress Handleiding wordpress Wordpress versie 3.0.4 Handleiding versie 1.1 Auteur Website Geert Hoekzema www.geerthoekzema.nl www.geerthoekzema.nl geert@geerthoekzema.nl 1 Inhoudsopgave Inleiding... 3 Beginnen

Nadere informatie

AFO 271 - Beheer parameters drukwerk

AFO 271 - Beheer parameters drukwerk AFO 271 - Beheer parameters drukwerk 271.1 Inleiding De besteladministratie is een sterk geparametriseerde module. Een groot aantal van die parameters, met name op het vlak van het printen, is interactief

Nadere informatie

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma 3 Vereiste kennis Dit boek richt zich op het leren programmeren door het oefenen met programmeercodes. Veel theorie komt in het begin niet aan de orde. Dat is een grote uitdaging want het is niet makkelijk

Nadere informatie