Pagini recente » Cod sursa (job #539111) | Cod sursa (job #562182) | Cod sursa (job #639904) | Cod sursa (job #2778177) | Cod sursa (job #1141013)
#include <fstream>
using namespace std;
char s[100002];
int poz;
int expresie();
int factor();
int termen();
int expresie(){int rez=termen();
while(s[poz]=='+'||s[poz]=='-')
if(s[poz]=='+')
{
poz++;
rez+=termen();
}
else
{
poz++;
rez-=termen();
}
return rez;
}
int termen(){
int rez=factor();
while(s[poz]=='/'||s[poz]=='*')
if(s[poz]=='/')
{
poz++;
rez/=factor();
}
else
{
poz++;
rez*=factor();
}
return rez;
}
int factor(){
int rez=0,sgn=1;
while(s[poz]=='-')
{
sgn=-sgn;
poz++;
}
while('0'<=s[poz]&&s[poz]<='9')
rez=rez*10+(s[poz++]-'0');
if(s[poz]=='(')
{
poz++;
rez=expresie();
poz++;
}
return rez*sgn;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout ("evaluare.out");
fin>>s;
int x;
x=expresie();
fout<<x;
return 0;
}