def area_cilindro(raio, altura):
"""
Calculo da área de um cilindro, conhecidos o raio da base
e a altura.
"""
return 2 * 3.14159 * raio * altura + 2 * (2 * 3.14159 * raio ** 2)
Um dos problemas que se colocam a quem programa é que os seus programas destinam-se a ser usados, lidos, modificados por outros. Muitas vezes até pelos próprios. Tudo isso leva a que os programas sejam modulares e claros. Estas propriedades estão ausentes mesmo num programa tão pequeno e simples como o anterior. Vamos tentar melhorá-lo.
def area_cilindro(raio, altura):
"""
Calculo da área de um cilindro, conhecidos o raio da base
e a altura.
"""
lateral = 2 * 3.14159 * raio * altura
base = 2 * 3.14159 * raio ** 2
return lateral + 2 * base
Nesta solução dividimos o nosso problema em dois sub-problemas. Obtemos o resultado de cada um e associamos esses objectos a nomes significativos. Depois é só combinar esses resultados para obter o resultado final. Concordarão que está mais legível!
Mas podemos ainda pensar no aspecto modularidade e reutilização de código. Para tal criamos duas definições auxiliares.
def area_lateral(raio, altura):
""" Calculo da área lateral de um cilindro."""
return 2 * 3.14159 * raio * altura
def area_circulo(raio):
""" Calculo da área da base de um cilindro."""
return 3.14159 * raio ** 2
def area_cilindro(raio, altura):
""" Calculo da área de um cilindro."""
area_lat = area_lateral(raio,altura)
area_base = area_circulo(raio)
return area_lat + 2 * area_base
A legibilidade mantém-se e passamos a ter duas definições autónomas que podemos usar para outros cálculos, como por exemplo a área de um círculo.
Sem comentários:
Enviar um comentário