Cod sursa(job #2586342)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 20 martie 2020 16:32:43
Problema Evaluarea unei expresii Scor 50
Compilator py Status done
Runda Arhiva educationala Marime 0.79 kb
s = open('evaluare.in', 'r').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())))