Você está na página 1de 2

Universidade Federal do Ceará – Departamento de Engenharia de Teleinformática

Atividade Didática Remota – 2021.1


Introdução à Programação
Prof. Tarcisio Ferreira Maciel, Dr.-Ing.

Objetivos:

• Explorar programas que utilizem funções recursivas.


• Explorar programas que utilizem uma biblioteca de funções próprias.

Critérios de avaliação:

i. Correção: o programa deve fornecer respostas corretas. Redução em até 100% da nota.
ii. Cobertura: o programa deve utilizar tipos de dados e comandos corretos para processar adequadamente
diferentes entradas. Redução em até 50% da nota cumulativa com outros critérios.
iii. Organização: o programa deve estar devidamente organizado (indentação, nomes de identificadores claros,
comentários, etc.). Redução em até 10% na nota cumulativa com outros critérios.
iv. Originalidade: o programa não deve ser cópia literal ou cópia semântica (p. ex., cópia literal com termos
renomeados) da solução de outro discente. Redução em até 50% da nota cumulativa com outros critérios.

Para cada questão de programação da atividade, comece criando uma aplicação do tipo “Console application”
seguindo o passo-a-passo apresentado em vídeo. Em seguida, modifique o programa “Hello World!” para resolver
uma questão. Cada projeto deverá ser chamado QuestaoXX, em que XX é o número da questão. Por exemplo,
para a Questão 1, o projeto deverá se chamar Questao01. Em todas as questões é mandatório que os dados de
entrada fornecidos pelo usuário sejam validados.
Questão 1. (L05) Os números tetranacci iniciam com quatro termos pré-determinados e a partir dai todos os
demais números são obtidos pela soma dos quatro números anteriores. Os primeiros números de tetranacci
são: 0, 0, 0, 1, 1, 2, 4, 8, 15, 29, 56, 108, 208, . . . . Faça uma função recursiva que receba um número N e retorne
o N-ésimo termo da sequência de tetranacci. Na função main, leia os dados de entrada requeridos pela referida
função, aplique a mesma e imprima ainda na main os resultados obtidos.

Questão 2. (L05) A função de Acherman é definida recursivamente nos números não-negativos como segue:



 𝑛 + 1, se 𝑚 = 0,


𝐴(𝑚, 𝑛) = 𝐴(𝑚 − 1, 𝑛), se 𝑚 > 0 e 𝑛 = 0,

 𝐴(𝑚 − 1, 𝐴(𝑚, 𝑛 − 1)), se 𝑚 > 0, 𝑛 > 0.


Faça uma função recursiva em C++ para computar a função de Ackerman. Na função main, leia os dados de entrada
requeridos pela referida função, aplique a mesma e imprima ainda na main os resultados obtidos.

Questão 3. (L05) A multiplicação de dois números inteiros pode ser feita através de somas sucessivas. Proponha
um algoritmo recursivo recursiveMultiplication na forma de uma função que calcule a multiplicação de dois
inteiros não-negativos num1 e num2. Na função main, leia os dados de entrada requeridos pela referida função,
aplique a mesma e imprima o resultado na main.

Questão 4. (L05) Escreva uma função recursiva countDigits que determine quantas vezes um dígito d ocorre
em um número natural n, ambos fornecidos à mesma como parâmetros. Por exemplo, o dígito 2 ocorre 3 vezes
em 762021192. Na função main, leia um valor para n e para d, valide os dados de entrada, e aplique a referida
função para calcular o número de ocorrências de d em N. Imprima o resultado na main.
Questão 5. (L05) Faça uma função recursiva, em linguagem C++, que calcule o valor da série 𝑆 descrita a seguir
para um valor 𝑛 > 0 a ser fornecido como parâmetro para a mesma.

5 10 1 + 𝑛2
𝑆 =2+ + +...+ .
2 3 𝑛
Na função main, leia os dados de entrada requeridos pela referida função, aplique a mesma e imprima ainda na
main os resultados obtidos.

Você também pode gostar