Cod sursa(job #2041228)

Utilizator mihnea00Duican Mihnea mihnea00 Data 16 octombrie 2017 22:50:29
Problema Evaluarea unei expresii Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <fstream>
#include <cstring>

using namespace std;

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

int a,i;
char sir[100010];

int fctplus();
int fctminus();
int fctori();
int fctsupra();
int rezultat();

int fctplus()
{
    int termen=fctminus();
    while(sir[i]=='+')
    {
        ++i;
        termen+=fctminus();
    }
    return termen;
}

int fctminus()
{
    int termen=fctori();
    while(sir[i]=='-')
    {
        ++i;
        termen-=fctori();
    }
    return termen;
}

int fctori()
{
    int termen=fctsupra();
    while(sir[i]=='*')
    {
        ++i;
        termen*=fctsupra();
    }
    return termen;
}

int fctsupra()
{
    int termen=rezultat();
    while(sir[i]=='/')
    {
        ++i;
        termen/=rezultat();
    }
    return termen;
}

int rezultat()
{
    int termen=0;

    if(sir[i]=='(')
    {
        ++i;
        termen=fctplus();
        ++i;
    }
    else
    {
        while(sir[i]>='0' && sir[i]<='9')
        {
            termen=termen*10+sir[i]-'0';
            ++i;
        }

    }
    return termen;


}

int main()
{
    fin.getline(sir,100010);
    i=0;
    fout<<fctplus();



    return 0;
}