Pagini recente » Cod sursa (job #2497858) | Cod sursa (job #2178368) | Cod sursa (job #1819071) | Cod sursa (job #2810709) | Cod sursa (job #2847652)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "evaluare.in" );
ofstream fout ( "evaluare.out" );
int i;
char s [ 100005 ];
int Evaluare ();
int Termen ();
int Factor ();
int Evaluare () {
int r = Termen ();
while ( s [ i ] == '+' || s [ i ] == '-' ) {
if ( s [ i ] == '+' ) {
i ++;
r += Termen ();
}
else {
i ++;
r -= Termen ();
}
}
return r;
}
int Termen () {
int r = Factor ();
while ( s [ i ] == '*' || s [ i ] == '/' ) {
if ( s [ i ] == '*' ) {
i ++;
r *= Factor ();
}
else {
i ++;
r /= Factor ();
}
}
return r;
}
int Factor () {
int r = 0;
if ( s [ i ] == '(' ) {
i ++;
r = Evaluare ();
i ++;
}
else {
while ( isdigit ( s [ i ] ) == true ) {
r = r * 10 + s [ i ] - '0';
i ++;
}
}
return r;
}
int main() {
fin >> s;
fout << Evaluare ();
return 0;
}