Pagini recente » Cod sursa (job #2953546) | Cod sursa (job #2839348) | Cod sursa (job #1244569) | Cod sursa (job #1649545) | Cod sursa (job #1437876)
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
ifstream fin ( "evaluare.in" );
ofstream fout ( "evaluare.out" );
string S;
string :: iterator it;
int Adun();
int Inm();
int Termen();
int Adun (){
int ret = Inm();
while ( *it == '+' || *it == '-' ){
if ( *it == '+' ){
it++;
ret += Inm();
}
else{
it++;
ret -= Inm();
}
}
return ret;
}
int Inm (){
int ret = Termen();
while ( *it == '*' || *it == '/' ){
if ( *it == '*' ){
it++;
ret *= Termen();
}
else{
it++;
ret /= Termen();
}
}
return ret;
}
int Termen (){
int ret;
if ( *it == '(' ){
it++;
ret = Adun();
it++;
}
else{
ret = 0;
while ( *it >= '0' && *it <= '9' ){
ret = ret * 10 + ( *it - '0' );
it++;
}
}
return ret;
}
int main(){
fin >> S;
it = S.begin();
fout << Adun();
return 0;
}