Alguém consegue me ajudar nesse projeto de processamento de dados no Python?
Desenvolver um algoritmo para calcular os 3 lados e os 2 ângulos (um já é de 90º, por ser um triângulo retângulo) onde o usuário deve informar somente dois dos três lados.
Os valores informados devem ser números REAIS maior que ZERO.
Os resultados devem ser expressados em números REAIS com precisão de 2 casas decimais.
Os resultados dos ângulos devem ser expressos em graus.
O projeto deve manter sua execução até que o usuário defina o seu término, isto é, a cada término de uma execução, perguntar se o usuário deseja nova execução).
O projeto só PODE aceitar valores maior que zero. Caso algum valor ser fornecido incorretamente, o projeto deve solicitar, novamente o valor, até que este seja válido.
Soluções para a tarefa
Fiz um codigo simples para voce se basear. Ele nao tem uma funcao de arco seno boa e eleconsidera que os lado sao sempre os adjacentes à hipotenusa.
import math
def GetGreaterThanZero(me):
a = ''
while True:
a = input(me)
b = float(a)
if b > 0:
return b
def ArcCosine(x):
return (-0.69813170079773212 * x * x - 0.87266462599716477) * x + 1.5707963267948966
while True:
a = GetGreaterThanZero('Side A: ')
b = GetGreaterThanZero('Side B: ')
c = (a*a) + (b*b)
c = math.sqrt(c)
print('c: ' + str(c))
cos_alpha = b/c
print('Cosine of alpha: ' + str(cos_alpha))
alpha = ArcCosine(cos_alpha)
alpha = alpha * (180/math.pi)
print('Alpha: ' + str(alpha))
cos_beta = a/c
print('Cosine of beta:' + str(cos_beta))
beta = ArcCosine(cos_beta)
beta = beta * (180/math.pi)
print('Beta: ' + str(beta))
if input('Continue? (y/n): ') == 'n':
break
print('---------')