Archief - Oefeningen voor C++

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.c0d3x

Legacy Member
Hallo, ik heb momenteel de basis van c++ gestudeerd...
Dus pointers, references, loops, classes, structures, inheritance, polymorphism kennek allemaal...
Nu zouek mijzelf willen oefenen door simpele console programmas te maken die deze dingen bevatten..

Kunnen jullie enkele ideetjes naar voor gooien?
Of oefeningen die goed zijn voor dit te oefenen.

Thx.

Tyfius

Legacy Member
probeer wa simpele games
blackjack, mastermind, mijneveeger, ... die zijn altijd wel tof om u mee bezig te houden :)

fretn

Legacy Member
maak uw eigen stringfucties, ik weet dat je dat niet nodig hebt in c++, maar is ideaal om uw pointers te leren/oefenen

Krueger

Legacy Member
In google: "c++" + excercises => 289.000 resultaten...
Der zal wel iets deftig bijzitten zeker.

killgore

Legacy Member
Pfft, ik heb ooit een matrix klasse gemaakt om men basis van overloaden en zo is te herhalen, is best wel leuk :).

Voor pointers e.d. te oefenen zou ik ook een STL ding namaken, maar eerder iets als vector, het kan goed zijn dat je dit later nog zelf zal moeten coden :).

Vich

Legacy Member
Hier zijn een aantal suggesties waarmee je de bovenstande dingen kan toepassen én waar je later nog wat aan hebt:

- Large number library: een soort van library die operaties met grote getallen kan (bvb getallen die uit 1000 digits bestaan). Zo kan je bvb het 10000ste fibonacci getal berekenen.

- Een GUI library: in combinatie met OpenGL of DirectX leer je ook nog wat bij. Een GUI lib is ideaal om een degelijke klassen-structuur op te bouwen.

- Een HTML logging klasse: log alles weg in HTML code, maak een klasse die bvb elke log entry in een <UL> zet. Je kan ook een "validated" line wegschrijven, dat is dan een lijn waar een rode "x" of een groene "v" voor komt. etc. HTML logs zijn zoooo handig.

- Een singleton template klasse.

- Een autopointer klasse (maar je kan ook de boost library gebruiken;)).

Reck

Legacy Member
Large number library: een soort van library die operaties met grote getallen kan (bvb getallen die uit 1000 digits bestaan). Zo kan je bvb het 10000ste fibonacci getal berekenen.
kunde ff de redenering hierachter uitleggen, hoe ge zo een getal opslaagt om er bewerkingen op uit te voeren?
verdeelt ge da in ints? of slaagt ge da tijdelijk op in nen char array? of... ?

killgore

Legacy Member
Reck zei:
kunde ff de redenering hierachter uitleggen, hoe ge zo een getal opslaagt om er bewerkingen op uit te voeren?
verdeelt ge da in ints? of slaagt ge da tijdelijk op in nen char array? of... ?

ints allocaten met behulp van een STL-container of eigen variant

en dan bij optelling en zo hierover iteraten om aan de juiste ints (of welke storage je ook kiest) van de container getallen toe te voegen (goede kennis van bit ops & operator overloading bv. kan hier wel handig zijn :))

wlibaers

Legacy Member
Reck zei:
kunde ff de redenering hierachter uitleggen, hoe ge zo een getal opslaagt om er bewerkingen op uit te voeren?
verdeelt ge da in ints? of slaagt ge da tijdelijk op in nen char array? of... ?

Dat is juist een van de dingen die je bij het ontwerp van de library zelf moet beslissen. BCD is ook nog een manier. Hangt ervan af of je die grote getalen als ints wil, of als fixed point, of floating point (verschillende vormen zijn voor verschillende toepassingen geschikt, voor fibonacci gebruik je best grote ints denk ik). Wat je ook moet beslissen is of je de grootte van een getal vast houdt (bijvoorbeeld uitsluitend 1024-bit getallen), of dat je ze in allerlei grootten kan maken en combineren (wat natuurlijk meer werk is).

Vich

Legacy Member
Reck zei:
kunde ff de redenering hierachter uitleggen, hoe ge zo een getal opslaagt om er bewerkingen op uit te voeren?
verdeelt ge da in ints? of slaagt ge da tijdelijk op in nen char array? of... ?

Een char array is het beste vind ik. Gewoon elk digit van een getal bijhouden in een lijst en digits verwijderen/toevoegen indien nodig.

Reck

Legacy Member
Vich zei:
Een char array is het beste vind ik. Gewoon elk digit van een getal bijhouden in een lijst en digits verwijderen/toevoegen indien nodig.
zit ge dan geen geheugen op te smossen? nen char is nen byte, maar zo een cijfer van 0-9 beslaagt max. 4 bits... is er geen manier om op bit niveau te werken?

Vich

Legacy Member
Reck zei:
zit ge dan geen geheugen op te smossen? nen char is nen byte, maar zo een cijfer van 0-9 beslaagt max. 4 bits... is er geen manier om op bit niveau te werken?

Klopt, het eet meer geheugen, maar anderzijds: om met 4bits te gaan werken ga je telkens 2 paar moeten genereren/vewijderen(want 2 paar is 1 byte) en dat kost CPU usage. Die CPU usage is naar mijn mening belangrijker dan het geheugengebruik. Idem als je per bit werkt ipv per 4 bits.

Stel dat je 100 getallen hebt van 100 digits, dan heb je slechts 10000 chars, dus +- 10kB. Das een peulschil.

Het voordeel is ook - als je met chars werkt - dat je met een 256-delig(of ander) talstelsel zou kunnen rekenen met diezelfde lib.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan