Você está na página 1de 2

#Todos usam uma calculadora para efetuar cálculos mais complexos.

O principal
objetivo deste projeto é gerar uma programa em python que permita ao usuário
efetuar as principais operações matemáticas – soma, subtração, divisão,
mutiplicação e exponenciação. O usuário pode informar uma sequencia de valores e
operações e quando clicar no sinal de igual (=) o sistema deve retornar o
resultado. Lembrando que este é um projeto de linha de comando.
#Integrantes :
#Pedro Henrique Peregrino de Araujo - 201920057
#Matheus Nelson Pereira Costa - 201920498
class Calculadora:
def __init__(self):
# Inicializa as listas vazias que armazenam os valores e operadores
inseridos pelo usuário
self.valores = []
self.operadores = []

def adicionar_valor(self, valor):


# Adiciona um valor à lista de valores
self.valores.append(valor)

def adicionar_operador(self, operador):


# Adiciona um operador à lista de operadores
self.operadores.append(operador)

def calcular(self):
# Inicializa o resultado com o primeiro valor da lista de valores
resultado = self.valores[0]
for i in range(len(self.operadores)):
if self.operadores[i] == '+':
# Se o operador for "+", soma o próximo valor da lista de valores
ao resultado atual
resultado += self.valores[i+1]
elif self.operadores[i] == '-':
# Se o operador for "-", subtrai o próximo valor da lista de
valores do resultado atual
resultado -= self.valores[i+1]
elif self.operadores[i] == '*':
# Se o operador for "*", multiplica o resultado atual pelo próximo
valor da lista de valores
resultado *= self.valores[i+1]
elif self.operadores[i] == '/':
# Se o operador for "/", divide o resultado atual pelo próximo
valor da lista de valores
# e trata o caso de divisão por zero
divisor = self.valores[i+1]
while divisor == 0:
print('Não é possível dividir por zero. Por favor, insira outro
valor.')
divisor = float(input('Digite o valor novamente: '))
resultado /= divisor
elif self.operadores[i] == '**':
# Se o operador for "**", eleva o resultado atual ao próximo valor
da lista de valores
resultado **= self.valores[i+1]
return resultado

# Cria uma instância da classe Calculadora


calc = Calculadora()
while True:
# Solicita ao usuário a entrada de um valor ou o sinal de igual ("=") para
realizar o cálculo
valor = input('Digite um valor ou digite = para realizar o cálculo: ')
if valor == '':
# Se o usuário inserir um valor em branco, encerra o programa
break
# Adiciona o valor à lista de valores
calc.adicionar_valor(float(valor))
# Solicita ao usuário a entrada de um operador
operador = input('Digite o operador (+, -, *, /, **): ')
# Adiciona o operador à lista de operadores
calc.adicionar_operador(operador)
if operador == '=':
# Se o usuário inserir o sinal de igual ("="), chama o método calcular e
exibe o resultado
resultado = calc.calcular()
if resultado is not None:
print('Resultado:', resultado)
# Encerra o programa após exibir o resultado
break

Você também pode gostar