1.4.3 Static Variabele een gewone variabele, in een functie, wordt telkens opniew gedeclareerd als de functie aangeroepen wordt. Een static variable wordt by de eerste aanroep geinitialiseerd op 0, en behoud vervolgend zijn waarde zodat die waarde opnieuw beschikbaar is bij de volgende functie-aanroep. vb : array2.cpp 2 Structuren 2.1 Assignment vb 2_13_7.cpp 3_10_1.cpp 2.2 If if () { } else { }; vb: Klanten.cpp 2.3 Switch o datumcheck.cpp 2.4 For for (init ; eindvoorwaarde ; step) { } o in'step' kunnen meerdere acties plaatsvinden, zie for.cpp o geneste lus : uitvoer in matrix-vorm o oef 4_14_5.cpp 2.5 While while () { }; o invoercontrole : herhaal zolang invoer niet correct is o datumcheck o Romeinse cijfers maken o romeinsecijfers.cpp o 4_14_7.cpp 2.6 Loops : iedere FOR loop kan als een WHILE loop geschreven worden, en vice versa vbn 4_14_2.cpp en 4_14_2_for.cpp 2.7 Willekeurig getal genereren // random generator initialiseren met systeemtijd srand ((unsigned) time (NULL)); // random getal van 1 tot 'range' int genereer() { int range = 42; int getal; getal = rand()%range +1; return getal; } 2.8 uitvoer : in matrix : geneste lussen oef 4_14_5.cpp zie ook : standaard headers : iomanip : manipulatie van output (uitlijnen, precisie, tabs, ...) 2.9 define #define kBTW 0.175 // vervang "kBTW" overal door "0.175" 3 Operatoren 3.1 In- en output In- en output worden in C++ gezien als 'streams'. cout : output naar scherm cin : input (van toetsenbord) naar variabele vb. output van "mijn tekst" + regeleinde naar scherm : cout << "mijn tekst" << endl; Merk op het gebruik van <<, endl wordt gebruikt om een nieuwe lijn te beginnen. "\n" "\t " (C) kunnen nog steeds gebruikt worden. je kan ook een bewerking in je cout zetten vb : cout << " som van de getallen is " << (getal + getal2) <> aantal //aantal is de naam van een variabele cin.get() Deze functie wacht op een enter. Dit wordt gebruikt om het outputscherm even te laten staan zodat je de resultaten kan lezen. zie ook verder : input van strings enz. << wordt de insertion-operator genoemd. >> wordt de extraction-operator genoemd. 3.2 commentaar // commentaar op 1 regel /* commentaar over verschillende regels */ /* * commentaar over verschgillende regels * met een beetje bladschikking, * maakt de code beter leesbaar */ 3.3 modulus : % : rest van een deling if (nGetal%6 == 0) // als nGetal deelbaar door 6 (dwz als rest van nGetal/6 == 0) { Aant6++; Aant3++; Aant2++; } vb : klanten.cpp 4 Arrays o inleiding : simpele arrays: arrays opvullen, op scherm zetten, etc. o array1.cpp o array opvullen met for-loop in main, waarde uit functie met static variabele o array2.cpp o array3.cpp (by reference) o Fibonnacci-reeks : elk getal is de som van de 2 voorgafgaande getallen o array_pointers_fibonnacci o Invoer van verschillende getallen : controle op dubbels o Lotto.cpp o invoer random getallen : controle op dubbels : o Lotto.cpp o Grootste getal in een array zoeken o array_grootstewaarde.cpp o Een array omkeren : o omkeren.cpp o omkeren_pointer.cpp o Een array sorteren (numeriek) o sorteer.cpp o Een waarde verwijderen uit een array o verwijder.cpp o 2 gesorteerde arrays samenvoegen tot 1 gesorteerde array o arrayinvoegen // met array-notatie o arrayinvoegen_pointer // met pointer-notatie o 2 arrays vergelijken o lotto.cpp o o waarden uit een array naar een andere array schrijven o array4.cpp o strings. In C++ zijn strings eigenlijk arrays van characters. Alle bewerkingen met arrays zijn dus ook mogelijk met strings. omdat een 'array van characters' eigenlijk ook een woord of een tekst is/kan zijn, bekijken we ze apart : zie strings. o Arrays als argument an een pointer = pointer als argument van een functie. Voorbeeld : verwijder_pntr.cpp 5 C++ ingebouwde functies * int() : cast : waarde omzetten naar integer; dus ook : afronden naar beneden (decimalen weggooien) * ceil() : afronden naar boven : : zie o.a. verpotten.cpp 6 Functies o Functie die ingevoerde getallen test om te zien of ze deelbaar zijn door 6, 3 en/of 2 o MijnEersteFunctie.cpp o Gemiddelde van een reeks ingevoerde getallen o gemiddeld.cpp o Machtsverheffing o machten.cpp o machtsfunctie.cpp o Max : functie die het grootste van twee getallen teruggeeft o Maxfunctie o Spreiding van een array : verschil tussen grootste en kleinste waarde o Spreiding.cpp o logo o opscherm o Romeinse cijfers maken o romeinsecijfers.cpp o functie die een waarde aflevert o array_grootstewaarde.cpp o array2.cpp o verfpotten.cpp * functie met value arguments o array2.cpp o verfpotten.cpp * functie met reference arguments o array3.cpp * functie die een pointer teruggeeft o Zoekvervang.cpp * functie die waarden van 1 array naar een andere schrijft o array4.cpp * functies binnen functies o verpotten.cpp * functie met value arguments, reference arguments, array as argument, ... o ExPrep2002.cpp // examenvoorbereideng programmeren 1 * zoeken in een geordende reeks, bijv getallen van 0 tot 32000 o functie gaat na na hoeveel maal een bepaald getal gevonden zal zijn: zoekenvantot.cpp o functie die zelf zoekt aan de hand van 'hoger/lager' door gebruiker * hogerlagerII.cpp 7 Overloading = verschillende functies met dezelfde naam, te onderscheiden adhv aantal of type van de argumenten. 8 Pointers Zie ook functies : pointers als argument of return van een functie * Variabelen : adressen en pointers o Pointer.cpp o Pointer2.cpp // met int ipv char * Waarden wijzigen via pointer, functie die een pointer teruggeeft o Zoekvervang.cpp * Pointer naar een functie o calculator.cpp 9 Strings 9.1 Input naar strings : Cin Cin.get() Cin.getline() " assignment " werkt niet bij strings omdat strings in arrays opgeslagen worden, en de naam van een array eigenlijk het adres van het eerste element is. Daarom : strcpy(array, "string") : copieer "string" naar array 9.2 Oefeningen : Stringwissel.cpp // de inhoud van twee string-arrays verwisselen Stringlengte.cpp // zelfgemaakte functie om de lengte van een string te bepalen Zintellen.cpp // tellen hoeveel maal een egeven letter voorkomt in een gegeven zin Woordtellen.cpp // aantal woorden van een gegeven zin tellen 10 Structures 11 Linked Lists 12 Standaard headers * iostream.h o standaard I/O vb. cin, cout * stdlib.h o o.a. srand (random generator) * time.h o 'time' functies o vb. lotto.cpp : (time) als random seed * math.h o mathematische functies o ceil(), ... * iomanip.h o uitvoer manipuleren in kolommen, vaste afstanden, aantal decimalen etc. o vb: spaarrekening.cpp o vb 3_10_2.cpp o vb 3_10_3.cpp o vb 3_6_1.cpp o vb 3_6_2.cpp o vb 3_6_3.cpp * string.h o bewerkingen met strings : strcpy, strlen, strupr, strcmp, etc. o zie oefeningen op strings 12.1 more ... 12.1.1 temp.cpp invoer van dagtemperaturen, uitvoer van minimum, maximum, en gemiddelde van de ingevoerde waarden 12.1.2 salaris.cpp verkoop.cpp optellen en percentages toevoegen 12.1.3 lotto.cpp functies : o random getallen genereren o array vullen met random getallen, controle op dubbels o array vullen met gebruikersinput, controle op dubbels en randvoorwaarden o arrays sorteren o twee arrays vergelijken o getallen verwijderen uit array 12.1.4 HogerLager.cpp spelletje : de speler moet een getal van 0 tot 32000 raden in zo weinig mogelijk beurten. de computer helpt door bij iedere gok 'hoger' of 'lager' te zeggen. de speler kan gokken in hoeveel beurten hij het getal zal vinden. zie ook zoekenvantot.cpp 12.1.5 HogerLagerII.cpp efficient zoeken : de computer moet een getal van 0 tot 32000 raden in zo weinig mogelijk beurten. de gebruiker helpt door bij iedere gok 'hoger' of 'lager' te zeggen. het programma zoekt het getal op de snelst mogelijke manier 12.1.6 RomeinseCijfers.cpp zet een gegeven getal (arabische cijfers) om in romeinse cijfers.