Pagini recente » Cod sursa (job #2334373) | Sandbox (cutiuţa cu năsip) | Cod sursa (job #10966) | Cod sursa (job #2968107) | Cod sursa (job #2041228)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int a,i;
char sir[100010];
int fctplus();
int fctminus();
int fctori();
int fctsupra();
int rezultat();
int fctplus()
{
int termen=fctminus();
while(sir[i]=='+')
{
++i;
termen+=fctminus();
}
return termen;
}
int fctminus()
{
int termen=fctori();
while(sir[i]=='-')
{
++i;
termen-=fctori();
}
return termen;
}
int fctori()
{
int termen=fctsupra();
while(sir[i]=='*')
{
++i;
termen*=fctsupra();
}
return termen;
}
int fctsupra()
{
int termen=rezultat();
while(sir[i]=='/')
{
++i;
termen/=rezultat();
}
return termen;
}
int rezultat()
{
int termen=0;
if(sir[i]=='(')
{
++i;
termen=fctplus();
++i;
}
else
{
while(sir[i]>='0' && sir[i]<='9')
{
termen=termen*10+sir[i]-'0';
++i;
}
}
return termen;
}
int main()
{
fin.getline(sir,100010);
i=0;
fout<<fctplus();
return 0;
}