Oprettet lør. d. 13. august 2005 kl. 20:25:31

visualdeveloper
visualdeveloper (20.849 point. Point ude: 100)

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

Skrevet søn. d. 14. august 2005 kl. 13:20:46| #1

stoiss
stoiss (10.877 point)
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

visualdeveloper
visualdeveloper (20.849 point)
hvad synes du /I ?

Skrevet man. d. 15. august 2005 kl. 20:10:06| #4

bertelbrander
bertelbrander (17.225 point)
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

borrisholt
borrisholt (73.879 point)
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

bertelbrander
bertelbrander (17.225 point)
>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

borrisholt
borrisholt (73.879 point)
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

bertelbrander
bertelbrander (17.225 point)
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

visualdeveloper
visualdeveloper (20.849 point)
ok jeg skal nok få rettet det !!!

Skrevet ons. d. 17. august 2005 kl. 22:11:20| #10

bertelbrander
bertelbrander (17.225 point)
Det hjælper, nu manger der blot punkt 2, 5 og 6.

Skrevet ons. d. 17. august 2005 kl. 23:00:45| #11

bertelbrander
bertelbrander (17.225 point)
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

bertelbrander
bertelbrander (17.225 point)
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

visualdeveloper
visualdeveloper (20.849 point)
ok jeg vil ændre det til const double pi = 3.1415;

Skrevet tor. d. 18. august 2005 kl. 14:12:27| #14

visualdeveloper
visualdeveloper (20.849 point)
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

borrisholt
borrisholt (73.879 point)
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

visualdeveloper
visualdeveloper (20.849 point)
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

borrisholt
borrisholt (73.879 point)
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

borrisholt
borrisholt (73.879 point)
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

visualdeveloper
visualdeveloper (20.849 point)
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

borrisholt
borrisholt (73.879 point)
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

borrisholt
borrisholt (73.879 point)
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

visualdeveloper
visualdeveloper (20.849 point)
cin.get(); virker ikke ???

Skrevet fre. d. 19. august 2005 kl. 15:26:43| #23

borrisholt
borrisholt (73.879 point)
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

visualdeveloper
visualdeveloper (20.849 point)
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

visualdeveloper
visualdeveloper (20.849 point)
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

borrisholt
borrisholt (73.879 point)
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

bertelbrander
bertelbrander (17.225 point)
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

bertelbrander
bertelbrander (17.225 point)
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

visualdeveloper
visualdeveloper (20.849 point)
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

bertelbrander
bertelbrander (17.225 point)
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

borrisholt
borrisholt (73.879 point)
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

borrisholt
borrisholt (73.879 point)
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

dexo-fan
dexo-fan (9.950 point)
3) Sæt dig ind i sproget før du skriver en artikel om det.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Fabriks/forhandler-garanti

Oprettet den 16. maj 2012 kl. 23.05
Raakjaer giver 30 point for svar | Giv et svar »

Windows home server 2011 Remote Desktop?

Oprettet den 16. maj 2012 kl. 21.57
Larsernen giver 60 point for svar | Giv et svar »

Boksekampen på lørdag Kessler vs Green. Hvilken tv-kanal...

Oprettet den 16. maj 2012 kl. 21.00
zandyx giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

5 hotte webtjenester du skal kende

Der er massevis af gratis godbidder på nettet, og vi har samlet fem hotte webtjenester, der er værd at bruge tid på. Se dem her.


Anmeldelser fra PC World

Teaser billede

Test: HTC One X er en fantastisk mobil

HTC leverer et gennemført comeback med One X, der er en Android-telefon med toptunede funktioner og en supersprød skærm. Der er dog også plads til forbedring.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Pas på: Der er huller i skyen

En ny forsker-rapport peger på alvorlige sikkerheds-problemer med Dropbox og andre cloud-lagertjenester.


Nyheder fra Computerworld

Teaser billede

Galleri: 10 apps som udnytter superskærmen på den nye iPad

Med disse apps får du at se, hvad den supersprøde grafik i Apples nye tablet dur til.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger