Avatar billede narrr Nybegynder
26. juli 2003 - 18:48 Der er 11 kommentarer og
1 løsning

opgaver 0_o

Jeg så lige at needs spurgte om nogle opgaver, og jeg kunne egentlig også godt tænke mig nogle. Til at løse opgaverne vil jeg kun bruge standard c++, da det er dét jeg har koncentreret mig om her på det sidste. Jeg mener at jeg har ok fat i det, så opgaverne skal ikke være for nemme(men post endelig alle jeres idéer.) Det er jo vigtigt at arbejde med tingene så man ikke glemmer dem, og man lærer bedst af erfaringer.
Avatar billede arne_v Ekspert
26. juli 2003 - 18:54 #1
Lav nogle klasser til data komprimering (RLE, Huffmann, Arithmetic, LZ77/LZH,
LZ78/LZW og BW).

Det kan gøres i standard C++ uden Windows eller Linux specifikke kald.

Det ligger meget op til et objekt orienteret klasse hiraki.

Der er alligevel en del bit venderi (low level stuff).

Der er en del ting man skal sætte sig ind i.

Og noget af det er nemt, men meget af det er meget svært.

D.v.s. at man kan have fornøjelse af det i lang tid !
Avatar billede bertelbrander Novice
26. juli 2003 - 20:17 #2
Du kunne lave et program der læser en række cpp og h og tegner et træ med alle class'er, så man kan se hvilke class'er der arver fra hvilke.
Man kan starte med det helt nemme fx kun se på linier som:
class COne : public CTwo
Dernæst kan man tilføje template class'er, og til slut kan man tilføje en preprocessor så man kan håndtere kode som:

#ifdef WHATEVER
#define CC(x) x##_class
#else
#define CC(x) C##x
#endif

class CC(Tre) : Public CC(Fire), CC(Fem)
Avatar billede narrr Nybegynder
26. juli 2003 - 21:38 #3
Uh, jeg kan godt forstå idéen med at tegne et klassehieraki, men hvad har templates med det at gøre? Fortæller templates noget om hvordan klasserne relaterer til hinanden?
Avatar billede arne_v Ekspert
26. juli 2003 - 21:44 #4
Templates kan ekspandere:

class CC(Tre) : Public CC(Fire), CC(Fem)

til:

class Tre_class : public Fire_class, Fem_class

(giftigt at skulle parse sig til !)
Avatar billede narrr Nybegynder
26. juli 2003 - 23:14 #5
Okay, det er vist ikke helt det samme vi snakker om. Det jeg forstår ved templates er fx:
template<typename T> T max(const T& v1, const T& v2);
Avatar billede arne_v Ekspert
26. juli 2003 - 23:18 #6
Det var sikkert også det Bertel mente.

Jeg er bare så gammel at jeg har lavet templates med preprocessoren
fordi de rigtige templates ikke var opfundet endnu, så jeg koblede
Bertels brug af templates og preprocessor. Han har formentlig ment det
som to separate items.
Avatar billede bertelbrander Novice
27. juli 2003 - 00:12 #7
Ja, jeg tænkte det som to seperate emner.
Grunden til at jeg forelog emnet er at jeg så sent som fredag sad og tænkte på at lave en.
Jeg lavede en gang en kalds træ generator (mest til C, men også en smugle C++) som jeg måske kunne bruge som udgangs punkt.
Jeg har dog ikke så meget tid for tiden...
Avatar billede narrr Nybegynder
27. juli 2003 - 20:01 #8
Der skulle vel aldrig være nogle flere, der har nogle forslag? Jeg vil nødig brænde 120 pts. af på 1 opgave ;)
Avatar billede bertelbrander Novice
27. juli 2003 - 22:06 #9
Hvis du er til matematik kunne du lave en "regnemaskine".
Start med at løse simple udtryk som:
12 + 9*4
Udbyg med funktioner som sin, pow etc. Tilføj variabler, lignings løser, arrays/vektorer, matrixer osv.
Avatar billede arne_v Ekspert
31. juli 2003 - 08:10 #10
Den sidste ville nok være nok være nemmere at lave hvis man genererede
noget af kode med lex/yacc eler flex/bison.

En lidt beslægtet opgave kunen være at lave klasser BigInteger
og BigFloatingPoint (navnene burde forklare alt).
Avatar billede arne_v Ekspert
18. august 2003 - 23:51 #11
narr>

Tid at lukke spørgsmålet ?
Avatar billede narrr Nybegynder
19. august 2003 - 17:07 #12
Ja ok. Det ser ud til, at du skal have alle points.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester