/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Opgave i cpp ??
Fra : James


Dato : 31-07-02 04:01

Hej NG
Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
basale viden om det.
Nu mangler jeg bare at prøve det af. Derfor ville jeg lige spørge jer om i
have nogle gode ideer til hvad en god begynder opgave kunne være.. har godt
nok nogle ideer selv, men tror jeg må vente lidt med dem til et senere
tidspunkt, da de vil kære noget mere læsning.
På forhånd tak.
/James



 
 
Michael Kristensen (31-07-2002)
Kommentar
Fra : Michael Kristensen


Dato : 31-07-02 11:20

In article <ai7jug$r0a$1@eising.k-net.dk>, James wrote:
> Hej NG
> Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
> basale viden om det.
> Nu mangler jeg bare at prøve det af. Derfor ville jeg lige spørge jer om i
> have nogle gode ideer til hvad en god begynder opgave kunne være.. har godt
> nok nogle ideer selv, men tror jeg må vente lidt med dem til et senere
> tidspunkt, da de vil kære noget mere læsning.
> På forhånd tak.
> /James

Jeg kigger her, jeg er også interesseret. Dog har jeg leget lidt med
det, og lånt en bog.

Klaus Petersen (31-07-2002)
Kommentar
Fra : Klaus Petersen


Dato : 31-07-02 12:38

Lave et tekstbaseret eventyrspil, a la "du står i et koldt rum. til øst står
en radiator. hvad gør du?"



Kim Ingemann (31-07-2002)
Kommentar
Fra : Kim Ingemann


Dato : 31-07-02 16:01

Nogle små opgaver kunne være at lave en tal->binær converter, en
formel/lomme-regner eller et kryds&bolle-spil (med AI?).

--
Med venlig hilsen / Best regards,
Kim Ingemann
tuxi@tuxi.dk

Igor V. Rafienko (31-07-2002)
Kommentar
Fra : Igor V. Rafienko


Dato : 31-07-02 17:24

[ james@talent.dk ]

[ snip ]

> Nu mangler jeg bare at prøve det af. Derfor ville jeg lige spørge
> jer om i have nogle gode ideer til hvad en god begynder opgave kunne
> være.. har godt nok nogle ideer selv, men tror jeg må vente lidt med
> dem til et senere tidspunkt, da de vil kære noget mere læsning.


Du kan prøve å utvide standardbiblioteket med noen nyttige
klasser/ADT'er. Fx. lage noe som kan opptre som
std::hash_map/std::hash_set. Eller en
std::tcp[io]stream/std::udp[io]stream (som fungerer med IPv4 og IPv6).
Ved siden av det pedagogiske aspektet får man også laget noe _nyttig_.





ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
            -- pederst på irc

Peer Jensen (31-07-2002)
Kommentar
Fra : Peer Jensen


Dato : 31-07-02 22:36

"James" <james@talent.dk> skrev i en meddelelse
news:ai7jug$r0a$1@eising.k-net.dk...
> Hej NG
> Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
> basale viden om det.
> Nu mangler jeg bare at prøve det af. Derfor ville jeg lige spørge jer om i
> have nogle gode ideer til hvad en god begynder opgave kunne være.. har
godt
> nok nogle ideer selv, men tror jeg må vente lidt med dem til et senere
> tidspunkt, da de vil kære noget mere læsning.

Jeg mener du skyder forbi målet ved blot at sætte dig hen for at kode et
eller andet. Få styr på struktur og dynamik så du har en klar fornemmelse at
objektorienteret programmering. Tag fat i generaliserings-, aggregerings- og
associeringsstrukturer og objekters adfærd. Senere vil jeg vælge at tage fat
i fx. hook og template funktioner og de forskellige mønstre (GRASP og GoF
patterns). Gennem dette arbejde vil du møde C++'s syntaks og libraries... -
reelt er det jo blot et sprog som kan bruges og misbruges.

En opgave kunne være: Lav et lottosystem som kan bestå af enten reducerede,
tilfældige eller matematiske række(r) på en og kun en kupon (hent reglerne
hos den lokale tipsforhandler).

Lidt analyse og design vil give dig alle tidligere nævnte strukturer. Skulle
du finde på at lave en case/switch-statement, så er du begyndt at tænke i en
C implementation... - det skal ligge i designet.

--
/Peer

It's not a bug... - it's a feature!




Kent Friis (06-08-2002)
Kommentar
Fra : Kent Friis


Dato : 06-08-02 19:13

Den Wed, 31 Jul 2002 05:00:39 +0200 skrev James:
>Hej NG
>Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
>basale viden om det.

Hvad er det der gør at folk blander CPP og C++ sammen?

CPP er C PreProcessoren, og har ikke særlig meget at gøre med C++. CPP
kode begynder med #, fx. #if #endif osv, og nærmer sig faktisk et
komplet programmeringssprog (læste jeg ikke et eller andet sted at CPP
er Turing-komplet?)

Mvh
Kent
--
Which one is faster - Lotus Notes or Lotus Esprit?

Bjarke Dahl Ebert (06-08-2002)
Kommentar
Fra : Bjarke Dahl Ebert


Dato : 06-08-02 22:53

"Kent Friis" <leeloo@phreaker.net> wrote in message
news:aip3jf$kto$1@sunsite.dk...

> >Har lige siddet og læst nogle artikler igennem om c++ og har fået den
mest
> >basale viden om det.
>
> Hvad er det der gør at folk blander CPP og C++ sammen?

Der er ikke blandet noget sammen. CPP er en gængs forkortelse for C++.
Benyttes især i contexter (hvad hedder det i flertal) hvor '+' ikke kan
bruges.
For eksempel under Windows hedder C++-sourcefiler typisk .cpp som extension.
Og jeg sværger at det ikke er navngivet efter præprocessoren

> CPP er C PreProcessoren, og har ikke særlig meget at gøre med C++. CPP

Det kan det også være, ja. Sådan er det med forkortelser. De er ikke unikke

> kode begynder med #, fx. #if #endif osv, og nærmer sig faktisk et
> komplet programmeringssprog

Vrøvl.

> (læste jeg ikke et eller andet sted at CPP
> er Turing-komplet?)

Det kunne måske godt være?! Hmm... nu bliver jeg pludselig nysgerrig.
Det kunne måske implementeres som en form for eager lambda-kalkyle, hvor man
fx kan definere
true --> (lambda (a b) a)
false --> (lambda (a b) b)
if (x) A else B --> (x A B)
[a,b] --> (lambda (x) (x a b))
P.first --> (true P)
P.second --> (false P)
osv.

I præprocessorkode:
#define TRUE(a,b) a
#define FALSE(a,b) b
#define IF(x,a,b) x(a,b)
#define øhhh PAIR(a, b)(x) .... ville jeg gerne skrive
// Jeg vil gerne have at FIRST(PAIR(42, 43)) evaluerer til 42.
// her står jeg lidt af. Måske er det slet ikke muligt
// Måske kan man slet ikke lave closures...

Vil IF egentlig overhovedet virke? Dvs. kan man mon kalde IF med et
makronavn som x-parameter, og så få dette evalueret som en makro-ekspansion?
Problemet bliver måske dens eagerness, som jeg antager at præprocessoren har
(argumenter CPP-evalueres før makroinvokationer) - det vil betyde at
ovenstående realisering af "if" bliver strict i både "then" og "else" delen,
uanset x, og det vil nok gøre det svært at få terminering af generelle loops
(continue-delen af loopet ville blive evalueret uanset hvad while-udsagnet
siger).


Prøv iøvrigt lige at lave en debugger til et eventuelt
præprocessor-turingsprog!

Bjarke





Per Abrahamsen (07-08-2002)
Kommentar
Fra : Per Abrahamsen


Dato : 07-08-02 12:33

leeloo@phreaker.net (Kent Friis) writes:

> Den Wed, 31 Jul 2002 05:00:39 +0200 skrev James:
>>Hej NG
>>Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
>>basale viden om det.
>
> Hvad er det der gør at folk blander CPP og C++ sammen?

Af en eller anden grund begyndte C++ leverandørerne i MS windows at
bruge ".cpp" som extension fpr C++ programmer, i stedet for den
standard ".C" som CFRONT brugte, og på trods af den forvirring det
afstedkom blandt erfarne C programmører.

> CPP er C PreProcessoren, og har ikke særlig meget at gøre med C++. CPP
> kode begynder med #, fx. #if #endif osv, og nærmer sig faktisk et
> komplet programmeringssprog (læste jeg ikke et eller andet sted at CPP
> er Turing-komplet?)

Jeg påstod det fordi jeg havde set en CPP program til at udregne
primtal i obfuscated C contest. Henning Makholm sagde at det kunne en
endelig automat også gøre, og han ved mere om den slags end jeg.

Kent Friis (07-08-2002)
Kommentar
Fra : Kent Friis


Dato : 07-08-02 13:23

Den Wed, 07 Aug 2002 13:33:23 +0200 skrev Per Abrahamsen:
>leeloo@phreaker.net (Kent Friis) writes:
>
>> Den Wed, 31 Jul 2002 05:00:39 +0200 skrev James:
>>>Hej NG
>>>Har lige siddet og læst nogle artikler igennem om c++ og har fået den mest
>>>basale viden om det.
>>
>> Hvad er det der gør at folk blander CPP og C++ sammen?
>
>Af en eller anden grund begyndte C++ leverandørerne i MS windows at
>bruge ".cpp" som extension fpr C++ programmer, i stedet for den
>standard ".C" som CFRONT brugte, og på trods af den forvirring det
>afstedkom blandt erfarne C programmører.

Jeg opgav selv at bruge .C (kan ikke huske hvorfor), og bruger nu GCC's
..cc, som jeg synes virker meget fornuftig - den blander man hverken
sammen med C-filernes .c, eller preprocessor-filernes .cpp

>> CPP er C PreProcessoren, og har ikke særlig meget at gøre med C++. CPP
>> kode begynder med #, fx. #if #endif osv, og nærmer sig faktisk et
>> komplet programmeringssprog (læste jeg ikke et eller andet sted at CPP
>> er Turing-komplet?)
>
>Jeg påstod det fordi jeg havde set en CPP program til at udregne
>primtal i obfuscated C contest. Henning Makholm sagde at det kunne en
>endelig automat også gøre, og han ved mere om den slags end jeg.

ok, i den sammenhæng ved jeg kun hvad jeg har læst (og når man ikke kan
huske hvor, så er troværdigheden ikke speciel god), jeg har aldrig lært
noget om turing-maskiner (er kun uddannet datamatiker).

Mvh
Kent
--
Linux 0.12 is out
Windows XP is now obsolete!!!

Bjarke Dahl Ebert (07-08-2002)
Kommentar
Fra : Bjarke Dahl Ebert


Dato : 07-08-02 15:27

"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
news:rj4re6c398.fsf@zuse.dina.kvl.dk...
> leeloo@phreaker.net (Kent Friis) writes:

> Af en eller anden grund begyndte C++ leverandørerne i MS windows at
> bruge ".cpp" som extension fpr C++ programmer, i stedet for den
> standard ".C" som CFRONT brugte, og på trods af den forvirring det
> afstedkom blandt erfarne C programmører.

Det er sikkert fordi Windows ikke er versalfølsom (tak til en eller anden
for den betegnelse .
Men de kunne jo bruge ".cc" som bruges mange andre steder. Jeg har vist også
set ".cxx", kan det ikke passe?
Iøvrigt synes jeg det er noget juks at bruge .h til C++ header filer. Jeg
bruger det også selv, men det er jo fordi det "lissom er slået igennem" ;).
Så hellere .hpp eller hvad som helst andet.


Mvh. Bjarke





Kent Friis (07-08-2002)
Kommentar
Fra : Kent Friis


Dato : 07-08-02 15:31

Den Wed, 7 Aug 2002 16:26:44 +0200 skrev Bjarke Dahl Ebert:
>"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
>news:rj4re6c398.fsf@zuse.dina.kvl.dk...
>> leeloo@phreaker.net (Kent Friis) writes:
>
>> Af en eller anden grund begyndte C++ leverandørerne i MS windows at
>> bruge ".cpp" som extension fpr C++ programmer, i stedet for den
>> standard ".C" som CFRONT brugte, og på trods af den forvirring det
>> afstedkom blandt erfarne C programmører.
>
>Det er sikkert fordi Windows ikke er versalfølsom (tak til en eller anden
>for den betegnelse .
>Men de kunne jo bruge ".cc" som bruges mange andre steder. Jeg har vist også
>set ".cxx", kan det ikke passe?

Jo, den mener jeg også at have set. i øvrigt minder x jo en smule om +
(hvis man er skæv).

>Iøvrigt synes jeg det er noget juks at bruge .h til C++ header filer. Jeg
>bruger det også selv, men det er jo fordi det "lissom er slået igennem" ;).
>Så hellere .hpp eller hvad som helst andet.

Argh, nu var vi lige kommet af med .cpp, og så begynder du med .hpp
i stedet for.

Mvh
Kent
--
8:16pm up 2:37, 1 user, load average: 101.21, 95.46, 55.85
164 processes: 62 sleeping, 102 running, 0 zombie, 0 stopped

With XMMS tugging along nicely, playing Vivaldi...

Per Abrahamsen (07-08-2002)
Kommentar
Fra : Per Abrahamsen


Dato : 07-08-02 12:36

"Bjarke Dahl Ebert" <bebert@worldonline.dk> writes:

> Det kunne måske godt være?! Hmm... nu bliver jeg pludselig nysgerrig.
> Det kunne måske implementeres som en form for eager lambda-kalkyle, hvor man

Du får brug for #include til at skabe rekursion.

Bjarke Dahl Ebert (07-08-2002)
Kommentar
Fra : Bjarke Dahl Ebert


Dato : 07-08-02 15:23

"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
news:rjwur2aojm.fsf@zuse.dina.kvl.dk...

> > Det kunne måske godt være?! Hmm... nu bliver jeg pludselig nysgerrig.
> > Det kunne måske implementeres som en form for eager lambda-kalkyle, hvor
man
>
> Du får brug for #include til at skabe rekursion.

Oh - herligt, den mulighed havde jeg slet ikke overvejet. Så kan man vel
også pludseligt bruge #if til noget i "Turing-emuleringen".
Jeg havde tænkt at man nok kunne lave noget "#define A(x) .... A(...) ...",
hvis ellers det var muligt at afbryde rekursionen. Det ville nok kræve at
man kunne lave en "lazy if".

Nogen må have udviklet nogle skumle præprocessor-regler i C og C++ for at
undgå uendeligt loop i "#define A(x) A(x)". Ved du egentlig hvad der sker
ved det? Er det standardiseret? Måske evaluerer A(42) bare til A(42)? Og
hvad med rækkefølge af evaluering: Ved du om A(B(c)) kalder A med B(c),
eller ekspanderer den B(c) først? Det kan være at det er ligegyldigt så
længe man ikke bruger sådan noget som "#define Q(c) #c".

Mvh. Bjarke





Martin M. Pedersen (07-08-2002)
Kommentar
Fra : Martin M. Pedersen


Dato : 07-08-02 17:36

Hej,

"Bjarke Dahl Ebert" <bebert@worldonline.dk> wrote in message news:U3a49.6649
> Nogen må have udviklet nogle skumle præprocessor-regler i C og C++ for at
> undgå uendeligt loop i "#define A(x) A(x)". Ved du egentlig hvad der sker
> ved det? Er det standardiseret?

Det er standardiseret - i hvert tilfælde i C++. ISO/IEC 14882:1998:

16.3.4: Rescanning and further replacement [cpp.rescan]
After all parameters in the replacement list have been substistued, the
resulting preprocessing token sequence is rescanned with all subsequent
preprocessing tokens of the source file for maore macro names to replace.
Íf the name of the macro being replaced is found during this scan of the
replacement list (not including the rest of the source file's preprocessing
tokens), it is not replaced. Further, if any nested replacements encounter
the name of the macro being replaced, it is not replaced. These nonreplaced
macro name preprocessing tokens are no longer available for further
replacement even if they are later (re)examined in contexts in which that
macro name preprocessing token would otherwise have been replaced.
The resulting completely macro-replaced preprocessing token sequence is not
processed as a preprocessing directvie even if it resembles one.

> Måske evaluerer A(42) bare til A(42)?

Netop.

> Og
> hvad med rækkefølge af evaluering: Ved du om A(B(c)) kalder A med B(c),
> eller ekspanderer den B(c) først? Det kan være at det er ligegyldigt så
> længe man ikke bruger sådan noget som "#define Q(c) #c".

B() bliver evalueret først, dernæst A(). # og ##-operatorerne er
specialtilfælde. Det fremgår 16.3.1 i samme dokument.

mvh.
Martin




Per Abrahamsen (07-08-2002)
Kommentar
Fra : Per Abrahamsen


Dato : 07-08-02 15:57

"Bjarke Dahl Ebert" <bebert@worldonline.dk> writes:

> Men de kunne jo bruge ".cc" som bruges mange andre steder.

Det brugte g++.

> Jeg har vist også
> set ".cxx", kan det ikke passe?

Det brugte Zortech (senere Symantech) så hud jeg visker.

Det var de to første ikke-CFRONT baserede C++ compilere.

Jeg mener det var Borland der indførte .cpp, og Microsoft der
efterlignede dem senere.

Lars Otto (23-08-2002)
Kommentar
Fra : Lars Otto


Dato : 23-08-02 22:02

On Wed, 07 Aug 2002 16:56:53 +0200, Per Abrahamsen
<abraham@dina.kvl.dk> wrote:

>> Jeg har vist også
>> set ".cxx", kan det ikke passe?
>
>Det brugte Zortech (senere Symantech) så hud jeg visker.
>
>Det var de to første ikke-CFRONT baserede C++ compilere.
>
>Jeg mener det var Borland der indførte .cpp, og Microsoft der
>efterlignede dem senere.

Jeg har har programstumper dateret omkring 1989 og 1990 til Zortechs
C++ compiler og de filer hedder alle .cpp og det tror jeg at jeg fik
fra Zortechs version 1 compiler. Jeg husker den som en billig og
hurtig compiler.
/Lars

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste