Pagini recente » Cod sursa (job #1887092) | Cod sursa (job #2848320) | Cod sursa (job #1129099) | Cod sursa (job #362584) | Cod sursa (job #2928144)
#include <fstream>
using namespace std;
int expresie();
int termen();
int factor();
char s[100100];
int i;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
int expresie() {
int r=termen();
while (s[i]=='+'||s[i]=='-') {
if (s[i]=='+') {
i++;
r=r+termen();
}
else {
i++;
r=r-termen();
}
}
return r;
}
int termen() {
int r=factor();
while (s[i]=='*'||s[i] =='/') {
if (s[i]=='*') {
i++;
r=r*factor();
}
else {
i++;
r=r/factor();
}
}
return r;
}
int factor() {
int r=0;
if (s[i]=='(') {
i++;
r=expresie();
i++;
}
else {
r=0;
while (s[i]>='0'&&s[i]<='9') {
r=r*10+(s[i]-'0');
i++;
}
}
return r;
}
int main () {
fin>>s;
fout<<expresie();
return 0;
}