Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível
Módulos de Matemática
Módulo de Matemática Estendido
Objetivo
Calcule as novas extensões de terra para a fazenda usando mais funções importadas do módulo math.
Atravessando a ponte, o anexo possui alguns escritórios usados para fazer o levantamento da terra não incorporada que une duas partes diferentes da fazenda. Aqui encontraremos algumas dimensões e medições de terra; seria uma boa ideia organizá-las e documentar os dados. Você pode fazer isso utilizando o módulo math, neste nível seremos apresentados a um novo conjunto de funções que podemos usar para processar os dados. Você usa o mesmo import math e math. antes das funções para utilizar este conjunto:
math.radians(): Converte graus em radianos / ângulos.math.floor(): Arredonda o número para baixo para um número base.math.ceil(): Arredonda o número para cima para um número maior.math.atan2(): Retorna a arcotangente entre dois números em radianos.math.isclose(): Verifica se dois números estão próximos um do outro, retorna verdadeiro/falso.math.fsum(): Soma números de ponto flutuante (decimais) de uma lista ou iterável.math.dist(): Verifica a distância entre dois pontos; os valores precisam ser listas ou iteráveis.
Inicie a coleta dos dados brutos dos gráficos caminhando até a marca de X claro sobre o tapete vermelho e azul. Use a função read() para identificar as dimensões brutas necessárias para realizar as medições. Essas medições já estão armazenadas em quatro constantes de variável nomeadas: red_x, red_y, blue_x e blue_y.
Uma vez que ambos os conjuntos de dados tenham sido identificados, caminhe até a marca de X escura sobre o tapete laranja e enfrente a mesa. Use math.radians() e math.ceil() para converter as variáveis blue_x e blue_y em radianos e arredondá-las para cima. Use float() para garantir que as constantes sejam decimais que podem ser editadas. Por exemplo, para a variável blue_x: converter para radianos blue_x = math.radians(float(blue_x)) e arredondar o valor para cima blue_x = math.ceil(float(blue_x)). Faça o mesmo para blue_y nesta marca de X. Uma vez feito, use a função predefinida write() e adicione as variáveis blue_x e blue_y para registrá-las.
Caminhe até a marca de X escura sobre o tapete verde e use math.radians() e math.floor() para converter as variáveis red_x e red_y em radianos e arredondá-las para baixo. Por exemplo, para a variável red_x: converta para radianos red_x = math.radians(red_x) e arredonde o valor blue_x = math.floor(red_x). Faça o mesmo para red_y nesta marca de X. Uma vez feito, use a função predefinida write() e adicione as variáveis red_x e red_y para registrá-las.
Caminhe até a marca de X dourada e enfrente a mesa, aqui criaremos duas novas variáveis, data_a e data_b. Aqui armazenaremos as arcotangentes de cada conjunto usando a função math.atan2. Para data_a usamos as variáveis blue_x e blue_y para alimentar a função, assim: data_a = math.atan2(blue_x,blue_y). Para data_b, faça o mesmo, mas com red_x e red_y. Uma vez feito, use a função predefinida write() e adicione as variáveis data_a e data_b para registrá-las.
Agora que as mesas inferiores foram atendidas, caminhe até a marca de X escura sobre o tapete roxo, crie uma variável chamada comparison e use-a com a função math.isclose(), utilizando data_a e data_b como argumentos, assim: comparison = math.isclose(data_a, data_b). Use a função predefinida write() com a variável comparison nesta marca de X.
Mova-se até a marca de X sobre o tapete branco, crie uma lista chamada data_list e adicione data_a e data_b nessa ordem. Crie uma variável chamada total e use a função math.fsum() com data_list como argumento, assim: total = math.fsum(data_list). Use a variável total com a função predefinida write() nesta marca de X.
Mova-se até a marca de X escura sobre o tapete amarelo e enfrente a mesa, converta data_a e data_b em valores individuais de lista, por exemplo, para data_a faça: data_a = [data_a]. Faça o mesmo para data_b para converter ambas as variáveis em iteráveis para uso com a função math.dist(). Crie uma variável chamada distance e use-a para armazenar o valor de math.dist(), usando data_a e data_b como argumentos. Use a variável distance com a função predefinida write() para completar o nível.