Pagini recente » Cod sursa (job #331753) | Cod sursa (job #1936440) | Cod sursa (job #3150617) | Cod sursa (job #432900) | Cod sursa (job #723563)
Cod sursa(job #723563)
#include <fstream>
#include <cstdio>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
long produs();
long evaluare();
long numar();
char caracter;
long evaluare(){
long nr = produs();
while((caracter == '+' || caracter == '-')){
if (caracter == '+'){
f>>caracter;
nr=nr + produs();
}
if (caracter == '-' ){
f>>caracter;
nr = nr - produs();
}
}
return nr;
}
long produs(){
long nr = numar();
while (caracter == '*' || caracter == '/'){
if (caracter == '*'){
f>>caracter;
nr = nr * numar();
}
if (caracter == '/'){
f>>caracter;
nr = nr / numar();
}
}
return nr;
}
long numar(){
long nr = 0;
if(caracter == '('){
f>>caracter;
nr = evaluare();
f>>caracter;
}
else{
while ((caracter >= '0') && (caracter <= '9') && (!f.eof())){
nr = nr * 10 + (caracter - '0');
f>>caracter;
}
}
return nr;
}
int main(){
f>>caracter;
g<<evaluare();
f.close();
g.close();
return 0;
}