C++.

  • Man skal jo begynde et sted, men når du har lært at bruge std::string, std::stack og måske std::queue så er det helt klart muligt at lave en lommeregner der kan finde ud af +, -, *, / og ^, uden de helt store problemer, om end parenteser og operatorer/funktioner som negativt fortegn, cosinus, sinus osv. tager lidt mere arbejde at få til at fungere korrekt.

  • hej igen.
    nu vil jeg gerne vide hvordan man overfører en værdi fra to bogstacer(tal) til et andet tal. Hvor jeg derefter skulle kunne overføre værdien tilbage til y hvor jeg næste gang kan få y til at blive 2 hvis jeg plusser z igen.
    ''pointoptælling,,
    f. eks.(den måede jeg troede jeg kunne gøre dette)


    Input:(som jeg troede)
    y = 0;
    z = 1;
    y + z = t;(den måde jeg troede jeg kunne overføre værdien til et andet bogstav.)
    t = y;


    Output:(som jeg troede)
    1


    Næste gan jeg svarede rigtigt.
    2


    eller forkert


    0.



    Håber i forstår.


    -FredeK

  • Tak for hjælpen men det virker stadig ikke.
    I kan life går stykket hvor jeg får problemer

    Code
    1. if (x == 1)
    2. cout << "Points " << y + z << endl << endl;
    3. t = y + z;
    4. else if (x == 2)
    5. cout << "Points " << y - z << endl << endl;
    6. t = y - z; else cout << " " << endl << endl;
  • Ok jeg forstår så ikke helt hvad du vil...


    Prøv evt at skrive præcis hvad det er den skal outputte


    Fx at hvis a = 1 0g b = 2 så er output (c) = 3 fx (det er plus)


    Hvis du bare vil tælle 2 værdier op hver gang de bliver valgt som en point tavle kan du lave noget med at du kan lave en kontrol der kan ligge til.


    hvis du i consolen siger a skal den ligge til a og hvis du skriver b skal den ligger til b


    men er meget nemt med nogle if's hvor du bare laver

    Code
    1. if("condition")
    2. {
    3. a++;
    4. }
    5. else if("condition")
    6. {
    7. b++;]
    8. }


    også lave printer "a-værdi vs b-værdi
    håber det gav lidt mening, og var hen af det du ville

    Intel I5 2500k | Gigabyte Z68 | 16GB Kingston | Radeon 380 | 1 Samsung EVO850 512MB | Enermax Digifanless 550W
    27" (U2711) DELL | 24" (2408WFP) DELL | Ergotron LX Dual Side-by-Side

    Canon 5DM4 | 16-35mm 2.8L | 24-70mm 2,8L | 85mm 1.2L USM II | 70-200mm 2.8L IS
    Nogle Speedlites | PocketWizards


  • Jeg forstår ikke helt??


    Du får lige hele koden.





    #include<iostream>
    using namespace std;
    int main ()
    {
    float x, y, z, t;
    y = 0;
    z = 1;
    cout << "ROUND 1" << endl << endl;
    cout << "Type 1 for Yes or 2 for No" << endl << endl;
    cout << "----------" << endl << endl;
    cout << "Round 1: GAMES AND GAME COMPANIES" << endl << "Questions: 5" << endl << endl;
    cout << "Question?" << endl;
    cin >> x;
    if (x == 1)
    cout << "You're Right" << endl << endl;
    else if (x == 2)
    cout << "Sorry, You're Wrong" << endl << endl;
    else
    cout << "INVALID!" << endl << endl;
    if (x == 1) // Test
    cout << "Points " << y + z << endl << endl;
    t = y + z;
    else if (x == 2)
    cout << "Points " << y - z << endl << endl;
    t = y - z;
    else
    cout << " " << endl << endl; // Test End
    cout << "Question?" << endl;
    cin >> x;
    if (x == 2)
    cout << "You're Right" << endl << endl;
    else if (x == 1)
    cout << "Sorry, You're Wrong" << endl << endl;
    else
    cout << "INVALID!" << endl << endl;
    if (x == 2)
    cout << "Points " << y + z << endl << endl;
    t = y + z;
    else if (x == 1)
    cout << "Points " << y - z << endl << endl;
    t = y - z;
    else
    cout << " " << endl << endl;
    cout << "Question?" << endl;
    cin >> x;
    if (x == 1)
    cout << "Sorry, You're Wrong" << endl << endl;
    else if (x == 2)
    cout << "You're Right" << endl << endl;
    else
    cout << "INVALID" << endl << endl;
    cout << "Press Enter To Exit" << endl;
    cin.get();
    cin.ignore();
    return 0;
    }

  • Jeg kan ikke helt se hvad meningen er med din kode fredek :D Men du laver det samme to gange kan jeg se, hvor du så bare bytter rundt på hvad der skal ske efter du har læst x ind.


    Det du sikkert får problemer med er at du skal huske at når du laver en if-sætning og ikke sætter { ... } bagefter, så er det kun den første "linje" bagefter som bliver udført.



    Derfor bør du vænne dig til altid at lade { ... } hver gang du laver if-sætninger og løkker, når du er ny inden for programmering. :) Når du så bliver hardcore engang, så kan du godt fuske lidt rundt og undlade dem... Når du altså har helt styr på hvordan det virker og hvad det betyder :D Men det gør koden svære at læse, når de ikke er der.


    Vil lige tage det ene af spørgsmålene i din kode også. Det ser nemlig ud til at du kan samle lidt sammen. :)


    Dog er det smartere at bruge en switch i dit tilfælde, hvor du blot tjekker på hvad en enkelt variabel er. :) Her skal du dog huske på at det du har i din case (altså case ->1<- og case ->2<-) skal være konstant. :)



    EDIT: Det skal lige bemærkes at jeg ikke har glemt { ... } i det sidste eksempel. Det er nemlig ikke nødvendig når man laver en case-break, da det her er case og break som angiver start og slut.

  • Har uskiftet alle mine () med {} men det virker stadigvæk ikke den siger den samme fejl som før!(se billede nedenfor).



    og jeg forstår ikke helt hvordan du bruger switch eller hvad det overhovedet er. vær så venlig at forklare nærmere.


    Her er billedet.


    -FredeK


  • Du skal ikke udskifte alle ()'er med {}'er. ( og { er vidt forskellige, og skal bruges i forskellig omfang.
    Har du overvejet at læse lidt basis bøger om C++?

  • Quote

    Oprindeligt indlæg af fhqwhgad


    Du skal ikke udskifte alle ()'er med {}'er. ( og { er vidt forskellige, og skal bruges i forskellig omfang.
    Har du overvejet at læse lidt basis bøger om C++?


    Har bestilt en hos min lokale bogforretning.
    Er lige kommet hjem fra ferie så har ikke haft tid til at hente den.


    Men sagde Frankovic ikke at jeg skulle ændre alle mine if og else paranteser til {}(hvad hedder det?)


    -FredeK


  • Nej ikke helt. Selve if forespørgelsen skal stadig være i parentes, det er først det den skal udføre (hvis den er sand) der skal stå i {}.


    Eks:


    if (x == 1) // if sætning i parentes
    { // start
    print("X er lig 1\n"); // ting der skal udføres
    } // slut


  • Finally! :D


    Tak for hjælpen fhqwhgad det virker :D



    Og er der nogen der vil vide mig hvaf Frankovic mener med switch?


    Tak for hjælpen.


    -FredeK

  • Hehehe :D Ja det var ikke meningen du skulle udskifte dine parenteser med tuborgklammer :P (du må have været lidt træt siden du ikke kiggede på det kode jeg skrev :$) :D


    Ej.. Driller bare. :) Fint at du fik det til at virke. :D


    switch er kontrol-struktur i mange programmeringssprog - også C++. :) Lige som if, for og while :D Nu brugte jeg selv din egen kode som eksempel, men det som arnbak linker til er også fint. :)


    Hvis jeg skal prøve at forklare det så kommer det her:



    Bemærk at jeg laver indrykning, hver gang jeg går et niveau længere ind i koden. På den måde bliver koden lettere at læse, da man tydeligt kan se niveauerne i kontrol-strukturen. :) En god vane at lave så letlæselig kode som mulig. :D



  • ok, tusind tak Frankovic tror jeg forstår :D

  • Så sætter jeg gang i tråden igen hehe :O (jeg skulle jo begynde igen efter jeg gav op [SIZE=7]igen[/SIZE])


    jeg kan godt forstå hvis i synes det er irriterende at jeg hele tiden giver op og begynder igen og at i derfor ikke vil hjælpe mig siden jeg nok stopper for en tid igen.


    Men hver gang jeg er begyndt igen er det gået lidt bedre for mig.


    Nå men nu til mit problem.


    Jeg har lige lært at bruge "Sleep();"


    EKS:


    Men jeg synes det tager lidt for lang tid at skrive "Sleep();"mellem hvert bogstav når jeg vil have denne effekt:


    ADVARSEL: PORTAL SPOILERS!!! ADVARSEL: PORTAL SPOILERS!!!


    Jeg prøvede dette:



    Men det virkede ikke.


    Jeg vil gerne have at jeg bare skal skrive "Sleep();" én gang istedet for hver gang mellem et bogstav.


    Så hvad skal jeg gøre eller skal jeg eventuelt skrive en anden kode?



    -FredeK

  • Lav en streng som hedder "Hello" (eller hvad som helst). Split din streng mellem hvert bogstav og lav en loop der printer et bogstav og laver en sleep.


    Det er ihvertfald en måde at gøre det på.
    MEN du ender nok med mere kode som det du har der, så fordi det tager for lang tid at skrive sleep(); er nok ikke en god grund.


    C# eksempel



  • Jaja men nu brugte jeg jo bare hello som et eksempel.


    Men jeg forstår desværre ikke helt hvad du mener med streng så jeg må nok studere lidt mere hehe. :D



    Tak for hjælpen


    -FredeK