exercicios - recursividade

2
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

Upload: ghost0101

Post on 23-Oct-2015

16 views

Category:

Documents


1 download

DESCRIPTION

Lista de exercicios sobre recursividade

TRANSCRIPT

Page 1: 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

Page 2: Exercicios - Recursividade

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.