Pagini recente » Cod sursa (job #705147) | Cod sursa (job #2440317) | Cod sursa (job #904529) | Cod sursa (job #670917) | Cod sursa (job #726825)
Cod sursa(job #726825)
#include <fstream>
const long max = 100001;
char sir[max];
long termen;
long factor;
long evaluare(){
long x = termen();
while( (sir[i] == '+') or(sir[i] == '-'))
switch( sir[i] ){
case '+' :
++i;
x += termen();
break;
case '-' :
++i;
x -= termen();
break;
}
return x;
}
long termen(){
long x = factor();
while( (sir[i] == '*') or (sir[i] == '/') )
switch( sir[i] ){
case '*' :
++i;
x *= factor();
break;
case '/' :
++i;
x /= factor();
break;
}
return x;
}
long factor(){
long x = 0;
if( sir[i] == '(' ){
++i;
x = evaluare ();
++i;
}
else{
while ( sir[i] >= '0' && sir[i] <= '9' ){
x = x * 10 + sir[i] - '0';
++i;
}
}
return x;
}
int main(){
ifstream f("evaluare.in");
f.getline(sir);
f.close();
ofstream g("evaluare.out");
g<<evaluare();
g.close();
return 0;
}
63.}