Avatar billede visualdeveloper Nybegynder
13. august 2005 - 20:25 Der er 31 kommentarer og
2 løsninger

Artikel om c++

Hej eksperter / Begyndere

Jeg synes at der mangler en artikel / artikelserie om c++ her på eksperten.dk

Altså en artikel for begyndere ikke lige som den artikel der er der nu men en ordentlig uddybende dansk artikel om c++.

Jeg ville bare lige høre jeres mening om i synes sådan en artikel(serie) skal på eksperten.dk ?
og hvad den så skal indeholde ?

PFT visualdeveloper
Avatar billede stoiss Nybegynder
14. august 2005 - 13:20 #1
Hmm... Lyder fornuftigt syntes jeg! en ordentlig en, syntes meget at artikler er skrevet på en mærkelig måde, ikke til at forstå hvis det er første gang man læser om det..

.Stoiss
Avatar billede visualdeveloper Nybegynder
14. august 2005 - 16:23 #2
Avatar billede visualdeveloper Nybegynder
14. august 2005 - 16:24 #3
hvad synes du /I ?
Avatar billede bertelbrander Novice
15. august 2005 - 20:10 #4
Jeg synes absolut at det er en god ide med en artikel serie om C++ for begyndere, men synes måske at den der skriver den skulle være lidt mindre begynder selv.

1: Man bør ikke bruge iostream.h, men iostream. Hvis man insisterer på at bruge iostream.h bør man i det mindste fortælle hvorfor.

2: system("pause") tricket virker ikke på linux/unix/etc. Brug std::cin.get();

3: Man skal inkludere stdlib.h (eller cstdlib) for at kunne bruge system.

4: Der mangler ; efter system("pause")

5: "alle sætninger der begynder med #include fortæller at programmet skal inkludere iostream" er noget vrøvl

6: Der bør sendes en std::endl efter cout << "Hello World!";
Avatar billede borrisholt Novice
16. august 2005 - 13:00 #5
Godt med en begydner artikkel .. Den mangler i væsenlig grad kød. Men din artikel, kan man skrive noget ud i et konsol vindue ....

Noget helt andet er hvad er det der er så fedt ved de tarvlige konsol programmer ? Hvorfor ikke bare bruge C++ Builderen og så få noget GUI på, med det samme ?

Du kalder dig selv  "visualdeveloper", men der er ikke meget visual over et konsol program.

Selv gik jeg væk fra konsol programmer da Delphi 1 kom på gaden i 1995.

Jens B
Avatar billede bertelbrander Novice
16. august 2005 - 19:07 #6
>Jens, jeg synes under alle omstændigheder at man skal lære rigtig C++ inden man kaster sig over GUI.
Specielt hvis man bruge BCB, der på mange måder afviger fra normal C++.
Avatar billede borrisholt Novice
16. august 2005 - 19:18 #7
Jeg kan altså ikke se du lærer mere ved at bruge konsol programmer. Tvært imod. Typisk lærer du begge dele samtidig, og så de mere advanceret ting kan du altid tage fat på senere når du har det grundliggende på plads.

BCB afviger fra normal c++, fordi der er så mange units med (eller hvad nu sådan nogle hedder i C++). prøv feks at kigge på classes.hpp eller sysutils.hpp. Der er jo ingen grund til at gøre det sværdre end det er i virkligheden.

Jeg mener at Broland er LYSÅR foran fx Microsoft. For 10 år siden kastede Borland et produkt på gaden som stadig er Visual Studio teknologis overlegnt.

Det var så min subjektive holdning.

Nu til kolde facts, som under bygger mit synspunkt:

.NET går mere og mere i den retning som BCB og Delphi har stået for i 10 år.
Microsoft var nød til at købe Borlands compiler mand for at lave sit .NET, og det er så ikke første gang Microsoft har været nød til at hente folk fra Borland.

Prøv at kigge på den tid det tager at kompilere et c++ program i de respektive compilere...

Ellers kan du jo sammenligne Borlands VCL/CLX med Microsofts MFC.

I øvrigt mener jeg stadig klonsol programmer ser gammeldags ud !!!

Jens B
Avatar billede bertelbrander Novice
16. august 2005 - 19:38 #8
Jeg mener at man skal konsentrere sig om en (/nogle få) ting af gangen, det er svært nok at lære om variable, loops, strenge osv uden man skal forstyres af GUI, også selv om man bruger BCB.
Jo, konsol apps ser gammeldags ud, men det er ikke det vigtige, det vigtige er at man lærer at programmere.

Selv om jeg har både MS VC++ og BCB foretrækker jeg at lave mine GUI apps med Win32Api (eller wxWidgets).
Avatar billede visualdeveloper Nybegynder
17. august 2005 - 21:43 #9
ok jeg skal nok få rettet det !!!
Avatar billede bertelbrander Novice
17. august 2005 - 22:11 #10
Det hjælper, nu manger der blot punkt 2, 5 og 6.
Avatar billede bertelbrander Novice
17. august 2005 - 23:00 #11
Et par kommentarer til artikel nummer 2 (http://www.eksperten.dk/artikler/767):

1: Det skal ikke være = i:
#define PI = 3.1415
Det skal være:
#define PI 3.1415

2: sizeof() er ikke en funktion, det er en operator. Hvad betyder det at sizeof(double) er 8, hvad kan man bruge den infromation til?

3: Du har gentager fejl 2,3 og 6 fra første artikel.
Avatar billede bertelbrander Novice
17. august 2005 - 23:19 #12
I det sidste eksempel står der:
  double pi = 3.1415; // Her defineres en konstant

pi er i dette tilfælde ikke en konstant.
Avatar billede visualdeveloper Nybegynder
18. august 2005 - 14:10 #13
ok jeg vil ændre det til const double pi = 3.1415;
Avatar billede visualdeveloper Nybegynder
18. august 2005 - 14:12 #14
ok ok jeg skal nok få ændret det når jeg får tid (i slutningen af denne uge)
Avatar billede borrisholt Novice
18. august 2005 - 14:17 #15
Måske du skulle fortælle noget om defines. Du kunne jo bruge  RGB som eksempel :

#define RGB(r, g ,b)  ((DWORD) (((BYTE) (r) | \ 
    ((WORD) (g) << 8)) | \
    (((DWORD) (BYTE) (b)) << 16)))


ellers ville det være godt om du bevægede dig i gang med at fortælle som basale søgealgoritmer, array strukturer etc.

Og så noget GUI ikke ? Vi skriver 2005, ikke 1975 !

Jens B
Avatar billede visualdeveloper Nybegynder
18. august 2005 - 14:19 #16
det er helt klart bedst at starte med at lære det basale i c++....det er jo ikke windows programmering i c++ men C++ for BEGYNDERE !
Avatar billede borrisholt Novice
18. august 2005 - 14:21 #17
Så lad være med at skrive noget om GUI det andet er også C++ for begynnere.

Jens B
Avatar billede borrisholt Novice
18. august 2005 - 14:22 #18
Du kunne også bruge mas som eksempel : #define max(a, b)  (((a) > (b)) ? (a) : (b)) 

og så i den forbindelse komme ind på ? : operatoren.

Jens B
Avatar billede visualdeveloper Nybegynder
18. august 2005 - 14:26 #19
Nu skulle de fleste af fejlene være rettet. skriv evt hvis i kan finde flere og skriv om det er i artikel 1 eller 2
Avatar billede borrisholt Novice
18. august 2005 - 14:57 #20
visualdeveloper>> Kyl lige mig en mail !

Jeg har nogle gamle begynner opgaver jeg en gang har skrevet til et Delphi kursus. Selve opgaverne er GUI fri og skulle nemt kunne bruges i C++, eller det KAN de, har lige kigget dem i gennem.

Opgaverne beskæftiger sig med basal søgning i arrays af integers.

Skulle du ikke vlre super stiv i at læse Delphi kode skal det ikke holde dig tilbage, sålænge vi snakker om basis ting, og der ingen GUI er på er koden NÆSTEN det sammen.

Der skulle være rigeligt stof til artikkel 3 som jeg mener skal handle om hvordan man kommer i gang med at bruge sproget, til noget andet en basal tekst ind og ud.

I øvrigt bør du nævnt at >> og << betyder noget andet når de bliver brugt som operatorer i forhold til hvis de bliver brugt i forbindelse med cout og cin, ikke udybende omkring bit shifting, blot nævne det.

ellers er der emner som rekursion, det har jeg en gang skrevet en artikkel om :
http://www.pythia.dk/artikler/vis_artikel.php?id=21

Jens B
Avatar billede borrisholt Novice
18. august 2005 - 14:59 #21
Her er hvad hjælpen skriver om #define :

The #define directive assigns the given value to the specified name. All subsequent occurrences of the name are replaced by the value.
Syntax

#define name value

Parameters

name

Specifies the name to be defined. This value is any combination of letters, digits, and punctuation.

value

Specifies any integer, character string, or line of text.

Example

This example assigns values to the names "NONZERO" and "USERCLASS":

#define    NONZERO    1
#define    USERCLASS  "MyControlClass"
Avatar billede visualdeveloper Nybegynder
19. august 2005 - 15:10 #22
cin.get(); virker ikke ???
Avatar billede borrisholt Novice
19. august 2005 - 15:26 #23
Jeg ville bare lige høre jeres mening om i synes sådan en artikel(serie) skal på eksperten.dk ?
og hvad den så skal indeholde ?

Skriver du i dit spørgsmål, men svare på indlæg vil du ikke ?

Jens B
Avatar billede visualdeveloper Nybegynder
19. august 2005 - 17:45 #24
jeg vil først komme ind på #define max i en af de næste artikler da operatorer er et stort emne !
Avatar billede visualdeveloper Nybegynder
19. august 2005 - 17:46 #25
Hvad betyder det at sizeof(double) er 8, hvad kan man bruge den infromation til? svaret kan du finde i artikel 2
Avatar billede borrisholt Novice
19. august 2005 - 17:47 #26
Fin så ret den fejl du har i artikkel 2 om at define er en konstant !
Hvad så med operatorene ?


Jens B
Avatar billede bertelbrander Novice
19. august 2005 - 19:42 #27
Hvad mener du med at cin.get() ikke virker?

Jeg synes ikke at det er vigtigt at lære om sizeof i en begynder artikel.

Hvis du laver en #define "funktion" bør du vælge noget bedre end max. Dels fordi man bør lave max med en template & fordi der er en i standard/STL biblioteket.
Avatar billede bertelbrander Novice
19. august 2005 - 19:58 #28
cin er ikke en kommando, der er ikke kommandoer i C++, cin er et object.
Avatar billede visualdeveloper Nybegynder
19. august 2005 - 22:23 #29
Nu har jeg slået artiklerne sammen (1 og 2) så nu skulle det blive noget nemmere !!!
Avatar billede bertelbrander Novice
19. august 2005 - 23:37 #30
Jeg er ked at sige det, men:
1: Du skriver stadig om iostream.h, selv om koden bruger iostream
2: Du bruger stadig system("pause")
3: Du inkluderer stadig ikke stdlib.h (eller cstdlib)
4: cin er stadig ikke en kommando, system er heller ikke en kommando, der er ikke kommandoer i C++.
5: Du afslutter stadig ikke dine cout << med endl, så "hit any key ..." står på samme linie som "Hello World!" (hvis ellers system("pause") gør noget).
6: Der står stadig: "#include <iostream> - alle sætninger der begynder med #include fortæller at programmet skal inkludere iostream som indeholder dekarationer på c++'es standart output bibliotek, som vi bruger i vores program (cout)."
7: Du skriver: "- Det er heller ikke klogt at bruge æøå I dine varibler", der findes forhåbentligt ikke nogen kompilere der accepterer æøå i variable (eller andre identifiers).

Jeg er sikker på at det kan blive til en god artikel, men det kræver at du retter disse fejl.
Avatar billede borrisholt Novice
20. august 2005 - 09:43 #31
du skriver :

Du kan definere konstanter på to måder:

- #define
- const

#define:
Denne måde at definere en konstant på er ikke særlig udbredt og den er gammeldags. Jeg vil derfor heller ikke komme mere ind på den end lige at forklare hvordan den bruges. Her er et eksempel på brug af #define til at definere en konstant:

#define PI 3.1415

#define ER IKKE EN KONSTANT !!!!

Jens B
Avatar billede borrisholt Novice
20. august 2005 - 09:46 #32
visualdeveloper>> Helt generelt er gør du et meget stort arbejde ud af det her. Dog synes jeg 1) Du skulle rette de fejl vi på pejer. 2) Hvis nu du var lidt mindre begynner selv ville du have et stører overblik til at skrive en artikel.

Jens B
Avatar billede dexo-fan Nybegynder
10. marts 2007 - 13:35 #33
3) Sæt dig ind i sproget før du skriver en artikel om det.
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
Computerworld tilbyder specialiserede kurser i database-management

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