Pagini recente » Cod sursa (job #2285198) | Cod sursa (job #1699192) | Cod sursa (job #1283438) | Cod sursa (job #2954745) | Cod sursa (job #3157430)
#include <fstream>
#define cure sir[poz]
#define next sir[poz+1]
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string sir;
int poz=0;
int adunare();
int produs();
int numar();
int adunare() {
int rez=produs();
while(cure=='+'||cure=='-') {
if(cure=='+') {
poz++;
rez+=produs();
} else if(cure=='-') {
poz++;
rez-=produs();
}
}
//cout<<"adun:"<<rez<<",poz:"<<poz<<"\n";
return rez;
}
int produs() {
int rez=numar();
while(cure=='*'||cure=='/') {
if(cure=='*') {
poz++;
rez*=numar();
} else if(cure=='/') {
poz++;
rez/=numar();
}
}
//cout<<"prod:"<<rez<<",poz:"<<poz<<"\n";
return rez;
}
int numar() {
int nr=0;
if(cure=='(') {
poz++;
nr+=adunare();
} else {
while(cure>='0'&&cure<='9') {
nr=nr*10+cure-'0';
poz++;
}
}
return nr;
}
int main() {
cin>>sir;
cout<<adunare();
return 0;
}