Pagini recente » Cod sursa (job #790950) | Cod sursa (job #2251160) | Cod sursa (job #853272) | Cod sursa (job #3275642) | Cod sursa (job #2206481)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string v;
int i;
int expresie();
bool chiarenr(char ch){
if(ch >= '0' && ch <= '9')
return true;
return false;
}
int numar(){
int nr = 0;
while(chiarenr(v[i])){
nr = nr*10+(v[i]-'0');
i++;
}
return nr;
}
int paranteze(){
int nr;
if(v[i] == '('){
i++;
nr = expresie();
i++;
}else{
nr = numar();
}
return nr;
}
int inmultire(){
int nr = paranteze();
while(v[i] == '/' || v[i] == '*'){
i++;
if(v[i-1] == '/')
nr /= paranteze();
else
nr*=paranteze();
}
return nr;
}
int expresie(){
int nr = inmultire();
while(v[i] == '-' || v[i] == '+'){
i++;
if(v[i-1] == '+')
nr += inmultire();
else
nr -= inmultire();
}
return nr;
}
int main()
{
cin >> v;
cout << expresie();
return 0;
}