Pagini recente » Cod sursa (job #2355950) | Cod sursa (job #2470152) | Cod sursa (job #643869) | Cod sursa (job #2273163) | Cod sursa (job #305032)
Cod sursa(job #305032)
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
string a;
int termen(),factor(),nr();
int termen()
{
int r=factor();
while(a[0]=='+'||a[0]=='-')
if(a[0]=='+')
a.erase(a.begin()),r+=factor();
else
a.erase(a.begin()),r-=factor();
return r;
}
int factor()
{
int r=nr();
while(a[0]=='*'||a[0]=='/')
if(a.at(0)=='*')
a.erase(a.begin()),r*=nr();
else
a.erase(a.begin()),r/=nr();
return r;
}
int nr()
{
int r=0;
if(a.at(0)=='(')
a.erase(a.begin()),r=termen(),a.erase(a.begin());
else
for(;'0'<=a[0]&&a[0]<='9';a.erase(a.begin()))
r=r*10+a[0]-'0';
return r;
}
int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f>>a;a+="c";
g<<termen()<<'\n';
return 0;
}