Pagini recente » Cod sursa (job #974835) | Cod sursa (job #2358819) | Cod sursa (job #2046448) | Cod sursa (job #1306853) | Cod sursa (job #1920812)
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
ifstream f ("evaluare.in");
ofstream t ("evaluare.out");
string::iterator it;
string expresie;
int q();
int interpreter(){
int x=0;
if (*it=='('){
++it;
x+=q();
++it;
return x;
}
for (;*it>='0' and *it<='9';++it)
x=10*x+*it-'0';
return x;
}
int qq(){
int x=interpreter();
while (*it=='*' or *it=='/')
if (*it=='*')
++it,
x*=interpreter();
else
++it,
x/=interpreter();
return x;
}
int q(){
int x=qq();
while (*it=='-' or *it=='+')
if (*it=='-')
++it,
x-=qq();
else
++it,
x+=qq();
return x;
}
void evaluate(){
it=expresie.begin();
int s=q();
t<<s;
}
int main()
{
f>>expresie;
evaluate();
return 0;
}