Pagini recente » Cod sursa (job #2680482) | Cod sursa (job #97437) | Cod sursa (job #253165) | Cod sursa (job #3260581) | Cod sursa (job #2858676)
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
string v;
int poz=0;
int opgrad2();
int opgrad3();
int opgrad1()
{
int nr=opgrad2();
int rez=nr;
while(v[poz]=='+' || v[poz]=='-')
{
if(v[poz]=='+')
{
poz++;
int nr2=opgrad2();
rez=rez+nr2;
}
if(v[poz]=='-')
{
poz++;
int nr2=opgrad2();
rez=rez-nr2;
}
}
return rez;
}
int opgrad2()
{
int nr=opgrad3();
int rez=nr;
while(v[poz]=='*' || v[poz]=='/')
{
if(v[poz]=='*')
{
poz++;
int nr2=opgrad3();
rez=rez*nr2;
}
if(v[poz]=='/')
{
poz++;
int nr2=opgrad3();
rez=rez/nr2;
}
}
return rez;
}
int opgrad3()
{
if(v[poz]=='(')
{
poz++;
int rez=opgrad1();
poz++;
return rez;
}
else
{
int nr=0;
while(v[poz]>='0' && v[poz]<='9')
{
int cif=v[poz]-'0';
nr=nr*10+cif;
poz++;
}
return nr;
}
}
int main()
{
in>>v;
out<<opgrad1();
return 0;
}