🔁

Função Recursiva em Python

Jul 5, 2024

Função Recursiva em Python

Introdução

  • Aula focada em resolver exercícios de função recursiva em Python.
  • Exemplos práticos de como implementar funções recursivas, abordando somatório, exponenciação e cálculo de série.

Exercício 1: Somatório de 1 a n

  • Objetivo: Criar uma função recursiva que calcule o somatório de números de 1 a n.
  • Implementação:
    • Caso Base: Se n <= 0, retornar 0 (somatório dos primeiros 0 números é 0).
    • Caso Geral: somatorio(n) = n + somatorio(n - 1).
    • Código: def somatorio(n): if n <= 0: return 0 else: return n + somatorio(n - 1)
    • Exemplo: para n = 5, a função chamará
      • somatorio(5) = 5 + somatorio(4)
      • somatorio(4) = 4 + somatorio(3)
      • e assim por diante até somatorio(0) = 0.

Exercício 2: Exponenciação k^n

  • Objetivo: Criar uma função recursiva que calcule k elevado a n.
  • Implementação:
    • Caso Base: k^0 = 1
    • Caso Geral: k^n = k * k^(n-1)
    • Tratamento para n negativo: k^-n = 1 / k^n
    • Código: def exponencial(k, n): if n == 0: return 1 elif n < 0: return 1 / exponencial(k, -n) else: return k * exponencial(k, n - 1)
    • Exemplo: para k = 2 e n = 3, a função chamará
      • exponencial(2, 3) = 2 * exponencial(2, 2)
      • exponencial(2, 2) = 2 * exponencial(2, 1)
      • e assim por diante até exponencial(2, 0) = 1.

Exercício 3: Cálculo da Série S

  • Objetivo: Criar uma função recursiva para calcular o valor da série S considerando um n positivo.
    • Série: S é definida como a soma de várias frações: S = 1/1 + 1/2 + 1/3 + ... + 1/n
  • Implementação:
    • Caso Base: Se n <= 0, retornar 0.
    • Caso Geral: S(n) = (1+n*n)/n + S(n-1)
    • Código: def serie(n): if n <= 0: return 0 else: return (1 + n * n) / n + serie(n - 1)
    • Exemplo: para n = 3, a função chamará
      • serie(3) = (1+3*3)/3 + serie(2)
      • serie(2) = (1+2*2)/2 + serie(1)
      • e assim por diante até serie(0) = 0.

Conclusão

  • Funções recursivas têm uma codificação simples e elegante.
  • Importante identificar claramente o caso base e o caso geral.
  • Implementações cobriram somatório, exponenciação e cálculo de série.
  • Dúvidas podem ser enviadas por comentário.