Gå til innhold

sliter litt.. vector i C++


Anbefalte innlegg

Jeg har et kalkulatorprogram, men den tar kun 2 og 2 operasjoner. Feks:

2+2, 32421*12222 osv..

 

Isteden for at jeg skriver 2+2+2+22+2+2+2+2+2+2 og deklarerer mange variabler, vil jeg gjøre det på en annen måte, noen forslag?

 

Isåfall er jeg nybegynner, så gjerne utfyllende forslag?:)

Endret av RePaC
Lenke til kommentar
Videoannonse
Annonse

#Du kan bare legge de sammen fortløpende, da slipper du å støtte lengre rekker.

Noe du like godt kan gjøre, for du skal ikke støtte lange regneuttrykk uansett.

 

Det blir jo også litt avhengig av om det er et console program eller GUI. :p

Gi meg litt mer info, så skal jeg komme med litt kode.

 

Du kan jo lagre alt i en vektor, eller i en Array. Men det hvis ikke alt har samme regnetegn, hvordan skal du da gjøre det?

Det er jo liten sak hvis alt bare skal ligges sammen, lage en loop å kjøre igjennom arrayen/vectoren og ligge sammen alt.

Endret av Frysning
Lenke til kommentar
  • 2 uker senere...

Sånn?

#include <iostream>

using namespace std;

string  input;
char    look;
int     pos;

void next_char() {
   look = input[pos];
   pos += 1;
}

double number() {
   double value = 0;
   while (look >= '0' && look <= '9') {
       value = 10*value + (look-'0');
       next_char();
   }
   return value;
}

double muldiv() {
   double value = number();
   while ('*' == look) {
       next_char();
       value *= muldiv();
   }
   while ('/' == look) {
       next_char();
       value /= muldiv();
   }
   return value;
}

double addsub() {
   double value = muldiv();
   while ('+' == look) {
       next_char();
       value += addsub();
   }
   while ('-' == look) {
       next_char();
       value -= addsub();
   }
   return value;
}

double eval(string expr) {
   input = expr;
   pos   = 0;
   next_char();
   return addsub();
}

int main() {
   cout << eval("2+3*5") << endl;
   cout << eval("3*5+2") << endl;
   system("pause");
   return EXIT_SUCCESS;
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...