Pagini recente » Cod sursa (job #1479435) | Cod sursa (job #979809) | Cod sursa (job #2835848) | Cod sursa (job #1975046) | Cod sursa (job #3125869)
#include <fstream>
#include <string>
using namespace std;
string s;
int poz;
int expresie();
int factor(){
int sol;
if(s[poz] == '('){
poz++;
sol = expresie();
poz++;
}
else{
sol = 0;
while(poz < s.size() && s[poz] - '0' >= 0 && s[poz] - '0' <= 9){
sol = sol * 10 + (s[poz] - '0');
poz++;
}
}
return sol;
}
int termen(){
int sol;
sol = factor();
while(poz < s.size() && (s[poz] == '*' || s[poz] == '/')){
if(s[poz++] == '*'){
sol *= factor();
}
else{
sol /= factor();
}
}
return sol;
}
int expresie(){
int sol;
sol = termen();
while(poz < s.size() && (s[poz] == '+' || s[poz] == '-')){
if(s[poz++] == '+'){
sol += termen();
}
else{
sol -= termen();
}
}
return sol;
}
int main(){
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
getline(fin, s);
fout << expresie();
return 0;
}