Avatar billede tuidoi Nybegynder
02. februar 2004 - 20:45 Der er 13 kommentarer og
1 løsning

rettelse af lille program

hey jeg er nybegynder i C++ og har eksperimenteret lidt med switch og så if og else.. jeg har lavet dette lille simple program.. hvor jeg så godt kunne tænke mig at få at vide om det egentligt er rigtigt og måske en instruks i at lave en while lykke, og en forklaring på hvordan man gør sådan at jeg kan få programmet til at gentage sig til man har gættet rigtigt..
nede ved kommentarerne ligger jeg sourve koden ind, hvor i så selv må compile den i f.eks. dev-c++ som jeg selv bruger..

på forhånd tak,

mvh. tuidoi
Avatar billede tuidoi Nybegynder
02. februar 2004 - 20:45 #1
#include <iostream>

using namespace std;

int main()
{
    int nummer = 5;
    int gaet;

    cout << "jeg taenker paa et tal mellem 1-10: ";
    cout << "indtast dit gaet: ";
    cin >> gaet;

    if (gaet == nummer)
    {
      cout << "flot du gaettede rigtigt";
    }
    else if (gaet > nummer)
    {
      cout << "desvaerre dit gaet var for højt, proev igen!";
    }
    else if (gaet < nummer)
    {
      cout << "desvaerre dit gaet var for lavt, proev igen!";
    }

    return 0;
}
Avatar billede tuidoi Nybegynder
02. februar 2004 - 20:47 #2
lille rettelse, mener selvfølgelig "source koden"
Avatar billede arne_v Ekspert
02. februar 2004 - 20:55 #3
Dit program ser nydeligt ud.

  do
  {
    cout << "indtast dit gaet: ";
    cin >> gaet;

    if (gaet == nummer)
    {
      cout << "flot du gaettede rigtigt";
    }
    else if (gaet > nummer)
    {
      cout << "desvaerre dit gaet var for højt, proev igen!";
    }
    else if (gaet < nummer)
    {
      cout << "desvaerre dit gaet var for lavt, proev igen!";
    }
  }
  while(gaet != nummer);

var en mulighed for løkke.
Avatar billede tuidoi Nybegynder
02. februar 2004 - 20:57 #4
okay, jeg tænkete på om du kunne skrive en beskrivelse ud fra de linier som du har rettet f.eks. skrive neden under:

linie 19: while(gaet != nummer);    Her har jeg skrevet dette da, (det du skal hjælpe mig med) =)
Avatar billede arne_v Ekspert
02. februar 2004 - 21:03 #5
Det er en løkke som kører lige så længe gaet er forskellig fra nummer.

do
{
  ...
}
while(betingelse);

tester til slut i løkken mens:

while(betingelse)
{
  ...
}

tester først i løkken.

I dette tilfælde mente jeg at et test til sidst var bedst, fordi du altid vil
lave mindst et gennemløb af løkken.
Avatar billede tuidoi Nybegynder
02. februar 2004 - 23:51 #6
Hmm, jeg kan ikke helt forstå det måske vil du sætte det ind sådan som det skal sidde i mit sammenhæng.. på denne her:

#include <iostream>

using namespace std;

int main()
{
    int nummer = 5;
    int gaet;

    cout << "jeg taenker paa et tal mellem 1-10: ";
    cout << "indtast dit gaet: ";
    cin >> gaet;

    if (gaet == nummer)
    {
      cout << "flot du gaettede rigtigt";
    }
    else if (gaet > nummer)
    {
      cout << "desvaerre dit gaet var for højt, proev igen!";
    }
    else if (gaet < nummer)
    {
      cout << "desvaerre dit gaet var for lavt, proev igen!";
    }

    return 0;
}



Jeg har selv prøvet og kunne få det til at virke nogen lunde som vist nedenunder, men ved selvfølgelig ikke om det også kan bruges i andre sammenhæng..


#include <iostream>

using namespace std;

int main()
{
    int nummer = 5;
    int gaet;

    cout << "jeg taenker paa et tal mellem 1-10: ";
    cout << "indtast dit gaet: ";
    cin >> gaet;

    if (gaet == nummer)
    {
      cout << "flot du gaettede rigtigt";
    }
    else if (gaet > nummer)
    {
      cout << "desvaerre dit gaet var for højt, proev igen!";
    }
    else if (gaet < nummer)
    {
      cout << "desvaerre dit gaet var for lavt, proev igen!";
    }
    while(gaet == nummer);
    while(gaet != nummer);
    return 0;
}

mvh. tuidoi
Avatar billede arne_v Ekspert
03. februar 2004 - 00:01 #7
#include <iostream>

using namespace std;

int main()
{
    int nummer = 5;
    int gaet;

    cout << "jeg taenker paa et tal mellem 1-10: " << endl;
    do
    {
            cout << "indtast dit gaet: ";
            cin >> gaet;
       
            if (gaet == nummer)
            {
              cout << "flot du gaettede rigtigt" << endl;
            }
            else if (gaet > nummer)
            {
              cout << "desvaerre dit gaet var for hoejt, proev igen!" << endl;
            }
            else if (gaet < nummer)
            {
              cout << "desvaerre dit gaet var for lavt, proev igen!" << endl;
            }
    }
    while(gaet != nummer);

    return 0;
}
Avatar billede arne_v Ekspert
03. februar 2004 - 00:01 #8
Jeg har sat while ind og tilføjet linie skift (<< endl);.
Avatar billede tuidoi Nybegynder
03. februar 2004 - 00:06 #9
okay :) du får dine points men kan du fortælle mig hvorfor du skriver " do " ?
Avatar billede arne_v Ekspert
03. februar 2004 - 00:06 #10
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(NULL));
    int nummer = rand() % 10 + 1;
    int gaet;

    cout << "jeg taenker paa et tal mellem 1-10: " << endl;
    do
    {
            cout << "indtast dit gaet: ";
            cin >> gaet;
       
            if (gaet == nummer)
            {
              cout << "flot du gaettede rigtigt" << endl;
            }
            else if (gaet > nummer)
            {
              cout << "desvaerre dit gaet var for hoejt, proev igen!" << endl;
            }
            else if (gaet < nummer)
            {
              cout << "desvaerre dit gaet var for lavt, proev igen!" << endl;
            }
    }
    while(gaet != nummer);

    return 0;
}

er nok iøvrigt sjovere !

:-)
Avatar billede tuidoi Nybegynder
03. februar 2004 - 00:08 #11
jeg tror jeg ved det nu, er " do " lidt det samme som main altså bare en del under main?
Avatar billede arne_v Ekspert
03. februar 2004 - 00:14 #12
do er et ord som simplethen markerer starten på en do while løkke.
Avatar billede tuidoi Nybegynder
03. februar 2004 - 14:43 #13
okay, hvis du gider må du gerne foklare hvad det er der gør at tallet skifter konstant.. for det er nemlig sjovere som du selv nævner
Avatar billede arne_v Ekspert
03. februar 2004 - 14:51 #14
srand(time(NULL)); // initialiser tilfældige tal generatorën udfra tid så den bliver forskellig hver gang
    int nummer = rand() % 10 + 1; // lav et tilfældigt tal og transforme det til 1 .. 10
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
Kurser inden for grundlæggende programmering

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