1.
def
area_cilindro(raio, altura):
2.
"""
3.
Calculo da área de um cilindro, conhecidos o raio da base
4.
e a altura.
5.
"""
6.
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.
1.
def
area_cilindro(raio, altura):
2.
"""
3.
Calculo da área de um cilindro, conhecidos o raio da base
4.
e a altura.
5.
"""
6.
lateral
=
2
*
3.14159
*
raio
*
altura
7.
base
=
2
*
3.14159
*
raio
*
*
2
8.
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.
01.
def
area_lateral(raio, altura):
02.
""" Calculo da área lateral de um cilindro."""
03.
return
2
*
3.14159
*
raio
*
altura
04.
05.
def
area_circulo(raio):
06.
""" Calculo da área da base de um cilindro."""
07.
return
3.14159
*
raio
*
*
2
08.
09.
def
area_cilindro(raio, altura):
10.
""" Calculo da área de um cilindro."""
11.
area_lat
=
area_lateral(raio,altura)
12.
area_base
=
area_circulo(raio)
13.
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