Pagini recente » Cod sursa (job #2207652) | Cod sursa (job #1142135) | Cod sursa (job #1923947) | Cod sursa (job #2777566) | Cod sursa (job #1782789)
#include <fstream>
#include <string>
using namespace std;
string s;
int p=0;
int f2();
int f3();
int f1()
{
int r=f2();
while ((p<=(s.length()-1)) && ((s[p]=='+') || (s[p]=='-')))
{
p++;
if (s[p-1]=='+') r=r+f2(); else r=r-f2();
}
return r;
}
int f2()
{
int r=f3();
while ((p<=(s.length()-1)) && ((s[p]=='*') || (s[p]=='/')))
{
p++;
if (s[p-1]=='*') r=r*f3(); else r=r/f3();
}
return r;
}
int f3()
{
int r=0;
if (s[p]=='(') { p++; r=f1(); p++; } else
while ((p<=(s.length()-1)) && (s[p]>='0') && (s[p]<='9'))
{
r=r*10 + s[p] - 48;
p++;
}
return r;
}
void ecrire(int x)
{
ofstream f("evaluare.out");
f << x;
f.close();
}
void lire()
{
ifstream f("evaluare.in");
f >> s;
f.close();
ecrire(f1());
}
int main()
{
lire();
}