Cod sursa(job #1920513)

Utilizator SirbuSirbu Ioan Sirbu Data 10 martie 2017 03:06:52
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <string>

using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");

string s;
string :: iterator it;

int nr();
int adun();
int inm();

int nr(){

  int numar;
  if (*it == '('){
      it++; // sare paranteza
      numar = adun();
      it++; // sare perechea )
  }
  else {
    numar = 0;
    while (*it >= '0' && *it <='9'){
      numar = numar * 10 + (*it-'0');
      it++;
    }
  }
  return numar;
}

int adun(){

  int numar = inm();
  if (*it == '+'){
    it++;
    numar+=inm();
  }
  else if (*it=='-'){
    it++;
    numar-=inm();
  }
  return numar;
}

int inm(){

  int numar = nr();
  if (*it == '*'){
    it++;
    numar = numar * nr();
  }
  else if (*it == '/'){
    it++;
    numar = numar / nr();
  }
  return numar;
}

int main (){

  fin >> s;
  it = s.begin();
  fout << adun();

}