Pagini recente » Cod sursa (job #2190722) | Cod sursa (job #2587662) | Cod sursa (job #1789873) | Cod sursa (job #2946407) | Cod sursa (job #1166090)
#include<fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char sir[100100] , *p;
int evaluare();
int factor();
int termen();
int main(){
f>>sir;
p = sir;
g<<evaluare();
return 0;
}
int evaluare(){
int r = factor();
while( (*p) == '+' || (*p) == '-' ){
if( (*p) == '+' ){
p++;
r += factor();
}
else{
p++;
r -= factor();
}
}
return r;
}
int factor(){
int r = termen();
while( (*p) == '*' || (*p) == '/' ){
if( (*p) == '*' ){
p++;
r *= termen();
}
else{
p++;
r /= termen();
}
}
return r;
}
int termen(){
int rez = 0;
if( (*p) == '(' ){
p++;
rez = evaluare();
p++;
}
else{
while( '0' <= (*p) && (*p) <= '9' ){
rez = rez * 10 + (*p) - '0';
p++;
}
}
return rez;
}