Questão 04 - Implemente funções para calcular a área e a circunferência de um círculo. Ambas as funções devem receber como argumento o raio do círculo. Escrever o módulo principal fazendo algumas chamadas dessas funções passando diversos raios para elas.
Passo 1
O enunciado pede que eu implemente duas funções: uma para calcular a área de um círculo e outra para calcular a circunferência (perímetro) do círculo. Ambas as funções devem receber como argumento o raio do círculo. Também devo escrever um módulo principal que faça algumas chamadas dessas funções passando diversos raios.
Informações relevantes fornecidas:
- As duas funções recebem como argumento o raio.
- Precisamos calcular a área e a circunferência (perímetro) do círculo.
- É solicitado que o módulo principal faça diversas chamadas com diferentes raios para demonstrar o funcionamento.
Passo 2
Vamos fixar as fórmulas matemáticas que usaremos (essas são as que caem em qualquer prova sobre circunferência e área de círculo).
A fórmula da área do círculo é:
onde:
-
é a constante pi (aproximadamente ), -
é o raio do círculo, -
é a área resultante.
A fórmula da circunferência (perímetro) é:
onde:
-
é a circunferência (comprimento da borda do círculo), - os outros símbolos já foram definidos acima.
Essas fórmulas vêm da geometria básica: a área cresce com o quadrado do raio (porque área é medida em unidades quadradas) e a circunferência cresce linearmente com o raio.
Passo 3
Antes de codificar, pense nas convenções e casos que podem aparecer numa prova/prática:
- O raio deve ser um número não negativo. Se o raio for negativo, isso não faz sentido físico; podemos tratar isso como erro.
- Para
temos e . - Usaremos a constante
da biblioteca matemática da linguagem (para ter precisão), em vez de um valor truncado manualmente.
Exemplos numéricos (para referência mental):
- Para
:
- Para
:
Passo 4
Decisões de implementação (motivo do método escolhido):
- Vou usar Python por ser simples, direto e muito usado em cursos de exatas.
- Implementarei duas funções claras e pequenas: uma chamada
que recebe e retorna a área, e outra chamada que recebe e retorna a circunferência. - Cada função fará uma validação simples: se o raio for negativo, lançará um erro (para você não esquecer disso na prova/prática).
- No módulo principal (
) vou demonstrar as funções com uma lista de raios variados, imprimindo resultados formatados para facilitar a leitura na hora da revisão.
Passo 5
Explicação passo a passo do código (linha a linha, mentalmente):
- Importamos a constante
da biblioteca para precisão: . - Definimos a função
: - Verificamos se
. Se sim, levantamos um . - Calculamos a área com
e retornamos esse valor.
- Verificamos se
- Definimos a função
: - Mesma validação de raio negativo.
- Calculamos com
e retornamos o valor.
- No bloco principal, criamos uma lista de raios de exemplo, por exemplo
. - Iteramos sobre essa lista e imprimimos, formatando os números com casas decimais apropriadas (por exemplo, 5 casas decimais) para facilitar conferência rápida.
- Assim, ao rodar o módulo você verá os resultados para cada raio e pode comparar com os cálculos manuais vistos no Passo 3.
Passo 6
Observações de prova e dicas rápidas:
- Se te pedirem só as fórmulas, escreva
e . - Se te pedirem um trecho de código, o que mostrei é curto e direto, e é uma boa prática validar o raio.
- Se for permitido usar bibliotecas, use a constante
da linguagem; se não, explique que pode usar . - Sempre responda os casos extremos:
e (no segundo caso diga que é inválido).
Resposta
from math import pi
def area(raio):
"""
Calcula a área de um círculo de raio 'raio'.
Retorna um float.
Levanta ValueError se o raio for negativo.
"""
if raio < 0:
raise ValueError("Raio não pode ser negativo")
return pi * raio ** 2
def circunferencia(raio):
"""
Calcula a circunferência (perímetro) de um círculo de raio 'raio'.
Retorna um float.
Levanta ValueError se o raio for negativo.
"""
if raio < 0:
raise ValueError("Raio não pode ser negativo")
return 2 * pi * raio
if __name__ == "__main__":
raios = [0, 1, 2.5, 10]
for r in raios:
a = area(r)
c = circunferencia(r)
print(f"Raio = {r}: Área = {a:.5f}, Circunferência = {c:.5f}")