Nu aveti permisiuni pentru a descarca fisierul grader_test6.ok

Cod sursa(job #1898708)

Utilizator ImbuzanRaduImbuzan Radu ImbuzanRadu Data 2 martie 2017 10:52:37
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("evaluare.in");
ofstream g("evaluare.out");

char expr[1000];
int poz=0;

int factor();
int gr2();
int paranteze();

int main()
{
    f.getline(expr,1000);
    g<<factor();
    return 0;
}

int factor()
{int r=gr2();
while(expr[poz]=='+' || expr[poz]=='-')
    {
        if(expr[poz]=='+')
            {++poz;
            r+=gr2();}
        else {++poz;r-=gr2();}
    }
    return r;
}

int gr2()
{
int r=paranteze();
while(expr[poz]=='*' ||expr[poz]=='/')
    {
        if(expr[poz]=='*') {++poz;r*=factor();}
        else
            {++poz;
            r/=factor();
            }
    }
    return r;
}

int paranteze()
{int p=10,n=0;
    if(expr[poz]=='(') poz++;
    while(isdigit(expr[poz]))
    {
        n=n*p+(expr[poz]-'0');
        poz++;
    }

    return n;
}