Pagini recente » Cod sursa (job #2851518) | Cod sursa (job #1722689) | Cod sursa (job #398698) | Cod sursa (job #728897) | Cod sursa (job #1573299)
#include <iostream>
#include <fstream>
#include <string.h>
#include <algorithm>
using namespace std;
char s[100001];
int p=0;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie();
int factor();
int termen();
int expresie()
{
int val=termen();
while ((s[p]=='+') || (s[p]=='-'))
{
if(s[p]=='+') {
p++;
val+=termen();
}
if(s[p]=='-'){
p++;
val-=termen();
}
}
return val;
}
int termen()
{
int val=factor();
while ((s[p]=='*') || (s[p]=='/'))
{
if(s[p]=='*'){
p++;
val*=factor();
}
if(s[p]=='/'){
p++;
val/=factor();
}
}
return val;
}
int factor()
{
int val=0;
if (s[p]=='(')
{
p++;
val=expresie();
p++;
return val;
}
while (isdigit(s[p]))
{
val=val*10+(s[p]-'0');
p++;
}
return val;
}
int main()
{
f.getline(s,1000001);
g<<expresie();
return 0;
}