Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Atividades de programação - listac08, Notas de estudo de Engenharia de Telecomunicações

atividades de programação(entrada e saida atéstructs)

Tipologia: Notas de estudo

2016

Compartilhado em 29/04/2016

simao-carlos-12
simao-carlos-12 🇧🇷

4.6

(33)

36 documentos

1 / 4

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal de Uberlˆ
andia - UFU
Faculdade de Computac¸ ˜
ao - FACOM
Lista de exerc´
ıcios de programac¸ ˜
ao em linguagem C
Exerc´ıcios: Recurs ˜
ao
1. Crie uma func¸ ˜
ao recursiva que receba um n´
umero inteiro positivo N e calcule o somat´
orio
dos n´
umeros de 1 a N.
2. Fac¸a uma func¸ ˜
ao recursiva que calcule e retorne o fatorial de um n´
umero inteiro N.
3. Escreva uma func¸ ˜
ao recursiva que calcule a soma dos primeiros ncubos: S(n)=13+
23+... +n3
4. Crie uma func¸ ˜
ao recursiva que receba dois inteiros positivos kene calcule kn.
5. Fac¸a uma func¸ ˜
ao recursiva que calcule e retorne o N-´
esimo termo da sequ ˆ
encia Fibo-
nacci. Alguns n ´
umeros desta sequˆ
encia s˜
ao: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...
6. A multiplicac¸ ˜
ao de dois n´
umeros inteiros pode ser feita atrav´
es de somas sucessivas.
Proponha um algoritmo recursivo Multip Rec(n1,n2) que calcule a multiplicac¸ ˜
ao de dois
inteiros.
7. Fac¸a uma func¸ ˜
ao recursiva que receba um n´
umero inteiro positivo N e imprima todos os
n´
umeros naturais de 0 at´
e N em ordem crescente.
8. Fac¸a uma func¸ ˜
ao recursiva que receba um n´
umero inteiro positivo N e imprima todos os
n´
umeros naturais de 0 at´
e N em ordem decrescente.
9. Fac¸a uma func¸ ˜
ao recursiva que receba um n´
umero inteiro positivo par N e imprima todos
os n´
umeros pares de 0 at´
e N em ordem crescente.
10. Fac¸a uma func¸ ˜
ao recursiva que receba um n´
umero inteiro positivo par N e imprima todos
os n´
umeros pares de 0 at´
e N em ordem decrescente.
11. Escreva uma func¸ ˜
ao recursiva que exibe todos os elementos em um array de inteiros,
separados por espac¸ o.
12. Crie um programa que contenha uma func¸ ˜
ao recursiva para encontrar o menor elemento
em um vetor.
13. Escreva uma func¸ ˜
ao recursiva SomaSerie(i,j,k). Esta func¸ ˜
ao devolve a soma da s´
erie de
valores do intervalo [i,j], com incremento k.
14. Escreva uma func¸ ˜
ao recursiva ImprimeSerie(i,j,k). Esta func¸ ˜
ao imprime na tela a s ´
erie
de valores do intervalo [i,j], com incremento k.
15. Fac¸a uma func¸ ˜
ao recursiva que calcule o valor da s´
erie S descrita a seguir para um valor
n > 0a ser fornecido como parˆ
ametro para a mesma.
S= 2 + 5
2+10
3+... +1 + n2
n
1
pf3
pf4

Pré-visualização parcial do texto

Baixe Atividades de programação - listac08 e outras Notas de estudo em PDF para Engenharia de Telecomunicações, somente na Docsity!

Universidade Federal de Uberl ˆandia - UFU Faculdade de Computac¸ ˜ao - FACOM Lista de exerc´ıcios de programac¸ ˜ao em linguagem C

Exerc´ıcios: Recurs ˜ao

  1. Crie uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e calcule o somat ´orio dos n ´umeros de 1 a N.
  2. Fac¸a uma func¸ ˜ao recursiva que calcule e retorne o fatorial de um n ´umero inteiro N.
  3. Escreva uma func¸ ˜ao recursiva que calcule a soma dos primeiros n cubos: S(n) = 1^3 + 23 + ... + n^3
  4. Crie uma func¸ ˜ao recursiva que receba dois inteiros positivos k e n e calcule kn.
  5. Fac¸a uma func¸ ˜ao recursiva que calcule e retorne o N- ´esimo termo da sequ ˆencia Fibo- nacci. Alguns n ´umeros desta sequ ˆencia s ˜ao: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...
  6. A multiplicac¸ ˜ao de dois n ´umeros inteiros pode ser feita atrav ´es de somas sucessivas. Proponha um algoritmo recursivo Multip Rec(n1,n2) que calcule a multiplicac¸ ˜ao de dois inteiros.
  7. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e imprima todos os n ´umeros naturais de 0 at ´e N em ordem crescente.
  8. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e imprima todos os n ´umeros naturais de 0 at ´e N em ordem decrescente.
  9. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo par N e imprima todos os n ´umeros pares de 0 at ´e N em ordem crescente.
  10. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo par N e imprima todos os n ´umeros pares de 0 at ´e N em ordem decrescente.
  11. Escreva uma func¸ ˜ao recursiva que exibe todos os elementos em um array de inteiros, separados por espac¸o.
  12. Crie um programa que contenha uma func¸ ˜ao recursiva para encontrar o menor elemento em um vetor.
  13. Escreva uma func¸ ˜ao recursiva SomaSerie(i,j,k). Esta func¸ ˜ao devolve a soma da s ´erie de valores do intervalo [i,j], com incremento k.
  14. Escreva uma func¸ ˜ao recursiva ImprimeSerie(i,j,k). Esta func¸ ˜ao imprime na tela a s ´erie de valores do intervalo [i,j], com incremento k.
  15. Fac¸a uma func¸ ˜ao recursiva que calcule o valor da s ´erie S descrita a seguir para um valor n > 0 a ser fornecido como par ˆametro para a mesma.

S = 2 +

1 + n^2 n

  1. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo impar N e retorne o fatorial duplo desse n ´umero. O fatorial duplo ´e definido como o produto de todos os n ´umeros naturais ´ımpares de 1 at ´e algum n ´umero natural ´ımpar N. Assim, o fatorial duplo de 5 ´e

5!! = 1 ∗ 3 ∗ 5 = 15

  1. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e retorne o fatorial qu ´adruplo desse n ´umero. O fatorial qu ´adruplo de um n ´umero N ´e dado por:

(2n)! n!

  1. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e retorne o super- fatorial desse n ´umero. O superfatorial de um n ´umero N ´e definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 ´e

sf (4) = 1! ∗ 2! ∗ 3! ∗ 4! = 288

  1. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e retorne o hiperfa- torial desse n ´umero. O hiperfatorial de um n ´umero N, escrito H(n), ´e definido por

H(n) =

∏^ n

k=

kk^ = 1^1 ∗ 22 ∗ 33 ...(n − 1)n−^1 ∗ nn

  1. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero inteiro positivo N e retorne o fatorial exponencial desse n ´umero. Um fatorial exponencial ´e um inteiro positivo N elevado a pot ˆencia de N-1, que por sua vez ´e elevadoa pot ˆencia de N-2 e assim em diante. Ou seja, n(n−1)

(n−2)...

  1. Escreva uma func¸ ˜ao recursiva que calcule a sequ ˆencia dada por:

F(1) = 1

F(2) = 2

F(n) = 2 * F(n-1) + 3 * F(n-2).

  1. Uma sequ ˆencia de Fibonacci generalizada, de f0 a f1 ´e definida como fibg(f0, f1, 0), fibg(f0, f1, 1), fibg(f0, f1, 2), ..., onde:

fibg(f0, f1, 0) = f fibg(f0, f1, 1) = f fibg(f0, f1, n) = fibg(f0, f1, n-1) + fibg(f0, f1, n-2), se n > 1.

  1. Fac¸a uma func¸ ˜ao recursiva que permita somar os elementos de um vetor de inteiros.
  2. Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero N e retorne o N- ´esimo termo da sequ ˆencia de tribonacci. Os n ´umeros tribonacci s ˜ao definidos pela seguinte recurs ˜ao

f(n) = 0 se n = 0 f(n) = 0 se n = 1 f(n) = 1 se n = 2 f(n) = f(n-1)+f(n-2)+f(n-3) se n > 3

Aqui o s´ımbolo “+” denota a concatenac¸ ˜ao de duas strings. Esta sequ ˆencia inicia com as seguintes palavras: b, a, ab, aba, abaab, abaababa, abaababaabaab, ... Fac¸a uma func¸ ˜ao recursiva que receba um n ´umero N e retorne a N- ´esima palavra de Fibonacci.

  1. Dado um n ´umero n na base decimal, escreva uma func¸ ˜ao recursiva que converte este n ´umero para bin ´ario.
  2. Crie um programa que receba um vetor de n ´umeros reais com 100 elementos. Escreva uma func¸ ˜ao recursiva que inverta a ordem dos elementos presentes no vetor.
  3. Fac¸a uma func¸ ˜ao recursiva que permita inverter um n ´umero inteiro N. Ex: 123 - 321
  4. Escreva uma func¸ ˜ao recursiva que determine quantas vezes um d´ıgito K ocorre em um n ´umero natural N. Por exemplo, o d´ıgito 2 ocorre 3 vezes em 762021192.
  5. O m ´aximo divisor comum dos inteiros x e y ´e o maior inteiro que ´e divis´ıvel por x e y. Escreva uma func¸ ˜ao recursiva mdc que retorna o m ´aximo divisor comum de x e y. O mdc de x e y ´e definido como segue: se y ´e igual a 0, ent ˜ao mdc(x,y) ´e x; caso contr ´ario, mdc(x,y) ´e mdc (y, x%y), onde % ´e o operador resto.
  6. Escreva uma func¸ ˜ao recursiva que permita fazer a multiplicac¸ ˜ao a russa de 2 entradas. A Multiplicac¸ ˜aoa russa consiste em:

(a) Escrever os n ´umeros A e B, que se deseja multiplicar na parte superior das colunas. (b) Dividir A por 2, sucessivamente, ignorando o resto at ´e chegar `a unidade, escrever os resultados da coluna A. (c) Multiplicar B por 2 tantas vezes quantas se haja dividido A por 2, escrever os resul- tados sucessivos na coluna B. (d) Somar todos os n ´umeros da coluna B que estejam ao lado de um n ´umero ´ımpar da coluna A.

Exemplo: 27 * 82

A B Parcelas 27 82 82 13 164 164 6 328 - 3 656 656 1 1312 1312

Soma = 2214