Pagini recente » Cod sursa (job #1603119) | Cod sursa (job #1011089) | Cod sursa (job #2123881) | Cod sursa (job #108202) | Cod sursa (job #3266156)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int n,i;
char s[100200];
int expresie();
int termen();
int factor();
int numar();
int expresie()
{
int x=termen();
while(s[i]=='+' or s[i]=='-')
{
if(s[i]=='+')
i++, x+=termen();
else
i++, x-=termen();
}
return x;
}
int termen()
{
int x=factor();
while(s[i]=='*' or s[i]=='/')
{
if(s[i]=='*')
i++, x*=factor();
if(s[i]=='/')
i++, x/=factor();
}
return x;
}
int factor()
{
int x;
if(s[i]=='(')
i++, x=expresie(), i++;
else
x=numar();
return x;
}
int numar()
{
int x=0;
while(isdigit(s[i]))
x=x*10+(s[i++]-'0');
return x;
}
int32_t main()
{
f>>s, n=strlen(s);
g<<expresie();
return 0;
}