Pagini recente » Cod sursa (job #858107) | unid | Cod sursa (job #1636863) | Cod sursa (job #876994) | Cod sursa (job #1076501)
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
int p;
char s[100005];
int factor();
int expresie();
int termen();
int factor () {
int r;
if (s[p]=='(') {
p++;
r=expresie();
p++;
}else {
r=0;
while (s[p]>='0' && s[p]<='9') {
r=r*10+(s[p]-'0');
p++;
}
}
return r;
}
int expresie()
{
int sum=termen();
while(s[p] == '+' || s[p] == '-')
if(s[p]=='+') { p++; sum+=termen(); }
else { p++; sum-=termen(); }
return sum;
}
int termen()
{
int prod=factor();
while(s[p]=='*' || s[p] == '/')
if(s[p]=='*') { p++; prod*=termen(); }
else { p++; prod/=termen(); }
return prod;
}
int main()
{
in>>s;
out << expresie();
return 0;
}