Pagini recente » Cod sursa (job #101203) | Cod sursa (job #1886122) | Cod sursa (job #213703) | Cod sursa (job #1782706) | Cod sursa (job #2041207)
#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();
if(sir[i]=='+')
{
++i;
termen+=fctminus();
}
return termen;
}
int fctminus()
{
int termen=fctori();
if(sir[i]=='-')
{
++i;
termen-=fctori();
}
return termen;
}
int fctori()
{
int termen=fctsupra();
if(sir[i]=='*')
{
++i;
termen*=fctsupra();
}
return termen;
}
int fctsupra()
{
int termen=rezultat();
if(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();
//for(i=1;i<=strlen(sir);++i)
//fout<<int(sir[i])<<"\n";
return 0;
}