Cod sursa(job #2586376)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 20 martie 2020 18:45:07
Problema Evaluarea unei expresii Scor 50
Compilator py Status done
Runda Arhiva educationala Marime 0.84 kb
input_file = open('evaluare.in', 'r')
s = input_file.read()

f = open('evaluare.out','w+')

p=0

def eval():
    r = termen()
    global p
    while s[p] == '+' or s[p] == '-':
        if s[p] == '+':
            p+=1
            r += termen()

        else:
            p+=1
            r -= termen()

    return r

def termen():
    r = factor()
    global p
    while s[p] == '*' or s[p] == '/':
        if(s[p] == '*'):
            p+=1
            r*= factor()

        else:
            p+=1
            r/=factor()

    return r

def factor():
    r=0
    global p
    if s[p]=='(':
        p+=1
        r = eval()
        p+=1

    else:

        while s[p]>='0' and s[p]<='9':
            r = r*10 + int(s[p])
            p+=1

    return r


f.write(str(int(eval())))
f.close()
input_file.close()