Informática, perguntado por glopesmendes, 1 ano atrás

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.


vinivelloso1997: Quao preciso tem que ser o angulo?
glopesmendes: No projeto n diz nada sobre tal precisão, porém, como é preciso que nos lados do triângulo tenham até 2 casas decimais, é melhor fazer a mesma coisa com os ângulos. Mas se ficar muito complicado pode ser apenas como números inteiros mesmo.

Soluções para a tarefa

Respondido por vinivelloso1997
0

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('---------')

Perguntas interessantes