Exercícios

  1. Implemente de forma recursiva uma função que recebe como entrada um número natural \(n\) e retorna \(n!\). Não esqueça de verificar se o argumento passado como entrada é realmente um número natural.

  2. Implemente de forma recursiva uma função que recebe como entrada um vetor \(v\) e retorna o valor máximo desse vetor.

  3. No caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um vetor \(v\) e retorna a soma dos elementos desse vetor. Em seguida, no computador, implemente o pseudocódigo elaborado.

  4. No caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um vetor \(v\) e retorna a posição onde se encontra o valor máximo desse vetor. Dica: em vez de definir \(w = (v_2, v_3, \ldots, v_n)\) defina \(w = (v_1, v_2, \ldots, v_{n-1})\) para a chamada recursiva. Mas cuidado que isso muda um pouco a forma de pensar. Em seguida, no computador, implemente o pseudocódigo elaborado.

  5. Suponha que você vá investir R$ \(500,00\) na poupança e que esta rende \(7,5\%\) ao ano.

    1. Calcule na mão o quanto de dinheiro você teria no banco depois de 1, 2 e 3 anos de investimento.
    2. Tente achar uma equação que relacione o total de dinheiro acumulado em \(n\) anos de investimento com o total de dinheiro acumulado em \(n-1\) anos.
    3. Usando a equação encontrada, no caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um número natural \(n\) e retorna o dinheiro acumulado em \(n\) anos nesse investimento.
    4. Agora no computador implemente o pseudocódigo elaborado.
  6. Suponha que você vai fazer um financiamento de R$ 1.200,00 e vai pagar juros compostos de \(2\%\) ao mês. Considere que você pode pagar R$150,00 por mês.

    1. Calcule na mão o valor da sua dívida depois de 1, 2 e 3 meses.
    2. Tente achar uma equação que relacione a sua dívida no mês \(n\) com a sua dívida no mês \(n-1\).
    3. Usando a equação encontrada escreva no caderno um pseudocódigo recursivo para o algoritmo que recebe como entrada um número natural \(n\) e retorna a sua dívida após \(n\) meses do início do financiamento. Não se esqueça de considerar o caso em que a dívida foi paga, nesse caso você deve retornar \(0\).
    4. Agora no computador implemente o pseudocódigo elaborado acima.
  7. Implemente uma função recursiva que recebe como entrada um número natural \(n\) e retorna o \(n\)-ésimo termo da sequência de Fibonacci.

  8. Considere a seguinte sequência definida a partir de uma equação de diferenças de segunda ordem. \[ y_n = 2y_{n-1} + y_{n-2} + n \ \ \ \hbox{ com } \ \ \ y_1 = 0 \hbox{ e } y_2 = 0\]

    1. No caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um número natural \(n\) e retorna o valor de \(y_n\).
    2. Agora no computador implemente o pseudo-código elaborado acima.
  9. No caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um array de números e retorna o número de elementos nulos nesse array. Em seguida, no computador, implemente o pseudocódigo elaborado.

  10. No caderno escreva um pseudocódigo recursivo para o algoritmo que recebe como entrada um array qualquer e retorna outro array definido pela ordem inversa do array de entrada. Em seguida, no computador, implemente o pseudocódigo elaborado.