Pagini recente » Cod sursa (job #2233569) | Cod sursa (job #2088235) | Cod sursa (job #312568) | Cod sursa (job #1219036) | Cod sursa (job #2253428)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("evaluare.in") ;
ofstream g ("evaluare.out");
string s;
long long p = 0;
long long eval() ;
long long termen() ;
long long factor() ;
long long eval()
{
long long r = termen() ;
while (s[p] == '+' or s[p] == '-')
{
if (s[p] == '+')
{
p ++ ;
r += termen() ;
}
if(s[p] == '-')
{
p ++ ;
r -= termen();
}
}
return r;
}
long long termen()
{
long long r = factor() ;
while(s[p] == '*' or s[p] == '/')
{
if(s[p] == '*')
{
p ++ ;
r *= factor();
}
if (s[p] == '/')
{
p ++ ;
r /= factor();
}
}
return r ;
}
long long factor()
{
long long r = 0 ;
if (s[p] == '(')
{
p ++ ;
r += eval() ;
p++ ;
return r;-
}
else
{
while ('0' <= s[p] && s[p] <= '9' )
{r = r * 10 + (s[p] - '0') ;
p ++ ;}
}
return r ;
}
int main()
{
f >> s;
s += '#';
g << eval() ;
}