Pagini recente » Cod sursa (job #959077) | Cod sursa (job #2292034) | Cod sursa (job #1186948) | Cod sursa (job #1888324) | Cod sursa (job #2046947)
#include <fstream>
#include <string.h>
using namespace std;
int CalculareExpresie();
int CalculareTermen();
int CalculareFactor();
char Sir[100005];
int N,i;
int CalculareFactor()
{
int R;
if(Sir[i]=='(')
{
i++;
R=CalculareExpresie();
i++;
}//if
else
{
R=0;
while(Sir[i]>='0' and Sir[i]<='9')
{
R=R*10+(Sir[i]-'0');
i++;
}
}//else
return R;
}
int CalculareTermen()
{
int R;
R=CalculareFactor();
while(i<N and (Sir[i]=='*' or Sir[i]=='/'))
if(Sir[i]=='*')
{
i++;
R=R*CalculareFactor();
}
else
{
i++;
R=R/CalculareFactor();
}
return R;
}
int CalculareExpresie()
{
int R;
R=CalculareTermen();
while(i<N and Sir[i]=='+' or Sir[i]=='-')
if(Sir[i]=='+')
{
i++;
R+=CalculareTermen();
}//if
else
{
i++;
R-=CalculareTermen();
}//else
return R;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.get(Sir,100001,'\n');
N=strlen(Sir);
fout<<CalculareExpresie();
fin.close ();
fout.close();
return 0;
}