Pagini recente » Cod sursa (job #1464616) | Cod sursa (job #2650536) | Cod sursa (job #2146620) | Cod sursa (job #3174367) | Cod sursa (job #565728)
Cod sursa(job #565728)
#include <fstream>
using namespace std;
#define dim 100001
char ch[dim];
int n;
int eval();
int termen();
int factor();
int eval()
{
int rez=0;
rez=termen();
while(ch[n]=='+' || ch[n]=='-')
{
++n;
if(ch[n-1]=='+')
rez+=termen();
else
rez-=termen();
}
return rez;
}
int termen()
{
int rez=0;
rez=factor();
while(ch[n]=='*' || ch[n]=='/')
{
++n;
if(ch[n-1]=='*')
rez*=factor();
else
rez/=factor();
}
return rez;
}
int factor()
{
int rez=0;
if(ch[n]=='(')
{
++n;
rez=eval();
++n;
}
else
for(rez=0;isdigit(ch[n]);++n)
rez=rez*10+ch[n]-'0';
return rez;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.getline(ch , dim);
fout<<eval();
return 0;
}