Exercicios - Recursividade

Post on 23-Oct-2015

16 views 1 download

description

Lista de exercicios sobre recursividade

Transcript of Exercicios - Recursividade

Curso: Análise e Desenvolvimento de Sistemas - 2012.2

Disciplina: Tópicos Avançados em Análise e Projeto de Sistemas

Professor: Gilvan Durães

Exercícios – Recursividade OBS.: Esta lista de exercícios deve ser feita utilizando o conceito de recursividade visto em sala de aula

1) Escreva uma função para exibir os n primeiros inteiros positivos (em ordem crescente), sendo

n um valor fornecido pelo usuário.

2) Escreva uma função para calcular o fatorial de um número fornecido como parâmetro.

3) Escreva uma função que retorna a soma dos n elementos de um vetor.

4) Escreva uma função, int somaSerie(int i, int j, int k), que devolva a soma da série de valores

do intervalo [i,j], com incremento k.

5) Faça uma função que calcule o valor da série S descrita a seguir para um valor n > 0 a ser

fornecido como parâmetro para a mesma.

6) Reescreva a função abaixo, em C, tornando-a recursiva:

int numDigitos(int n)

inicio

int cont := 1;

enquanto (n > 9) faça

n=n/10;

cont++;

fim-enquanto

retorne cont;

fim

7) Responda o que faz o algoritmo descrito abaixo para cada uma das seguintes entradas:

a) n = 0 b) n = 3 c) n = 946

d) n = -945 e) n = -1

int fazAlgo(int n)

início

se n=1 então

retorne (1);

senão se n = 0 então

retorne(0);

senão

retorne(fazAlgo(n-2));

fim

8) Qual a saída do algoritmo escrito abaixo para a entrada a=4 e b=3?

void fazAlgo(int a, int b)

início

se b=1 então faça

escreva (a);

escreva (“*”);

fim-se

senão faça

fazAlgo(a+a, b-1);

escreva (a);

escreva (“?”);

fim-senão

fim

9) Dada a função funcaoX, responda as questões a seguir:

int funcaoX(int n, int m)

inicio

se (n=m) ou (m=0) entao

retorne 1

senao retorne funcaoX(n-1,m) + funcaoX(n-1,m-1)

fim

a. qual o valor de funcaoX(5,3) ?

b. quantas chamadas recursiva serão feitas na avaliação funcaoX(5,3)?

10) Escreva uma função que verifica se um vetor de inteiros é palíndromo ou não, ou seja, se ele é

idêntico quando lido da esquerda para direita ou da direita para esquerda.

Exemplo: o vetor [ 2 | 4 | 7 | 1 | 7 | 4 | 2 ] é palíndromo, logo a função deve retornar

verdadeiro.