Cod sursa(job #3309465)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 4 septembrie 2025 20:53:49
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
#include <cstring>

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

string sir;
int poz;
int Expresie();
int Factor()
{
    if ( sir[poz] == '(' )
    {
        ++poz;
        return Expresie();
    }
    else
    {
        int num = 0;
        for (; sir[poz] >= '0' && sir[poz] <= '9'; num = num * 10 + sir[poz] - '0', ++poz );
        return num;

    }


}
int Termen()
{
    int sol = Factor();
    while ( sir[poz] == '*' || sir[poz] == '/')
    {
        if ( sir[poz++] == '*' )///!!!! poz++ Atentie
            sol *= Factor();
        else
            sol /= Factor();
    }
    return sol;
}
int Expresie()
{
    int sol = Termen();
    while ( sir[poz] == '+' || sir[poz] == '-')
    {
        if ( sir[poz++] == '+' )///!!!! poz++ Atentie
            sol += Termen();
        else
            sol -= Termen();
    }
    ++poz;
    return sol;
}
int main()
{
    fin >> sir;
    fout << Expresie() << '\n';
    return 0;
}