|
| Start på C/C++ Fra : Martin Søndergård |
Dato : 12-07-02 11:48 |
|
Hejsa.
hvis man vil begynde at programmere C/C++, hvilke hæfter vil I så anbefale,
da jeg ikke er interesseret i at læse en stor tyk bog igennem for blot at
finde ud af at jeg ikke forstår et klap af hvad de siger. hvis I kender
nogle resourcer på nettet er jeg også meget i møde kommende overfor det. jeg
har tænkt det som et lille sommerferie hobby projekt.
mvh.
Martin Ø. Søndergård
| |
Jacob Saaby Nielsen (12-07-2002)
| Kommentar Fra : Jacob Saaby Nielsen |
Dato : 12-07-02 15:56 |
|
In article <agmc1v$961$1@sunsite.dk>, moes@mail.tele.dk says...
> Hejsa.
>
> hvis man vil begynde at programmere C/C++, hvilke hæfter vil I så anbefale,
> da jeg ikke er interesseret i at læse en stor tyk bog igennem for blot at
> finde ud af at jeg ikke forstår et klap af hvad de siger. hvis I kender
> nogle resourcer på nettet er jeg også meget i møde kommende overfor det. jeg
> har tænkt det som et lille sommerferie hobby projekt.
www.programmingtutorials.com
Stor tyk bog jeg kan anbefale: Beginning C++ fra Wrox
--
Jacob Saaby Nielsen
| |
Klaus Petersen (12-07-2002)
| Kommentar Fra : Klaus Petersen |
Dato : 12-07-02 16:39 |
|
> Stor tyk bog jeg kan anbefale: Beginning C++ fra Wrox
Man behøver ikke store tykke bøger for at lære C/C++. Der findes et lille
hæfte på en 100 sider, som er på dansk, der forklarer programmeringssproget
ret godt. Det er meget velegnet til at komme i gang med og det meste af
selve sproget kan man lære ud fra den.
| |
AJC (12-07-2002)
| Kommentar Fra : AJC |
Dato : 12-07-02 20:27 |
|
"Klaus Petersen" <spektual@hotmail.com> wrote in message
news:agmt63$3kq$1@sunsite.dk...
>
> Man behøver ikke store tykke bøger for at lære C/C++. Der findes et lille
> hæfte på en 100 sider, som er på dansk, der forklarer
programmeringssproget
> ret godt. Det er meget velegnet til at komme i gang med og det meste af
> selve sproget kan man lære ud fra den.
>
Titel?
Mvh
AJC.
| |
Klaus Petersen (12-07-2002)
| Kommentar Fra : Klaus Petersen |
Dato : 12-07-02 22:47 |
|
> Titel?
Problemet er bare, at det hæfte jeg snakker om er min nabo's og han er på
ferie - så kan desværre ikke give ISBN eller titel lige nu.
Kender du de der relative små hæfter om HTML, ASP, Access Database og meget
mere...?
Det er sådan et hæfte, bare om C. Jeg har læst det igennem, og det omhandler
det meste af det grundlæggende i C.
| |
Byrial Jensen (12-07-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 12-07-02 21:53 |
|
Klaus Petersen <spektual@hotmail.com> skrev:
> Man behøver ikke store tykke bøger for at lære C/C++. Der findes et lille
> hæfte på en 100 sider, som er på dansk, der forklarer programmeringssproget
> ret godt.
Hvilket programmeringssprog? C og C++ er 2 forskellige sprog som
der endda også findes flere forskellige revisioner af.
Martin som startede tråden bør også gøre sig klart om han ønsker
at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
samlet. Det ville svare til at gå på kursus i spansk og italiensk
på én gang.
> Det er meget velegnet til at komme i gang med og det meste af
> selve sproget kan man lære ud fra den.
Det lyder ikke troværdigt at man kan lære det meste af det
uspeciferede sprog ud fra et hæfte på 100 sider. Hvilket hæfte
snakker du om?
| |
Martin Søndergård (12-07-2002)
| Kommentar Fra : Martin Søndergård |
Dato : 12-07-02 22:23 |
|
det som jeg tænkte var at lære det sprog som var lettest af de to. mener jeg
har hørt at C++ var lettere end C.
mvh.
Martin Søndergård
"Byrial Jensen" <bjensen@nospam.dk> skrev i en meddelelse
news:slrnaiug1i.1e8.bjensen@ask.ask...
> Klaus Petersen <spektual@hotmail.com> skrev:
> > Man behøver ikke store tykke bøger for at lære C/C++. Der findes et
lille
> > hæfte på en 100 sider, som er på dansk, der forklarer
programmeringssproget
> > ret godt.
>
> Hvilket programmeringssprog? C og C++ er 2 forskellige sprog som
> der endda også findes flere forskellige revisioner af.
>
> Martin som startede tråden bør også gøre sig klart om han ønsker
> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
> samlet. Det ville svare til at gå på kursus i spansk og italiensk
> på én gang.
>
> > Det er meget velegnet til at komme i gang med og det meste af
> > selve sproget kan man lære ud fra den.
>
> Det lyder ikke troværdigt at man kan lære det meste af det
> uspeciferede sprog ud fra et hæfte på 100 sider. Hvilket hæfte
> snakker du om?
| |
Klaus Petersen (12-07-2002)
| Kommentar Fra : Klaus Petersen |
Dato : 12-07-02 22:43 |
|
> Martin som startede tråden bør også gøre sig klart om han ønsker
> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
> samlet. Det ville svare til at gå på kursus i spansk og italiensk
> på én gang.
Overdriver du ikke lidt? Der er da ikke tale om 2 vidt forskellige sprog.
C++ er som navnet også antyder bare en udvidelse af C - og udvidelsen er
muligheden for at skrive C objektorienteret. Så er der lidt med erklæringen
af variabler og structs.. men ellers er der vist ikke rigtig nogen forskel.
| |
Kent Friis (12-07-2002)
| Kommentar Fra : Kent Friis |
Dato : 12-07-02 22:59 |
|
Den Fri, 12 Jul 2002 23:43:03 +0200 skrev Klaus Petersen:
>> Martin som startede tråden bør også gøre sig klart om han ønsker
>> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
>> samlet. Det ville svare til at gå på kursus i spansk og italiensk
>> på én gang.
>
>Overdriver du ikke lidt? Der er da ikke tale om 2 vidt forskellige sprog.
>C++ er som navnet også antyder bare en udvidelse af C - og udvidelsen er
>muligheden for at skrive C objektorienteret. Så er der lidt med erklæringen
>af variabler og structs.. men ellers er der vist ikke rigtig nogen forskel.
Man kan også skrive objektorienteret kode i C. IMHO ligger C++ tættere
på Java, end på C.
Mvh
Kent
--
IE is the only thing capable of making Netscape look good
- D. Spider in comp.os.linux.advocacy
| |
Klaus Petersen (13-07-2002)
| Kommentar Fra : Klaus Petersen |
Dato : 13-07-02 03:36 |
|
> Man kan også skrive objektorienteret kode i C. IMHO ligger C++ tættere
> på Java, end på C.
Nå?! Det kommer bag på mig. Hvordan da?
| |
Kent Friis (13-07-2002)
| Kommentar Fra : Kent Friis |
Dato : 13-07-02 09:33 |
|
Den Sat, 13 Jul 2002 04:36:02 +0200 skrev Klaus Petersen:
>> Man kan også skrive objektorienteret kode i C. IMHO ligger C++ tættere
>> på Java, end på C.
>
>Nå?! Det kommer bag på mig. Hvordan da?
Det skal nok lige siges at mit kendskab til Java er ret begrænset, men:
Efter en diskussion med en kammarat om C++ var sværere end Java,
konstaterede jeg at hun havde lært den samme underlige blanding af
C og C++ som jeg havde. Jeg prøvede derfor at lave et eksempel-program,
i ren C++, og hun svarede straks: "Jamen det er jo et Java-program".
C++ er objektorienteret, og Java påstås[1] også at være det. De fleste
OO-ting har de tilfælles, også syntax-mæssigt. Java mangler så pointere
og andre ting, der i C++ ikke er nær så vigtige som i C.
Jo, en C++ compiler kan compilere de fleste[2] C-programmer, men det
gør dem ikke til C++ programmer. Det skyldes simpelthen at C++ startede
som en preprocessor til C. Sproget har udviklet sig en del siden
dengang, og en del features fra C (fx. char*) anbefales det at man
undgår.
Mvh
Kent
[1] Selvom jeg nu har svært ved at opfatte et sprog der mangler multiple
inheritance som OO, og nej interface/implementation "Cut'n'paste
inheritance" er ikke det samme.
[2] Fra /usr/include/X11/Xlib.h: int class;
--
If I wanted a blue screen, I would type "xsetroot -solid blue"
- not D:\WINNT\SETUP
| |
Peer Jensen (13-07-2002)
| Kommentar Fra : Peer Jensen |
Dato : 13-07-02 14:13 |
|
"Kent Friis" <leeloo@phreaker.net> skrev i en meddelelse
news:agnjfk$f64$1@sunsite.dk...
> Den Fri, 12 Jul 2002 23:43:03 +0200 skrev Klaus Petersen:
> >> Martin som startede tråden bør også gøre sig klart om han ønsker
> >> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
> >> samlet. Det ville svare til at gå på kursus i spansk og italiensk
> >> på én gang.
> >
> >Overdriver du ikke lidt? Der er da ikke tale om 2 vidt forskellige sprog.
> >C++ er som navnet også antyder bare en udvidelse af C - og udvidelsen er
> >muligheden for at skrive C objektorienteret. Så er der lidt med
erklæringen
> >af variabler og structs.. men ellers er der vist ikke rigtig nogen
forskel.
>
> Man kan også skrive objektorienteret kode i C. IMHO ligger C++ tættere
> på Java, end på C.
En lidt underlig diskussion. Der er klart forskel på imperative og
objektorienterede sprog, hvor C (+ Pascal, Basic & assembler) tilhører
første gruppe og C++ og Java den sidste gruppe - Visual Basic er en sær
hybrid. En anden indgangsvinkel er fortolkede og kompilerede afviklinger,
hvor C & C++ er kompileret og Java er en hydrid - Pascal og Basic var
oprindelig fortolkede. Endelig kunne man fokusere på portabilitet, hvor Java
har en umiddelbar fordel, hvis man ikke har foretaget sine overvejelser
forinden... - alternativt anvendt mønstre i analysen og designet.
Basalt set bør med fokusere på løsningen... - og derefter vælge redskabet
under forudsætning at teknikken er tilstede.
| |
Mogens Hansen (13-07-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 13-07-02 18:26 |
|
"Peer Jensen" <maxfart@hotmail.com> wrote
[snip]
> En lidt underlig diskussion. Der er klart forskel på imperative og
> objektorienterede sprog, hvor C (+ Pascal, Basic & assembler) tilhører
> første gruppe og C++ og Java den sidste gruppe - Visual Basic er en sær
> hybrid.
C++ er ikke blot et objektorienteret sprog.
Det er et sprog, der understøtter flere programmeringsstile direkte og
samtidigt.
Det understøtter de samme programmeringsstile som C lige så godt som C.
Det understøtter objektorienteret programmering.
Det understøtter generisk programmering.
> En anden indgangsvinkel er fortolkede og kompilerede afviklinger,
> hvor C & C++ er kompileret og Java er en hydrid - Pascal og Basic var
> oprindelig fortolkede.
For de sprog som du nævner er det ikke en egenskab ved selve sproget, men
ved implementeringen af det.
Som du siger har både Pascal og Basic eksisteret i fortolkede og compilerede
implementeringer.
Der findes adskellige Java compilere, der kompilerer i bund til native
assembler kode.
Der findes adskellige C++ fortolkere.
Venlig hilsen
Mogens Hansen
| |
Peer Jensen (13-07-2002)
| Kommentar Fra : Peer Jensen |
Dato : 13-07-02 20:55 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:agpniq$29v2$1@news.cybercity.dk...
>
> "Peer Jensen" <maxfart@hotmail.com> wrote
>
> [snip]
> > En lidt underlig diskussion. Der er klart forskel på imperative og
> > objektorienterede sprog, hvor C (+ Pascal, Basic & assembler) tilhører
> > første gruppe og C++ og Java den sidste gruppe - Visual Basic er en sær
> > hybrid.
>
> C++ er ikke blot et objektorienteret sprog.
> Det er et sprog, der understøtter flere programmeringsstile direkte og
> samtidigt.
> Det understøtter de samme programmeringsstile som C lige så godt som C.
> Det understøtter objektorienteret programmering.
> Det understøtter generisk programmering.
Det samme kunne siges om Pascal og Delphi. Essensen er at C++ understøtter
det objektorienterede paradigme, hvilket C ikke gør. Det er en væsenlig
parameter i forbindelse med kategorisering af sprog og identifikation af
karakteristika. Endelig burde man tage sprogets niveau med i betragtning, fx
assembler = lav, Pascal = høj.
> > En anden indgangsvinkel er fortolkede og kompilerede afviklinger,
> > hvor C & C++ er kompileret og Java er en hydrid - Pascal og Basic var
> > oprindelig fortolkede.
>
> For de sprog som du nævner er det ikke en egenskab ved selve sproget, men
> ved implementeringen af det.
> Som du siger har både Pascal og Basic eksisteret i fortolkede og
kompilerede
> implementeringer.
> Der findes adskellige Java compilere, der kompilerer i bund til native
> assembler kode.
> Der findes adskellige C++ fortolkere.
Kompilerede sprog betyder som regel stærke strukturer og statisk
binding... - og dette er en egenskab ved sproget som er rar at vide på
programmeringstidspunktet.
---
/Peer
It's not a bug... - it's a feature!
| |
Mogens Hansen (14-07-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 14-07-02 07:09 |
|
"Peer Jensen" <maxfart@hotmail.com> wrote
> "Mogens Hansen" <mogens_h@dk-online.dk> skrev
> >
> > "Peer Jensen" <maxfart@hotmail.com> wrote
> >
> > [snip]
> > > En lidt underlig diskussion. Der er klart forskel på imperative og
> > > objektorienterede sprog, hvor C (+ Pascal, Basic & assembler) tilhører
> > > første gruppe og C++ og Java den sidste gruppe - Visual Basic er en
sær
> > > hybrid.
> >
> > C++ er ikke blot et objektorienteret sprog.
> > Det er et sprog, der understøtter flere programmeringsstile direkte og
> > samtidigt.
> > Det understøtter de samme programmeringsstile som C lige så godt som C.
> > Det understøtter objektorienteret programmering.
> > Det understøtter generisk programmering.
>
> Det samme kunne siges om Pascal og Delphi.
Hvor i Delphi er der understøttelse for generisk programmering ?
> Essensen er at C++ understøtter
> det objektorienterede paradigme, hvilket C ikke gør.
Der er en væsentlig forskel mellem det du sagde før og det du siger nu.
Med en formulering i samme stil, vil man sige at "C++ understøtter imperativ
programmering", hvilket ikke var det indtryk man fik at din oprindelige
karakteristik.
Jeg oponerer blot imod en lidt for stereotyp opfattelse, der går på at C++
og Java hører til samme gruppe og at C og C++ ikke hører til samme gruppe.
Prøv at se sprogene som mængder af sprogkonstruktioner:
Fællesmængden mellem C++ og Java vil bl.a. indeholde det objektorienterede.
C++ vil stort set have hele C som delmængde.
C og Java vil stort set ikke have noget til fælles.
Både C++ og Java vil have en stor mængde, som de ikke har til fælles.
[snip]
> > > En anden indgangsvinkel er fortolkede og kompilerede afviklinger,
> > > hvor C & C++ er kompileret og Java er en hydrid - Pascal og Basic var
> > > oprindelig fortolkede.
> >
> > For de sprog som du nævner er det ikke en egenskab ved selve sproget,
men
> > ved implementeringen af det.
> > Som du siger har både Pascal og Basic eksisteret i fortolkede og
> kompilerede
> > implementeringer.
> > Der findes adskellige Java compilere, der kompilerer i bund til native
> > assembler kode.
> > Der findes adskellige C++ fortolkere.
>
> Kompilerede sprog betyder som regel stærke strukturer og statisk
> binding... - og dette er en egenskab ved sproget som er rar at vide på
> programmeringstidspunktet.
Jeg husker Pascal som havende et mere strikt og snerrende typesystem end
C++, selvom det oprindeligt blev compileret til p-code og derefter
fortolket.
Jeg opfatter ikke at C++ og Java ligger langt fra hinanden, med hensyn til
det statiske typecheck. Det er f.eks. en compile-time fejl at kalde en
metode, som kun findes i den mest afledte klasse, gennem en reference til
basisklassen.
Jeg tror man skal have fat i andre sprog, for at påvise den sammenhæng som
du nævner - måske Smalltalk.
Venlig hilsen
Mogens Hansen
| |
Jonas Meyer Rasmusse~ (13-07-2002)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 13-07-02 00:38 |
|
"Klaus Petersen" <spektual@hotmail.com> wrote in message
news:agnigu$d5h$1@sunsite.dk...
[snip]
> Overdriver du ikke lidt? Der er da ikke tale om 2 vidt forskellige sprog.
> C++ er som navnet også antyder bare en udvidelse af C - og udvidelsen er
> muligheden for at skrive C objektorienteret. Så er der lidt med
erklæringen
> af variabler og structs.. men ellers er der vist ikke rigtig nogen
forskel.
Ehm jo, der er meget mere end det.
-et template system
-et typesikkert iobibliotek
-et stort og effektivt standardbibliotek
-en del småting, hvor du selv nævner to af dem
Byriel har efter min mening helt ret i at det er en fordel at vælge _et_ af
sprogene, og
så fokusere på at lære dette. Efter man har fået grundlæggende viden om
dette, vil det være
oplagt at studere det andet sprog nærmere.
Mvh Jonas
| |
Byrial Jensen (13-07-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 13-07-02 06:38 |
|
Klaus Petersen <spektual@hotmail.com> skrev:
>> Martin som startede tråden bør også gøre sig klart om han ønsker
>> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
>> samlet. Det ville svare til at gå på kursus i spansk og italiensk
>> på én gang.
>
> Overdriver du ikke lidt?
Nej.
> Der er da ikke tale om 2 vidt forskellige sprog.
> C++ er som navnet også antyder bare en udvidelse af C
C++ er ikke bare en udvidelse af C. C++ er anderledes end C. Prøv
bare at oversætte nedenstående korrekte C-kode som C++-kode hvis
du er i tvivl.
> - og udvidelsen er muligheden for at skrive C objektorienteret.
Den mulighed har altid været der.
> Så er der lidt med erklæringen af variabler og structs..
Ja, programmet nedenfor viser en række erklæringer som er korrekte
i C, men ikke i C++ - men det var nok ikke det du tænkte på.
> men ellers er der vist ikke rigtig nogen forskel.
Blandt de vigtigste forskelle er for mig at se C++'s
standard-bibliotek og en række udvidelser som lægger til en anden
programmeringsstil i C++ end i C.
/*---------------------------------------------------------------*/
#include <stdlib.h>
struct s1
{
struct s2 { int i; } s;
};
struct s2 s; /* I C har s2 samme scope som s1 */
/* struct erklæringer i funktionsprototype */
struct s3 { int i; } function (struct s4 { double d; });
static imp; /* implicit int */
int and, and_eq, asm, bitand, bitor, bool, catch, class, compl,
const_cast, delete, dynamic_cast, explicit, export, false, friend,
mutable, namespace, new, not, not_eq, operator, or, or_eq,
private, protected, public, reinterpret_cast, static_cast,
template, this, throw, true, try, typeid, typename, using,
virtual, xor, xor_eq; /* Disse er nøgleord i C++ */
int i;
int i; /* Gentagen erklæring o.k. i C */
int f1(); /* Ingen argumenter angivet */
int f2(arg)
int arg;
{
goto label;
int i;
label:
;
int * restrict ip = malloc (sizeof (int));
int array[3] = { [1] = 7 };
enum en { en, to } e = 3;
union un { int i; float f; } u = { .f = 3.4 };
char sarr[4] = "1234";
return f1(arg);
}
| |
Kent Friis (13-07-2002)
| Kommentar Fra : Kent Friis |
Dato : 13-07-02 09:44 |
|
Den Sat, 13 Jul 2002 05:37:35 GMT skrev Byrial Jensen:
>Klaus Petersen <spektual@hotmail.com> skrev:
>>> Martin som startede tråden bør også gøre sig klart om han ønsker
>>> at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
>>> samlet. Det ville svare til at gå på kursus i spansk og italiensk
>>> på én gang.
>>
>> Overdriver du ikke lidt?
>
>Nej.
Enig. Jeg lærte en underlig blanding af de to sprog på datamatiker, og
opfattede egentlig "C++" som et enormt svært sprog. Efter at have læst
en del i denne gruppe, fandt jeg ud af at det ikke var C++ jeg havde
lært, droppede class, og skiftede new ud med malloc, og fandt ud af at C
ikke var så svært. Efter hånden har jeg fået lidt ægte C++ med, og det
sprog virker også meget nemmere end det "C++" jeg lærte dengang. C++ er
ikke længere et sprog jeg ikke vil røre med en ildtang.
Efter den oplevelse, synes jeg "kursus i spansk og italiensk på
en gang" er en ret god sammenligning. For en begynder ligner sprogene
hinanden så meget, at man nemt får dem blandet sammen. Derimod ser jeg
ikke noget det store problem i at lære fx. VB og Lisp på en gang, dem
kan man ikke komme til at blande sammen.
Mvh
Kent
--
What was your username?
<Clicketyclick> - B.O.F.H.
| |
Morten Brix Pedersen (13-07-2002)
| Kommentar Fra : Morten Brix Pedersen |
Dato : 13-07-02 21:45 |
|
Klaus Petersen wrote:
>>Martin som startede tråden bør også gøre sig klart om han ønsker
>>at lære C eller C++. Der kommer rod ud af at forsøge at lære dem
>>samlet. Det ville svare til at gå på kursus i spansk og italiensk
>>på én gang.
>
>
> Overdriver du ikke lidt? Der er da ikke tale om 2 vidt forskellige sprog.
> C++ er som navnet også antyder bare en udvidelse af C - og udvidelsen er
> muligheden for at skrive C objektorienteret. Så er der lidt med erklæringen
> af variabler og structs.. men ellers er der vist ikke rigtig nogen forskel.
Fordi at syntaxen (bortset fra keywords) er ens, skal man ikke
sammenligne dem så tæt.
En C++ programmør (bør) håndtere problemer anderledes end en C
programmør eftersom de værktøjer han har er anderledes.
C++ er meget mere end et tilføjet "class" keyword.
- Morten.
| |
Jacob Saaby Nielsen (13-07-2002)
| Kommentar Fra : Jacob Saaby Nielsen |
Dato : 13-07-02 01:46 |
|
In article <agmt63$3kq$1@sunsite.dk>, spektual@hotmail.com says...
> Man behøver ikke store tykke bøger for at lære C/C++. Der findes et lille
> hæfte på en 100 sider, som er på dansk, der forklarer programmeringssproget
> ret godt. Det er meget velegnet til at komme i gang med og det meste af
> selve sproget kan man lære ud fra den.
Jeg har set sådan et hæfte før. Hvis det er det der også bliver brugt på
Datanom uddannelsen som anbefalet læsestof, så gi'r jeg absolut intet
for det
Kan personligt godt li' Beginning serien fra Wrox fordi de er meget
pædagogiske, forklarer, viser, opgaver, eksempler osv.
Men sådan er jeg
--
Jacob Saaby Nielsen
| |
Klaus Petersen (13-07-2002)
| Kommentar Fra : Klaus Petersen |
Dato : 13-07-02 04:00 |
|
> Jeg har set sådan et hæfte før. Hvis det er det der også bliver brugt på
> Datanom uddannelsen som anbefalet læsestof, så gi'r jeg absolut intet
> for det
Det er vel smag og behag som så meget andet. Når man først har lært en
sproget er hæftet ikke meget mere værd end det papir det er trykt på...
| |
|
|