Pagini recente » Cod sursa (job #2734809) | Cod sursa (job #185037) | Cod sursa (job #1020807) | Cod sursa (job #363802) | Cod sursa (job #1534131)
#include<fstream>
using namespace std;
const int N = (1<<17);
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char c;
int expresie();
int termen();
int factor();
int factor()
{
int x = 0;
if(c=='(')
{
c = in.get();
x=expresie();
c = in.get();
}
while(c >= '0' && c <= '9')
{
x = x * 10 + c - '0';
c = in.get();
}
return x;
}
int termen()
{
int prod = factor();
while (c == '*' || c == '/')
{
if (c == '*')
{
c = in.get();
prod *= factor();
}
else
{
c = in.get();
prod /= factor();
}
}
return prod;
}
int expresie()
{
int sum = termen();
while (c == '+' || c == '-')
{
if (c == '+')
{
c = in.get();
sum += termen();
}
else
{
c = in.get();
sum -= termen();
}
}
return sum;
}
int main()
{
//fgets(s,N,stdin);
//p=s;
c = in.get();
out << expresie() << "\n";
in.close();
out.close();
return 0;
}