Cod sursa(job #1510797)

Utilizator Bogdan1999Draghici Bogdan Bogdan1999 Data 25 octombrie 2015 16:57:05
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <cstring>

using namespace std;

ifstream fin("evaluare.in");
ofstream out("evaluare.out");

long int index=0;
int r=0;
char s[256];

long unul();
long doi();
long trei();

long trei(){
r=doi();
while(s[index]=='+' or s[index]=='-'){
    if(s[index]=='+'){
        ++index;
        r=r+doi();
    }
    if(s[index]=='-'){
        ++index;
        r=r-doi();
    }
}
return r;
}

long doi(){
r=unul();
while(s[index]=='*' or s[index]=='/'){
    if(s[index]=='*'){
        ++index;
        r=r*unul();
    }
    if(s[index]=='/'){
        ++index;
        r=r/unul();
    }
}
return r;
}

long unul(){
long r=0;
if(s[index]=='('){
    index++;
    r = trei();
    index++;
   }
   else{
    while(s[index]>='0' and s[index]<='9'){
        r=r*10+s[index]-'0';
        index++;
    }
   }
   return r;
}



int main(){
fin.get(s, 256);
out<<trei();
}