Pagini recente » Cod sursa (job #175759) | Cod sursa (job #1434644) | Cod sursa (job #1523204) | Cod sursa (job #423313) | Cod sursa (job #157691)
Cod sursa(job #157691)
#include<fstream.h>
#include<ctype.h>
long i;
char s[100005];
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
long long factor();
long long termen();
long long evaluare(){
long long rez=termen();
while(s[i]=='+'||s[i]=='-')
if(s[i++]=='+')
rez+=termen();
else
rez-=termen();
return rez;
}
long long termen(){
long long rez=factor();
while(s[i]=='*'||s[i]=='/')
if(s[i++]=='*')
rez*=factor();
else
rez/=factor();
return rez;
}
long long factor(){
long long rez=0;
if(s[i]=='('){
i++;
rez=evaluare();
i++;
return rez;
}
while(isdigit(s[i])!=0)
rez=rez*10+s[i++]-'0';
return rez;
}
int main(){
fin>>s;
fout<<evaluare();
fin.close();
fout.close();
return 0;
}