Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Start på C++

Forord

Jeg har valgt at skrive denne artikel om C++, fordi en sådan artikel har været efterspurgt længe, og fordi der ikke er andre, der har gjort det.
Jeg ved ikke meget om C++, men nok til at skrive en artikel om det. Det synes jeg i hvert fald selv.

Det første du skal bruge er en ’compiler’. Det er et program, der omdanner din C++ kode til maskinkode (binær kode), som består af en masse 1’ere og 0’ere. Et godt program, jeg bruger det selv, er Bloodshed’s Dev-C++, som er gratis, og kan downloads her: http://www.bloodshed.net/ Den nyeste version er 4.9.9.2 (beta). Jeg tager udgangspunkt i, at du bruger denne version, da det er den eneste jeg kender til.

Nå, men når du har downloadet den, springer vi hårdt på, og laver vores første program.
Strukturen i C++ minder meget om andre sprog, som f. eks. PHP. Dog vil jeg vove at påstå, at C++ er en del mere avanceret.

Åben Dev-C++, vælg ’Filer’, vælg Ny(t) og tryk på ’Source fil’, eller, hvis du er doven, tryk Ctrl + N, men det er kun hvis du er rigtig doven!!

Nu skulle der meget gerne komme et stort, hvidt felt i midten af programmet, som du kan skrive i. Der skriver du:

  1. #include <iostream>

  2. int main(void)
  3. {
  4.     std::cout << "Hej verden!";
  5.     return 0;
  6. }

Når du har indtastet denne kode, trykker du F9. Gem dit program som ’program’. Nu kører dit program. Men du kan bare ikke se det. Det lukker sig selv med det samme, hvilket er en kæmpe ulempe, så det må vi hellere får gjort noget ved. Men først vil jeg lige forklare, hvad det var vi gjorde:

  • #include <iostream>

#include er en constant, som i C++ bruges til at inkludere filer, og iostream er den fil, der tillader os at bruge cout, som står for ’Console Out’, og det er netop hvad vi laver, en ’Console Application’. Men det, at du inkluderer en fil, betyder ikke, du skal have den liggende et sted på din computer. Det klarer Dev-C++ for dig. iostream er et såkaldt ’bibliotek’, der indeholder nogle bestemte funktioner, bl. a. cout.

Efter vi har inkluderet de filer, vi skal bruge, skal vi have en funktion, der udgør vores program. Du kan lave alle de funktioner du vil, men en af dem skal være selve programmet, og den skal hedde ’main’. int er den type, funktionen skal være. int står for ’integer’, som på engelsk betyder ’tal’ eller ’nummer’. Derfor returnerer vi et nummer, altså return 0. Alt dette behøver du ikke forstå, det er bare fakta.

  • std::cout << "Hej verden!";

std er det namespace vi bruger, og den er også med til at bestemme, hvilke funktioner vi må bruge.

cout står som sagt for ’Console Out’, og bruges til at give output. De smarte har så måske regnet ud, at der også er noget, der hedder cin, altså ’Console In’, og det er helt rigtigt. cin bruges til at putte værdier i variabler, men det kommer vi først til senere.

Det er lidt svært at forklare de to pile, men altså cout tager dem til venstre, mens cin tager dem til højre. Dette giver jeg også et eksempel på senere.

’Hej verden!’ er bare det, vi vil give som output, og semi-kolonet har samme funktion som i PHP.

Nu mangler vi bare at holde vores program kørende, så vi kan vise det for andre. Vi kan gøre det på 2 måder:

Enten ved brug af funktionen system(), eller ved at lade brugeren give noget input. Vi starter med system(). Den tager kun en parameter, og det er hvad den skal gøre. Vi vil ikke have programmet til at lukke efter main() er blevet læst af programmet, så vi indsætter følgende linie:

  • system(”PAUSE”);

Det sætter vi først til sidst i programmet, så vi får det hele med.

  1. #include <iostream>

  2. int main(void)
  3. {
  4.     std::cout << "Hej verden!";
  5.     system("PAUSE");
  6.     return 0;
  7. }

Nu er det op til brugeren at lukke programmet. Det kan gøres ved at trykke på en tilfældig tast, eller ved at trykke på ’Luk’-knappen.

Det var min første artikel om C++, men absolut ikke den sidste. Jeg håber den kan bruges.
Sidst redigeret 16:41 30/05/2007 af Rowl
Oprettet af:

Diverse

Point modtaget: 0

Rate:
15:22 12/03/2006

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Kan ikke se hvorfor du bruger main(void).
Programmet er så enkelt at det ikke behøves?
Og hvorfor bruger du ikke using namespace std;
Istedet for hele tiden at skrive std::?
Derudover skriver du at "enten system() eller med input"?
Der findes jo ikke KUN de 2 måder.
Hvad med getchar(); og cin.get();?
Derudover vil jeg nu ikke lige sige at C++ ligner PHP?
- Synes jeg faktisk ikke på nogen måde.
Synes heller ikke rigtigt du forklarer return 0;?
- Det kunne godt se noget underligt ud for de fleste nybegyndere.
Fint nok du skriver det med <iostream>, men du siger slet ikke noget om at der findes andre, det kunne du måske godt lige.
Ellers en fin, måske lidt kort artikel, som mest forklarer lidt om opsætningen, til at gå igang med det.

Kan godt være jeg lyder lidt "streng", men det er bare for at hjælpe. :)
Oprettet af:
  Mail
17:16 12/03/2006
vOid > Nej, synes overhovedet ikke du er streng, så længe kritikken er konstruktiv (og det mener jeg din er), er den guld værd :) Men jeg prøver lige at gå dine kommentarer i gennem:

Kan ikke se hvorfor du bruger main(void).

void eller ej, jeg plejer heller ikke at skrive det, men hvis vedkommende der læser min artikel kan få det ind mellem ørerne, er det vel fint nok.

Og hvorfor bruger du ikke using namespace std;

Det ville jeg først komme ind på i min anden (eller senere) artikel, jeg skriver heller aldrig std:: i mine programmer, endnu engang for at øge brugernes viden.

Derudover skriver du at "enten system() eller med input"?
Der findes jo ikke KUN de 2 måder.


Jeg har aldrig sagt, det er de eneste to måder. Men det er nu engang de måder, jeg kender, og som jeg benytter mig af.

Hvad med getchar(); og cin.get();?

Da min viden indenfor C++ er begrænset (hvlket jeg mener, jeg pointerede i starten af artiklen), så kender jeg ikke til getchar(). Jeg kender godt til cin.get(), det var den jeg mente med "input" tingen, men den ville jeg også gemme til en senere artikel.

Derudover vil jeg nu ikke lige sige at C++ ligner PHP?

Det tror jeg er smag og behag, det er ikkef selve sproget, der ligner PHP, men dets struktur - Kig f. eks. på if-konstruktioner i både C++ og PHP, klasser, variabler osv.

Synes heller ikke rigtigt du forklarer return 0;?
Jeg ved ikke om du har nærlæst hele min artikel, men jeg mener jeg kommer med en udemærket forklaring om return 0. Ellers må du sige hvad du synes jeg skal skrive i stedet.

Fint nok du skriver det med <iostream>, men du siger slet ikke noget om at der findes andre, det kunne du måske godt lige.

Det forstår jeg ikke helt. Altså om der findes andre includes? Det finder folk ud af efterhånden som de går videre. Min artikel omhandlede kun det simpleste af det simple.

Håber det gav lidt eftertanke :) Skriv meget gerne igen ;)
Oprettet af:
  Mail
17:57 12/03/2006
void eller ej, jeg plejer heller ikke at skrive det, men hvis vedkommende der lærer min artikel kan få det ind mellem ørerne, er det vel fint nok.
Det har du ret i :)

Det ville jeg først komme ind på i min anden (eller senere) artikel, jeg skriver heller aldrig std:: i mine programmer, endnu engang for at øge brugernes viden.

Når okay.
Synes nu nok du kunne have kommet dette i artiklen da den ville blive lidt længere og fyldigere.

Jeg har aldrig sagt, det er de eneste to måder. Men det er nu engang de måder, jeg kender, og som jeg benytter mig af.

Aha. Mig der havde misforstået.
Troede at du med "enten" mente at der kun var de 2.

Da min viden indenfor C++ er begrænset (hvlket jeg mener, jeg pointerede i starten af artiklen), s?Ekender jeg ikke til getchar(). Jeg kender godt til cin.get(), det var den jeg mente med "input" tingen, men den ville jeg også gemme til en senere artikel.

Ja, jeg havde set at du skrev at du ikke har så meget viden.
Men dette er igen fordi jeg havde misforstået det med enten, så jeg skrev et par udover dem du skrev.

Det tror jeg er smag og behag, det er ikke selve sproget, der ligner PHP, men dets struktur - Kig f. eks. på if-konstruktioner i både C++ og PHP, klasser, variabler osv.

Smag og behag kan du vel have ret i.
Og der havde jeg så misforstået (-igen) - og troede du mente hele sproget.
Men som du selv skriver nu ang. if osv. så er det rigtigt nok.

Jeg ved ikke om du har nærlæst hele min artikel, men jeg mener jeg kommer med en udemærket forklaring om return 0. Ellers må du sige hvad du synes jeg skal skrive i stedet.

Ja, det var vist mig der lige have været en tand for hurtig.
Læste den lige igennem igen, og så nu at du havde forklaret.
Men men men.
Din forklaring er nu ikke helt rigtigt.
Du skriver at så returnere man bare et nummer, altså ligesom det kunne være hvilket somhelst nummer.
Men grunden til at man returnerer er at 0 betyder sand.
Så man returnerer at programmet er sandt.
Sådan er det også i mange andre sprog, f.eks. i Python
  1. >>> 1 == 1
  2. 0
  3. >>> 1 == 2
  4. 1
Altså 1 er lig med 1, ja, så 0 = Sand.
Og 1 er lig med 2, nej, så 1 = Falsk.

Det forstår jeg ikke helt. Altså om der findes andre includes? Det finder folk ud af efterhånden som de går videre. Min artikel omhandlede kun det simpleste af det simple.

Det var netop andre includes jeg mente.

---

Havde lige misforstået en del. Må du undskylde :)




Sidst redigeret 18:25 - 12/03/2006
Oprettet af:
  Mail
18:23 12/03/2006
Det er helt okay :) Det med 1 og 0 forstår jeg ikke helt :susp: hehe men pyt med det, kommer nok på et tidspunkt
Oprettet af:
  Mail
19:07 12/03/2006
Hehe.

men pyt med det, kommer nok på et tidspunkt
Det tidspunkt er nu! :P

Ved ikke, hvordan man skal forklare det, men man kan sige det er en slags binær-kode (som du også selv var inde på i din artikel) - altså en form for maskinkode.
Så er 0 altså, computerens svar på Sand
Og 1 er computerens svar på Falsk.
I øvrigt er det ikke kun 0 og 1.
0 er bare altid sandt, og alle andre nummer er falske. [^0]
Man plejer bare altid at bruge 0 og 1.
2 bruges også til noget, men må desværre erkende at jeg ikke kan huske til hvad. Beklager.
Oprettet af:
  Mail
19:22 12/03/2006
Kan i ikke starte en forum tråd og så lægge et link til den tråd her?
I stedet for at spamme kommentarerne;):)
Oprettet af:
  Mail
21:25 12/03/2006
synes du mangler en beskrivelse af hvad C++ er og hvad det bruges til???
Oprettet af:
  Mail
20:05 13/03/2006
uoverskulig
Oprettet af:
  Mail
20:08 15/03/2006
webstuff > Mener ikke vi spammer, men jo kunne nok været en god idé ;)

lgd.np > Fair nok, det kan være det kommer senere.

freehtml > Kom nu med noget konstruktivt, det er ikke nok at skrive sin mening. Jeg vil have at vide hvad jeg kan gøre bedre, altså hvor den er uoverskulig og hvad der skal ændres på. Simpelthen nogle argumenter. Undskyld jeg siger det så ligeud, men hader når folk bare skriver et ord og tager det som en kommentar, DET er hvad jeg kalder spam. ..
Oprettet af:
  Mail
20:17 15/03/2006
  1.  #include <iostream>

  2. using namespace std;

  3. int main (int argc, char *argv[])
  4. {
  5.   cout << "Hello World!" << endl;
  6.   cout << "Tryk på enter for at komme videre" << endl;
  7.   cin.get();
  8.   return 0;


Sådan vil jeg personligt have lavet det :P
- det giver også mulighed for at selv skrive teksten til det der enter noget ;) i stedet for at den skriver "tryk på en vikårlig tast for at komme videre"

Desuden ser din kode nu ikke spc. godt ud når man åbner den, brug
til linie skift, bagefter teksten, indenfor " ikke udenfor den.
Sidst redigeret 14:25 - 14/06/2006
Oprettet af:
  Mail
14:23 14/06/2006
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes