Pagini recente » Cod sursa (job #2595463) | Cod sursa (job #2109340) | Cod sursa (job #2789438) | Cod sursa (job #2790809) | Cod sursa (job #2085015)
#include<fstream>
#include<cmath>
#include<iostream>
#define DN 100005
#include<vector>
#include<cctype>
#include<cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int ev();
int termen();
int factor();
int poz;
char a[DN];
int ev()
{
int r=0;
r=termen();
while(a[poz]=='+'||a[poz]=='-')
{
if(a[poz]=='+')
{
poz++;
r+=termen();
}
else
{
poz++;
r-=termen();
}
}
return r;
}
int termen()
{
int r=0;
r=factor();
while(a[poz]=='*'||a[poz]=='/')
{
if(a[poz]=='*')
{
poz++;
r*=factor();
}
else
{
poz++;
r/=factor();
}
}
return r;
}
int factor()
{
int r=0;
if(a[poz]=='(')
{
poz++;
r=ev();
poz++;
}
else
while(isdigit(a[poz]))
{
r=r*10+(a[poz]-'0');
poz++;
}
return r;
}
int main()
{
fin.getline(a,DN);
fout<<ev();
}