Cod sursa(job #2923022)

Utilizator Theo14Ancuta Theodor Theo14 Data 11 septembrie 2022 11:15:38
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include<bits/stdc++.h>
using namespace std;

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

string s;
int poz;

int SUM();
int PROD();
int TERMEN();

int SUM()
{
    int suma=PROD();
    while(s[poz]=='+' || s[poz]=='-')
    {
        int semn;
        if(s[poz]=='+')
            semn=1;
        else
            semn=-1;
        poz++;
        suma+=(semn*PROD());
    }
    return suma;
}

int PROD()
{
    int suma=TERMEN();
    while(s[poz]=='*' || s[poz]=='/')
    {
        if(s[poz]=='*')
        {
            poz++;
            suma*=TERMEN();
        }
        else
        {
            poz++;
            suma/=TERMEN();
        }
    }
    return suma;

}

int TERMEN()
{
    int nr=0;
    if(s[poz]=='(')
    {
        poz++;
        nr+=SUM();
        poz++;
    }
    else
    {
        while(s[poz]>='0' && s[poz]<='9')
        {
            nr=nr*10+(s[poz]-'0');
            poz++;
        }
    }
    return nr;
}

int main()
{
    f>>s;
    g<<SUM();
    return 0;
}