Pagini recente » Cod sursa (job #2987032) | Cod sursa (job #2935) | Cod sursa (job #1121968) | Cod sursa (job #2381151) | Cod sursa (job #2180549)
#include <fstream>
using namespace std;
ifstream fi ("evaluare.in");
ofstream fo ("evaluare.out");
string sir;
int i;
bool cifra(int chr)
{
if (chr>='0' and chr<='9') return 1;
return 0;
}
int evaluare()
{
int nr=0,p=1,sum=0;
bool prod=false,divi=false;
while (sir[i]!=')')
{
nr=0;
if (cifra(sir[i]))
while (cifra(sir[i]))
{
nr=nr*10+sir[i]-'0';
i++;
}
else if (sir[i]=='(') {i++;nr=evaluare();}
if (divi) {p=p/nr;divi=false;}
else p=p*nr;
if (sir[i]=='/') divi=true;
if (sir[i]=='+' or sir[i]==')')
{
sum=sum+p;
p=1;
}
if (sir[i]==')') {i++;return sum;}
i++;
}
return sum;
}
int main()
{
fi>>sir;
sir.append(")");
fo<<evaluare();
return 0;
}