Pagini recente » Cod sursa (job #1631583) | Cod sursa (job #3188606) | Cod sursa (job #1267710) | Cod sursa (job #2659347) | Cod sursa (job #2815342)
#include <fstream>
using namespace std;
int expresie();
int termen();
int factor();
char c[100100];
int i;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
int expresie() {
int sol=termen();
while (c[i]=='+'||c[i]=='-') {
if (c[i]=='+') {
i++;
sol+=termen();
}
else {
i++;
sol-=termen();
}
}
return sol;
}
int termen() {
int sol=factor();
while (c[i]=='*'||c[i]=='/') {
if (c[i]=='*') {
i++;
sol*=factor();
}
else {
i++;
sol/=factor();
}
}
return sol;
}
int factor() {
int sol=0;
if (c[i]=='(') {
i++;
sol=expresie();
i++;
}
else {
sol=0;
while (c[i]>='0'&&c[i]<='9') {
sol=sol*10+(c[i]-'0');
i++;
}
}
return sol;
}
int main () {
fin>>c;
i=0;
fout<<expresie();
return 0;
}