Pagini recente » Cod sursa (job #818978) | Cod sursa (job #943256) | Cod sursa (job #1514222) | Cod sursa (job #986560) | Cod sursa (job #3187412)
#include <iostream>
#include <fstream>
using namespace std;
#define MAX_S 100000
string s;
int sindex;
int adunare();
int factor(){
int nr;
if(s[sindex]=='('){
sindex++;
nr=adunare();
sindex++;
}
else{
nr=0;
while(s[sindex]>='0' && s[sindex]<='9'){
nr=nr*10+(s[sindex]-'0');
sindex++;
}
}
return nr;
}
int inmultire(){
int rez;
rez=factor();
while(s[sindex]=='*' || s[sindex]=='/'){
if(s[sindex]=='*'){
sindex++;
rez*=factor();
}
else{
sindex++;
rez/=factor();
}
}
return rez;
}
int adunare(){
int rez;
rez=inmultire();
while(s[sindex]=='+' || s[sindex]=='-'){
if(s[sindex]=='+'){
sindex++;
rez+=inmultire();
}
else{
sindex++;
rez-=inmultire();
}
}
return rez;
}
int main()
{
ifstream in("evaluare.in");
ofstream out("evaluare.out");
in>>s;
sindex=0;
out<<adunare();
return 0;
}