Pagini recente » Cod sursa (job #2354227) | Cod sursa (job #999172) | Cod sursa (job #1237904) | Cod sursa (job #1012253) | Cod sursa (job #3196287)
#include <bits/stdc++.h>
#define DIM 100000
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int n;
char s[DIM+5];
int idx;
int expresie();
int termen();
int factor();
int expresie(){
int r = termen();
while(s[idx] == '+' || s[idx] == '-'){
if(s[idx] == '+'){
idx++;
r += termen();
}else{
idx++;
r -= termen();
}
}
return r;
}
int termen(){
int r = factor();
while(s[idx] == '*' || s[idx] == '/'){
if(s[idx] == '*'){
idx++;
r *= factor();
}else{
idx++;
r /= factor();
}
}
return r;
}
int factor(){
int r;
if(s[idx] == '('){
idx++;
r = expresie();
idx++;
}else{
r = 0;
while('0' <= s[idx] && s[idx] <= '9'){
r = r*10 + s[idx]-'0';
idx++;
}
}
return r;
}
int main()
{
f>>(s+1);
n = strlen(s+1);
idx = 1;
g<<expresie();
return 0;
}