C++ fra bunden - Del 4

Tags:    c++
Skrevet af Bruger #2853 @ 27.01.2003
Velkommen til 4. del af min C++ fra bunden. I denne del vil du lære hvordan du bruger nogle standard input og output sætninger. Med input fra brugeren kan du gøre dine programmer lidt mere spændende, da brugeren har indflydelse på hvordan programmet i sidste ende vil reagere. Du vil også komme til at lære hvordan du bruger if og else. De kan bruges til at få programmet til at gøre noget forskelligt, ved forskellige tilfælde. Det kunne fx. være i et tilfælde hvor man beder brugeren om et svar, og alt afhængig af hvad det svar var, vil programmet skrive noget tilbage.

Din alder tak



Lad os prøve at lave et program som spørger brugeren om hans alder, og derefter udskriver det på skærmen.

Fold kodeboks ind/udKode 


Linie 10: cin >> alder;
cin er ligesom cout endnu en kommando fra C++'s standard input-output bibliotek. Den bruges til at gemme brugerens indtastede værdi, og gemme den i en variabel. I vores tilfælde gemte den brugerens alder i variablen alder. Læg mærke til at >> vender modsat, i forhold til cout. Dette gør de fordi cin er et input, hvorimod cout er et output, og derfor bruger <<.


Lidt mere advanceret



Lad os prøve at lave et program som både spørger brugeren efter hans fornavn, efternavn og alder.

Fold kodeboks ind/udKode 


Linie 2: #include <string>
Dette er endnu en #include, denne fortæller at vi skal bruge string. String er endnu en type som man kan deklarere variabler med, men den kan en hel del mere end nogle af de typer som vi har gennemgået. Vi har brug for denne, da vi bruger string længere nede i vores kode.

Linie 8: string fornavn;
Her opretter vi så en variabel med navnet fornavn, af typen string. String er en lidt mere advanceret type af char, men jeg vil senere komme mere ind på hvad string har af fordele og ulemper, samt hvilke funktioner den kan.

Linie 19: cout << "Dit fulde navn er: " << fornavn << " " << efternavn << endl;
Denne sætning udskriver brugerens fulde navn. Læg mærke til at der ind imellem fornavn og efternavn er en " ". Dette gør at der bliver et mellemrum imellem fornavnet og efternavnet.


If og else



Vi vil prøve at lave et simpelt gætte program, hvor brugeren så skal gætte det rigtige tal.

Fold kodeboks ind/udKode 


Linie 14: if (guess == number)
Det er her vores program tjekker om brugerens gæt er ligemed det nummer som vi har valgt (5). "==" kaldes for en relationel operatør. Relationelle operatørere, !, >, >=, <, og <=, bruges til at sammenligne 2 værdier.

Når ovenstående program er compiled, vil programmet bede brugeren om at indtaste et tal mellem 1 og 10. Hvis brugeren gætter 5 får han et svar tilbage som lyder: "Flot, du gaettede rigtigt!", men hvis brugeren ikke gætter på 5 sker der ingenting. Intet svar eller noget foreslag.

Lad os prøve at lave et program hvor brugeren får et svar tilbage hvis han/hende gætter forkert:

Fold kodeboks ind/udKode 


Linie 18: else
Else betyder ellers. Det bruges hvis ens if ikke stemmer overens med det som man har bedt den om at finde ud af, i vores tilfælde at gaet == nummer.

Når ovenstående er compiled, får brugeren at vide hvis hans/hendes svar er forkert eller rigtigt. Dette er til en stor hjælp, men ville det ikke være bedre hvis brugeren også kunne få at vide om hans/hendes gæt var for højt eller for lavt, for at hjælpe brugeren lidt på vej:

Fold kodeboks ind/udKode 


Linie 18: else if (gaet < nummer)
Denne sætning er en sammensætning af både else og if. Den bruges hvis den første if ikke passer og man istedet for ønsker at tjekke med en ny if bagefter.

Når ovenstående program er compiled, vil programmet først tjekke efter om brugerens gæt er korrekt, hvis det ikke er det vil det gå ned og tjekke om brugerens gæt er for lavt, og hvis det heller ikke er dette, ja, så kan det jo kun være en ting, nemlig for højt!

Det var det, du har nu lært hvordanne du kan bruge if og else til at gøre dine programmer endnu mere forskellige og spændende, og de begynder så småt at være brugbare. Du har samtidig også lært at bruge cin til at bede brugeren om at indtaste en værdi.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (20)

User
Bruger #489 @ 29.01.03 14:49
Udemærket serie af artikler. En lille rettelse:

Du skriver at cout er en kommando. Det er det ikke. cout og cin er streams, og <<, >> er operatorer defineret på disse streams.
User
Bruger #3104 @ 27.01.03 16:09
Dine artikler er godt skrevet :o) virkeligt et stort plus på denne side.
User
Bruger #2165 @ 05.04.03 13:59
Jeg kan programmere i C, men vil gerne lære C++...

I dit program kan man kun få et forsøg! Ved at lave en while lykke kan programmet blive ved indtil brugeren gætter rigtig!
---
Det er utroligt hvor let C++ er når man har lært C!
User
Bruger #3873 @ 08.05.03 09:15
Dette er jo udemærket hvis man vil taste data ind, men hvad med et eksempel på hvordan man trækker data ind fra en fil.
User
Bruger #1748 @ 16.05.03 14:30
Godt arbejde!
User
Bruger #4201 @ 13.07.03 10:10
Vildt fed artikel for os nybegyndere !
men plz lav nogle flere for men lære ikke nok !
plz plz plz !
User
Bruger #4288 @ 05.08.03 22:27
Hmmm hvorfor går min ud af programmet når jeg trykker enter?
User
Bruger #3353 @ 03.10.03 17:42
prøv at tilføje system ("pause";);lige over return 0
User
Bruger #5053 @ 09.02.04 20:21
Jeg har også det samme problem, den går ud af det med det samme???

Jeg hat prøvet at skrive System ("pause"); men så siger den der fejl???
User
Bruger #4468 @ 17.02.04 16:06
Christian, hvis du bruger System ("pause") skal du tilføje #include <stdlib.h> til includes. Ellers kan du køre programmet i command prompt så lukker det ikke. Og vil da lige sige det er en god begynder artikel :D
User
Bruger #5301 @ 21.02.04 04:13
Linie 14: if (guess == number) <--Er det nogle artikler du har taget et sted fra, men oversat til dansk?
User
Bruger #1278 @ 06.03.04 18:41
det virker da for mig at skrive "system ("pause");" ovenover "return 0;", uden at skulle skrive "#include <stdlib.h>" ????
User
Bruger #1080 @ 25.07.04 23:49
Kanon gode artikel jeg er kommet langt inden for C++
User
Bruger #6850 @ 13.03.05 20:42
hehe nice begynder at fatte det jeg fandt selv ud af inden jeg så else i den der gætte leg hvordan jeg skulle bruge else og jeg har kun prøvet at programmer html før :D :D temlig glad lige nu ;) mange tusinden tak :D
User
Bruger #7992 @ 06.09.05 18:07
kunne du ikke lave gætte-programmet så
det valgte et tal mellem et og ti selv?
ellers god artikkell
User
Bruger #7788 @ 11.10.05 18:07
Fin artikel.
Hvad skal tilføjes, hvis man skal have muligheden for at gætte et nyt tal og at det hele ikke bare skal sløjfes?
User
Bruger #8422 @ 10.11.05 17:48
Genial artikel for begyndere.
Jeg er selv begynder, og den har hjulpet mig helt vildt! :)
User
Bruger #10756 @ 27.10.06 15:24
Rigtig god artikel synes jeg :)

Er der nogen forskel på når IF skal sammenligne to stykker tekst (Er brugerens navn X?) og ta´l (som i eksempel 3)? Jeg får en fejlmeddelelse når jeg forsøger at tilpasse koden.
User
Bruger #3353 @ 11.03.07 20:44
for at lave et random tal skal man bruge funktionen rand() http://cplusplus.com/reference/clibrary/cstdlib/rand.html og for at den skal blive ved skal du bare bruge en while() funktion.
User
Bruger #14103 @ 31.08.08 11:26
Efter jeg har gættet på det rigtige nummer, lukker den bare hurtigt ned(lige som i hello world tutorialen).
Du skal være logget ind for at skrive en kommentar.
t