Universidade Salvador Bacharelado em Ciência da Computação Estrutura de Dados Prof. Othon M. N. Batista Aluno:_________________________________________________________________ Exercício – Recursividade Para cada questão desse exercício, um programa principal deve ser feito para testar a respectiva função ou procedimento feito. 1. Faça uma função recursiva e outra iterativa em Pascal que calculam o fatorial de um número. Chame as funções em um programa principal e verifique até que valor de entrada cada função funciona. Lembre-se que Fatorial (0) = Fatorial (1) = 1 e Fatorial (n) = n * Fatorial (n – 1). 2. A combinação de elementos está relacionada com recursividade através da relação: n−1 mn =n−1 m m−1 Vale lembrar que Cn,0 = Cn,n = 1. Implemente esta relação em Pascal utilizando recursividade. 3. A função de Fibonacci é definida recursivamente: { 0, se x=0 F x= 1, se x=1 F x−1 F x−2 , se x2 } Implemente a função de Fibonacci em Pascal usando recursividade. 4. Faça uma função recursiva em Pascal que: 4.1. retorna o comprimento de uma cadeia de caracteres; 4.2. calcula o máximo divisor comum (mdc) de um número inteiro; 4.3. calcula a raiz quadrada de um número real; 4.4. implementa a pesquisa binária em um vetor com n posições; 4.5. soma os elementos de um vetor de números inteiros. 5. A função de Ackerman A (m, n) está definida como: { n1, se m=0 A m , n= Am−1, 1 , se n=0 e m0 Am−1, Am , n−1 , se m0 e n0 } 5.1. implemente a função de Ackerman em Pascal com recursividade; 5.2. implemente a função de Ackerman em Pascal sem recursividade; 5.3. qual o valor de Ackerman (3, 2)? 6. Há 3 torres e 64 discos com diâmetros distintos, dispostos um sobre o outro na primeira torre. Os discos estão empilhados e ordenados com o menor disco em cima e o maior embaixo. Monges devem mover os discos da primeira torre para a terceira torre obedecendo regras: (1) apenas um disco pode ser movido por vez; (2) um disco não pode ser colocado sobre outro que tem o diâmetro menor. Escreva um procedimento recursivo em Pascal que resolve o problema e imprime a sequência correta de movimentos.