Pagini recente » Cod sursa (job #1577428) | Cod sursa (job #2950148) | Cod sursa (job #2086028) | Cod sursa (job #1408262) | Cod sursa (job #1436456)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int k;
char x[110010];
int eval();
int factor();
int termen();
int eval(){
int r = factor();
while(x[k] == '-' || x[k] == '+'){
if(x[k] == '-'){
k++;
r -= factor();
}
if(x[k] == '+'){
k++;
r += factor();
}
}
return r;
}
int factor(){
int r = termen();
while(x[k] == '*' || x[k] == '/'){
if(x[k] == '*'){
k++;
r*= termen();
}
if(x[k] == '/'){
k++;
r /= termen();
}
}
return r;
}
int termen(){
int r = 0;
if(x[k] == '('){
k++;
r = eval();
k++;
}else{
while(x[k] >= '0' && x[k] <= '9'){
r = r * 10 + (x[k] - '0');
k++;
}
}
return r;
}
int main()
{
f.getline(x,110010);
k = 0;
g << eval();
return 0;
}