Pagini recente » Cod sursa (job #412548) | Cod sursa (job #2047175) | Cod sursa (job #2373345) | Cod sursa (job #2785789) | Cod sursa (job #2788147)
#include <fstream>
using namespace std;
ifstream cin ( "evaluare.in" );
ofstream cout ( "evaluare.out" );
string s;
int poz_s;
int add();
int factor() {
int ans;
ans = 0;
if ( s[poz_s] == '(' ) {
poz_s++;
ans = add();
poz_s++;
} else {
while ( s[poz_s] >= '0' && s[poz_s] <= '9' ) {
ans = ans * 10 + ( s[poz_s] - '0' );
poz_s++;
}
}
return ans;
}
int multiply() {
int ans;
ans = factor();
while ( s[poz_s] == '*' || s[poz_s] == '/' ) {
if ( s[poz_s] == '*' ) {
poz_s++;
ans = ans * factor();
}
else {
poz_s++;
ans = ans / factor();
}
}
return ans;
}
int add() {
int ans;
ans = multiply();
while ( s[poz_s] == '+' || s[poz_s] == '-' ) {
if ( s[poz_s] == '+' ) {
poz_s++;
ans = ans + multiply();
} else {
poz_s++;
ans = ans - multiply();
}
}
return ans;
}
int main() {
cin >> s;
poz_s = 0;
cout << add();
return 0;
}