Pagini recente » Cod sursa (job #990802) | Cod sursa (job #2510477) | Cod sursa (job #396996) | Cod sursa (job #425988) | Cod sursa (job #1920513)
#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();
}