Pagini recente » Cod sursa (job #214982) | Cod sursa (job #268267) | Cod sursa (job #869026) | Cod sursa (job #321030) | Cod sursa (job #1661820)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100010];
int p;
int inmultire();
int paranteze();
int adunare()
{
int r = inmultire();
while( s[p] == '+' || s[p] == '-' ){
if( s[p] == '+' ){
p++;
r = r + inmultire();
}
else if( s[p] == '-' ){
p++;
r = r - inmultire();
}
}
return r;
}
int inmultire()
{
int r = paranteze();
while( s[p] == '*' || s[p] == '/' )
{
if( s[p] == '*' ){
p++;
r = r * paranteze();
}
else if( s[p] == '/' ){
p++;
r = r / paranteze();
}
}
return r;
}
int paranteze()
{
int r = 0;
if( s[p] == '(' )
{
p ++;
r = adunare();
p ++;
}
else
{
while( s[p] >= '0' && s[p] <= '9' ){
r = r * 10 + s[p++] - '0';
}
}
return r;
}
int main()
{
f >> s;
g << adunare();
return 0;
}