Pagini recente » Cod sursa (job #1160406) | Cod sursa (job #1099169) | Cod sursa (job #2110863) | Cod sursa (job #1451329) | Cod sursa (job #3193034)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int poz;
int add();
int mult();
int op();
int add()
{
int rez=mult();
while(s[poz]=='+' || s[poz]=='-')
{
if(s[poz]=='+')
{
++poz;
rez+=mult();
}
else
{
++poz;
rez-=mult();
}
}
return rez;
}
int mult()
{
int rez=op();
while(s[poz]=='*' || s[poz]=='/')
{
if(s[poz]=='*')
{
++poz;
rez*=op();
}
else
{
++poz;
rez/=op();
}
}
return rez;
}
int op()
{
int rez=0;
if(s[poz]=='(')
{
++poz;
rez=add();
++poz;
}
else
{
while(isdigit(s[poz]))
{
rez*=10;
rez+=s[poz]-'0';
++poz;
}
}
return rez;
}
int main()
{
fin>>s;
fout<<add();
return 0;
}