Pagini recente » Cod sursa (job #2323831) | Cod sursa (job #19138) | Cod sursa (job #474707) | Cod sursa (job #2543261) | Cod sursa (job #726831)
Cod sursa(job #726831)
#include <fstream>
#include <cstdio>
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");
ofstream g("evaluare.out");
f >> sir;
g<<evaluare();
f.close();
g.close();
return 0;
}
63.}