Pagini recente » Cod sursa (job #2163932) | Cod sursa (job #824954) | Cod sursa (job #290078) | Cod sursa (job #770096) | Cod sursa (job #2331423)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100100],*p;
int numar()
{
int nr=0;
while(*p>='0'&&*p<='9')
{
nr=nr*10+*p-'0';
++p;
}
return nr;
}
int expresie ();
int termen ();
int factor ();
int main()
{
f>>s;
p=s;
g<<expresie();
return 0;
}
int expresie()
{
int r=termen();
while(*p=='+'||*p=='-')
if(*p=='+'){++p;r+=termen();}
else if(*p=='-'){++p;r-=termen();}
return r;
}
int termen ()
{
int r=factor();
while(*p=='*'||*p=='/')
if(*p=='*'){++p;r*=factor();}
else if(*p=='/'){++p;r/=factor();}
return r;
}
int factor()
{
int r;
if(*p=='('){++p;r=expresie();++p;}
else r= numar();
return r;
}