Funções

Tópicos

  • passagem de parâmetros;
  • variáveis locais;
  • documentação: docstring

Exercício de motivação

O número de combinações possíveis de m elementos em grupos de n elementos (n <= m) é dada pela fórmula de combinação m!/((m-n)!n!).

Escreva um programa que lê dois inteiros m e n e calcula a combinação de m, n a n.

(aula06_ex61_tentativa)



Clique aqui para ver uma solução.

Observe que o pedaço de cógigo que calcula o fatorial é repetido várias vezes. Uma importante ferramenta computacional é a capacidade de abstrair partes relevantes e/ou que se repetem mais de uma vez na forma de funções.

Funções em Python

Para declarar uma função em Python faça o seguinte:

def "nome da função"("parâmetros"):
    '''
    docstring contendo comentários sobre a função.
    Embora opcionais são fortemente recomendados. Os comentários
    devem descrever o papel dos parâmetros e o que a função faz.
    '''
    # corpo da função
    |
    | bloco de comandos
    |

Esqueleto de um programa em Python

Para nos prevenir de alguns problemas (que serão explicados mais tarde), vamos adotar nesse curso o seguinte esqueleto para escrever programas em Python com funções. Nesse esqueleto, a primeira função sempre será chamada de main e corresponderá a função principal do programa, ou seja, aquela que resolve o problema. As demais funções auxiliares devem ser definidas, em qualquer ordem, após a definição da main e, por fim, para executar o programa, a função main precisa ser chamda.

# função  principal
def main():
    '''
    Função principal, será a primeira a ser executado e
    será a responsável pela chamada de outras funções que
    por sua vez podem ou não chamar outras funçoes que
    por sua vez ...
    '''
    # corpo da função main
    |
    | bloco de comandos
    |

# Declaração das funções
def f...
    '''
    docstring da função f
    '''
    # corpo da função f
    |
    | bloco de comandos
    |

def g...
    '''
    docstring da função g
    '''
    # corpo da função g
    |
    | bloco de comandos
    |

[...]

# início da execução do programa
main() # chamada da função main

Exercícios

Exercício 6.2

Complete a função fatorial abaixo, que recebe como parâmetro um número inteiro k, k >= 0, e retorna k!.

Escreva apenas o corpo da função. Observe que o código já inclui chamadas para a função fatorial, para que você possa testar a função.

(aula06_ex62_tentativa)



Clique aqui para ver uma solução.

Exercício 6.3

Usando a função do exercício 6.2, escreva uma função que recebe dois inteiros, m e n, como parâmetros e retorna a combinação m!/((m-n)!n!).

(aula06_ex63_tentativa)



Clique aqui para ver uma solução.

Exercício 6.4

Usando as funções dos exercícios 6.2 e 6.3, escreva um programa que lê um inteiro n, n >= 0 e imprime os coeficientes da expansão de (x+y) elevado a n.

Lembre-se de utilizar o esqueleto de programa com funções em Python.

(aula06_ex64_tentantiva)



Clique aqui para ver uma solução.