Pagini recente » Cod sursa (job #1829848) | Cod sursa (job #1139275) | Cod sursa (job #2112026) | Cod sursa (job #119486) | Cod sursa (job #1742424)
#include <fstream>
using namespace std;
char s[100005];
int p;
void read();
int eval();
int termen();
int factor();
void write();
int main(){
read();
write();
return 0;
}
void read(){
ifstream fin ("evaluare.in");
fin >> s;
fin.close();
}
void write(){
ofstream fout ("evaluare.out");
fout << eval();
fout.close();
}
int eval(){
int r = termen();
while (s[p] == '+' || s[p] == '-')
if (s[p] == '+')
++p,
r += termen();
else
++p,
r -= termen();
return r;
}
int termen(){
int r = factor();
while (s[p] == '*' || s[p] == '/')
if (s[p] == '*')
++p,
r *= factor();
else
++p,
r /= factor();
return r;
}
int factor(){
int r = 0;
if (s[p] == '(')
++p,
r = eval(),
++p;
else
while (s[p] >= '0' && s[p] <= '9')
r = r * 10 + s[p++] - '0';
return r;
}