Pagini recente » Cod sursa (job #2812240) | Cod sursa (job #512618) | Cod sursa (job #2900791) | Cod sursa (job #2786499) | Cod sursa (job #3309465)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string sir;
int poz;
int Expresie();
int Factor()
{
if ( sir[poz] == '(' )
{
++poz;
return Expresie();
}
else
{
int num = 0;
for (; sir[poz] >= '0' && sir[poz] <= '9'; num = num * 10 + sir[poz] - '0', ++poz );
return num;
}
}
int Termen()
{
int sol = Factor();
while ( sir[poz] == '*' || sir[poz] == '/')
{
if ( sir[poz++] == '*' )///!!!! poz++ Atentie
sol *= Factor();
else
sol /= Factor();
}
return sol;
}
int Expresie()
{
int sol = Termen();
while ( sir[poz] == '+' || sir[poz] == '-')
{
if ( sir[poz++] == '+' )///!!!! poz++ Atentie
sol += Termen();
else
sol -= Termen();
}
++poz;
return sol;
}
int main()
{
fin >> sir;
fout << Expresie() << '\n';
return 0;
}