webForumDet fria alternativet

så man kan välja i en lista först (nybörjarefråga) ?

C/C++

2 svar · 174 visningar · startad av superjoppe

Medlem sedan dec. 20022 inlägg
Frågan#1

Började med C programmering i den naturvetenskapliga klassen jag går i förra veckan..

Skulle gärna vilja ha hjälp med detta problem jag ställdes för idag.

Först ska det vara en lista typ så här:

- Addition
- Subtraktion
- Multiplikation
- Division

Man ska då kunna välja ett av alternativen och sen skriva in sina tal.
Jag vet hur man gör själva kalkylatorn, men hur gör man så man i början kan välja räknesätt?

MVH Joppe

Medlem sedan juni 200010 432 inlägg
#2

Jag antar att du ska göra din "lab" i console-läge. Då är det bara att peta ihop en meny och iterera från användaren samt välja ut lämplig funktion genom t.ex en switch-sats. Pseudo


ut -> "mata in räknesätt <+,-,*,/>"
räknesätt <-  in
switch(räknesätt){
    case '+' :  getValues(a,b)
                    fooAdd(a,b)
        break
    case '-' : getValues(a,b)
                   fooSub(a,b)
       break
       ....
       osv
       ....
     }

double fooAdd(){
     return a+b
}

double fooSub(){
     return a-b
}

...
osv
...

Typ ;)

*hur du ska implementera detta får du klura ut med hjälp av kurslitteraturen :e*

Medlem sedan dec. 20022 inlägg
#3

Japp, jag ska göra det i "console-läge", dock förstod jag inte riktigt ditt svar :/
Hmm, jag kan visa hur jag ska använda det.
Att jag skulle använda det till en kalkylator var bara för att förenkla det för er.
Det ska användas till ett spel..

#include <stdio.h>
#include <stdlib.h>
        
main()
{
 int bagdamage,closehitsumma;
  printf(" testing.. \n\n");
 while (1)
 {
 printf(" bagdamage before swing:  ");
 scanf("%d",&bagdamage);
 summa=0.0000000163654*bagdamage*bagdamage*bagdamage*bagdamage+0.0000919*bagdamage*bagdamage*bagdamage+0.011315*bagdamage*bagdamage+6.79566657*bagdamage+364.54076;
 printf("\n close hit: %d feet \n\n", closehitsumma);
 }
 system ("pause");
}

"summa" är hur långt man kommer genom en speciell attack, som jag här har döpt till "close hit".
Fast jag vill även inkludera andra attacker, som tex "tipper".
Och för att räkna ut den använder man en annan jättelång kod..
För att få detta använder jag

0.00000008766647*bagdamage*bagdamage*bagdamage*bagdamage+0.00005483*bagdamage*bagdamage*bagdamage+0.01940837*bagdamage*bagdamage+6.63067*bagdamage+403.15101;
printf("\n tipper: %d feet \n\n", tippersumma);

Men hur gör jag nu för att i början kunna välja vilken attack den ska räkna med? Sen ska man kunna skriva in "bagdamage", och då kommer den alltså räkna ut hur många feet det blir.

Väldigt tacksam för svar på min jobbiga fråga :/

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)