Pagini recente » Cod sursa (job #1998837) | Cod sursa (job #1826367) | Cod sursa (job #274391) | Cod sursa (job #1580441) | Cod sursa (job #1217114)
#include <fstream>
#include <cstring>
using namespace std;
char sir[100005];
int n,poz;
int eval();
int termen();
int factor();
int eval()
{
int x=termen();
while(sir[poz]=='+' || sir[poz]=='-')
{
if(sir[poz++]=='+')
{
x+=termen();
}
else
{
x-=termen();
}
}
return x;
}
int termen()
{
int x=factor();
while(sir[poz]=='*' || sir[poz]=='/')
{
if(sir[poz++]=='*')
{
x*=factor();
}
else
{
x/=factor();
}
}
return x;
}
int factor()
{
if(sir[poz]=='(')
{
poz++;
int x=eval();
poz++;
return x;
}
int x=0;
while(sir[poz]>='0' && sir[poz]<='9')
{
x*=10;
x+=(sir[poz++]-'0');
}
return x;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.get(sir,100005);
n=strlen(sir);
fout<<eval()<<'\n';
return 0;
}