Pagini recente » Cod sursa (job #2771173) | Cod sursa (job #830987) | Cod sursa (job #954346) | Cod sursa (job #901185) | Cod sursa (job #2574423)
#include <bits/stdc++.h>
#define DIM 100010
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");
char s[DIM];
int n,i;
int expresie();
int termen();
int factor();
int main (){
fin>>s+1;
n = strlen (s+1);
i = 1;
fout<<expresie();
return 0;
}
int expresie (){
int r = termen ();
while (s[i] == '+' || s[i] == '-'){
if (s[i] == '+'){
i++;
r += termen();
} else {
i++;
r -= termen();
}
}
return r;
}
int termen (){
int r = factor ();
while (s[i] == '*' || s[i] == '/'){
if (s[i] == '*'){
i++;
r *= factor ();
} else {
i++;
r /= factor ();
}
}
return r;
}
int factor (){
int r = 0;
if (s[i] == '('){
i++;
r = expresie();
i++;
} else {
while (s[i] >= '0' && s[i] <= '9'){
r = r*10 + s[i] - '0';
i++;
}
}
return r;
}