Exercícios – Recursividade

Share
  1. Quando uma função ou procedimento podem ser considerados recursivos?
  2. Quais os principais cuidados que devemos tomar ao projetar funções recursivas?
  3. Uma recursão pode ocorrer infinitamente? Justifique.
  4. O que é um “caso base” ou “condição base” em uma função recursiva?
  5. Construa um procedimento recursivo rec05() que imprima de 0 a um número inteiro N passado como parâmetro. Crie um programa de teste e imprima os valores de rec05(5), rec05(10) e rec05(20).

  6. Construa um programa que leia do teclado dois números N1 e N2 e através de um procedimento recursivo rec06() imprima os caracteres entre N1 e N2. Crie um programa de teste e imprima os valores de rec06(1, 3), rec06(5, 10) e rec06(20, 1).
  7. Construa um procedimento recursivo rec07() que imprima os caracteres entre ‘a’ e ‘g’. Crie um programa de teste.
  8. Construa um programa de teste e uma função recursiva rec08() que receba como parâmetros dois números inteiros a e be:
    • Retorne o valor de a caso b for igual a 1;
    • Retorne a soma de a com rec08(a,b-1);
    • Imprima o resultado de rec08(0, 10).
  9. Construa uma função recursiva potenciaRec(x,y) que retorne o valor de XY. Defina o caso base e a regra de recursão. Teste a função imprimindo os resultados de potenciaRec(2,2), potenciaRec(3,4) e potenciaRec(4,3).
  10. Construa uma função recursiva mdc() que calcule o máximo divisor comum de dois inteiros a e b. Utilize as seguintes relações para montar sua função recursiva: mdc(x,0) = x; mdc(x,y) = mdc(x, x % y).
  11. Construa um programa que monte um vetor de inteiros com 10 posições e inicie cada elemento com o valor de 1 a 10. Construa um procedimento recursivo rec11a() que imprima todos os elementos em ordem. Construa um procedimento recursivo rec11b() que imprima todos os elementos na ordem inversa.
  12. Construa um programa que monte um vetor de inteiros com 10 posições e inicie cada elemento com um valor aleatório entre 1 e 10. Construa uma função recursiva rec12()que retorne a soma dos elementos do vetor. Dica: use um segundo parâmetro inteiro para servir de “contador” para o índice do vetor.
Share

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*