Cod sursa(job #783986)

Utilizator misinozzz zzz misino Data 4 septembrie 2012 16:53:41
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int nr,p;
char s[100001];
int evaluare();
int factor()
{int rez=0;
if(s[p]=='(')
{++p;
rez=evaluare();
++p;
}
else
	while(s[p]>=48&&s[p]<='9')
	{rez=rez*10+s[p]-48;
	++p;
	}
return rez;
}
int termen()
{int rez=factor();
while(s[p]=='*'||s[p]=='/')
{
if(s[p]=='*')
{++p;
rez*=factor();
}
else
	if(s[p]=='/')
{++p;
rez/=factor();
}

}
return rez;
}
int evaluare()
{int rez=termen();
while(s[p]=='+'||s[p]=='-')
{
if(s[p]=='+')
{++p;
rez+=termen();
}
else
	if(s[p]=='-')
{++p;
rez-=termen();
}
}
return rez;
}

int main()
{f>>s;
p=0;
nr=evaluare();
g<<nr<<'\n';
return 0;
}