Pagini recente » Cod sursa (job #103373) | Cod sursa (job #108250) | Cod sursa (job #1305094) | Cod sursa (job #1508799) | Cod sursa (job #305031)
Cod sursa(job #305031)
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
string a;
int termen(),factor(),nr();
int termen()
{
int r=factor();
while(a.at(0)=='+'||a.at(0)=='-')
if(a.at(0)=='+')
a.erase(a.begin()),r+=factor();
else
a.erase(a.begin()),r-=factor();
return r;
}
int factor()
{
int r=nr();
while(a.at(0)=='*'||a.at(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.at(0)&&a.at(0)<='9';a.erase(a.begin()))
r=r*10+a.at(0)-'0';
return r;
}
int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f>>a;a+="c";
g<<termen()<<'\n';
return 0;
}