Skrevet søn. d. 14. august 2005 kl. 13:20:46| #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
Skrevet søn. d. 14. august 2005 kl. 16:23:33| #2
Skrevet søn. d. 14. august 2005 kl. 16:24:34| #3
Skrevet man. d. 15. august 2005 kl. 20:10:06| #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!";
Skrevet tir. d. 16. august 2005 kl. 13:00:26| #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
Skrevet tir. d. 16. august 2005 kl. 19:07:31| #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++.
Skrevet tir. d. 16. august 2005 kl. 19:18:28| #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
Skrevet tir. d. 16. august 2005 kl. 19:38:46| #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).
Skrevet ons. d. 17. august 2005 kl. 21:43:18| #9
ok jeg skal nok få rettet det !!!
Skrevet ons. d. 17. august 2005 kl. 22:11:20| #10
Det hjælper, nu manger der blot punkt 2, 5 og 6.
Skrevet ons. d. 17. august 2005 kl. 23:00:45| #11
Et par kommentarer til artikel nummer 2 (
http://www.eksperten.dk/ (...)):
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.
Skrevet ons. d. 17. august 2005 kl. 23:19:27| #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.
Skrevet tor. d. 18. august 2005 kl. 14:10:09| #13
ok jeg vil ændre det til const double pi = 3.1415;
Skrevet tor. d. 18. august 2005 kl. 14:12:27| #14
ok ok jeg skal nok få ændret det når jeg får tid (i slutningen af denne uge)
Skrevet tor. d. 18. august 2005 kl. 14:17:05| #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
Skrevet tor. d. 18. august 2005 kl. 14:19:34| #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 !
Skrevet tor. d. 18. august 2005 kl. 14:21:18| #17
Så lad være med at skrive noget om GUI det andet er også C++ for begynnere.
Jens B
Skrevet tor. d. 18. august 2005 kl. 14:22:26| #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
Skrevet tor. d. 18. august 2005 kl. 14:26:11| #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
Skrevet tor. d. 18. august 2005 kl. 14:57:28| #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/ (...)Jens B
Skrevet tor. d. 18. august 2005 kl. 14:59:55| #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"
Skrevet fre. d. 19. august 2005 kl. 15:10:55| #22
cin.get(); virker ikke ???
Skrevet fre. d. 19. august 2005 kl. 15:26:43| #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
Skrevet fre. d. 19. august 2005 kl. 17:45:07| #24
jeg vil først komme ind på #define max i en af de næste artikler da operatorer er et stort emne !
Skrevet fre. d. 19. august 2005 kl. 17:46:39| #25
Hvad betyder det at sizeof(double) er 8, hvad kan man bruge den infromation til? svaret kan du finde i artikel 2
Skrevet fre. d. 19. august 2005 kl. 17:47:43| #26
Fin så ret den fejl du har i artikkel 2 om at define er en konstant !
Hvad så med operatorene ?
Jens B
Skrevet fre. d. 19. august 2005 kl. 19:42:45| #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.
Skrevet fre. d. 19. august 2005 kl. 19:58:14| #28
cin er ikke en kommando, der er ikke kommandoer i C++, cin er et object.
Skrevet fre. d. 19. august 2005 kl. 22:23:21| #29
Nu har jeg slået artiklerne sammen (1 og 2) så nu skulle det blive noget nemmere !!!
Skrevet fre. d. 19. august 2005 kl. 23:37:26| #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.
Skrevet lør. d. 20. august 2005 kl. 09:43:28| #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
Skrevet lør. d. 20. august 2005 kl. 09:46:36| #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
Skrevet lør. d. 10. marts 2007 kl. 13:35:33| #33
3) Sæt dig ind i sproget før du skriver en artikel om det.