Prévia do material em texto
Painel Meus cursos 32010001906-T01-2024-1 📚 Módulo 3 ✅ [A3] Avaliação do Módulo 3 – Algoritmos recursivos Iniciado em sexta, 5 jul 2024, 13:03 Estado Finalizada Concluída em sexta, 5 jul 2024, 13:39 Tempo empregado 36 minutos 24 segundos Avaliar 9,00 de um máximo de 10,00(90%) Comentários Questão 1 Correto Atingiu 1,00 de 1,00 A recursividade indireta é produzida quando um programa ativa outro, que terminará ativando novamente o primeiro. Por exemplo: um programa A chama um programa B, e o programa B chama o programa A. Escolha uma opção: Verdadeiro Falso https://ava.ufms.br/my/ https://ava.ufms.br/course/view.php?id=53724 https://ava.ufms.br/course/view.php?id=53724#section-4 https://ava.ufms.br/mod/quiz/view.php?id=738914 Questão 2 Incorreto Atingiu 0,00 de 1,00 Considere uma função recursiva f(x) com o seguinte formato: f(x) = 1, se x = 1; f(x) = f(x/2), se x for um número par; f(x) = f(3x+1), se x for um número ímpar. Sabe-se que, para qualquer número x maior que zero, f(x) sempre terminará após algumas chamadas recursivas. Escreva um programa que, dado um número x > 0, calcula quantas chamadas recursivas são necessárias até que f(x) seja igual a 1. Por exemplo: Teste Entrada Resultado 1 3 8 2 10 7 Resposta: (regime de penalidade: 0%) def f(x): if x == 1: return 1 elif x % 2 == 0: return f(x // 2) else: return f(3 * x + 1) def count_recursive_calls(x): def count_calls_helper(x, count): if x == 1: return count elif x % 2 == 0: return count_calls_helper(x // 2, count + 1) else: return count_calls_helper(3 * x + 1, count + 1) return count_calls_helper(x, 1) # Inicia com count = 1 para contar a prim # Teste para x = 3 x1 = 3 result1 = count_recursive_calls(x1) Teste Entrada Esperado Obteve 1 3 8 8 2 10 7 8 Alguns casos de teste ocultos também falharam. Seu código deve passar em todos os testes para receber qualquer nota. Tente novamente. Mostrar diferenças Incorreto Notas para este envio: 0,00/1,00. 1 ▼ 2 ▼ 3 4 ▼ 5 6 ▼ 7 8 9 ▼ 10 ▼ 11 ▼ 12 13 ▼ 14 15 ▼ 16 17 18 19 20 21 22 Questão 3 Correto Atingiu 1,00 de 1,00 Questão 4 Correto Atingiu 1,00 de 1,00 Questão 5 Correto Atingiu 1,00 de 1,00 Em relação aos conceitos de iteratividade e recursividade, escolha uma sentença INCORRETA. a. A recursão não possui desvantagens, portanto, as soluções recursivas sempre serão a melhor opção para implementar a solução de qualquer algoritmo. b. Tanto implementações iterativas quanto recursivas são baseadas em uma estrutura de controle. c. Há várias funções que podem ser resolvidas tanto iterativamente quanto recursivamente. d. A recursão consegue a repetição por meio de chamadas repetidas. e. Soluções recursivas criam uma outra cópia da função, o que pode consumir muita memória dependendo da quantidade de chamadas recursivas. Em geral, os algoritmos recursivos realizam chamadas para si próprio e passam por parâmetro uma nova entrada, que geralmente é maior que a entrada anterior. Ou seja, a cada chamada recursiva o tamanho da entrada aumenta, e essa é a dinâmica que levará ao término da recursão. Escolha uma opção: Verdadeiro Falso O fluxo de controle de um algoritmo recursivo requer três condições: 1) Um teste para parar ou continuar a recursão (chamada de condição de saída ) 2) Uma ativação recursiva (para continuar a recursão) 3) Um caso final para terminar a recursão. Questão 6 Correto Atingiu 1,00 de 1,00 Questão 7 Correto Atingiu 1,00 de 1,00 Questão 8 Correto Atingiu 1,00 de 1,00 Questão 9 Correto Atingiu 1,00 de 1,00 Assim como acontece com algoritmos iterativos, algoritmos recursivos podem executar indefinidamente quando não são programados apropriadamente. Quando isso acontece, dizemos que o algoritmo entrou em uma recursão infinita. Escolha uma opção: Verdadeiro Falso Um problema que pode ser resolvido por recursão também pode ser resolvido por iteração. Escolha uma opção: Verdadeiro Falso Métodos recursivos realizam chamadas para si próprio, e cada chamada gera um custo extra de armazenamento dos parâmetros. Dizemos que há overflow em um algoritmo recursivo quando a quantidade de chamadas recursivas extrapola o consumo de memória limite para armazenamento dos parâmetros das chamadas. Escolha uma opção: Verdadeiro Falso Torre de hanói, busca binária e ordenação são exemplos de algoritmos que possuem soluções recursivas. Escolha uma opção: Verdadeiro Falso Questão 10 Correto Atingiu 1,00 de 1,00 Um programa pode fazer chamadas recursivas de duas maneiras: direta ou indireta. Escolha uma opção: Verdadeiro Falso Atividade anterior ◄ 📍 [Checkout de Presença] Módulo 3 – Algoritmos recursivos Seguir para... Próxima atividade ▶ [Videoaula] Apresentação do Módulo 4 ► Manter contato Suporte Técnico ao Usuário https://suporteagetic.ufms.br (67) 3345-7613 suporte.agead@ufms.br https://ava.ufms.br/mod/quiz/view.php?id=738912&forceview=1 https://ava.ufms.br/mod/url/view.php?id=738915&forceview=1 https://suporteagetic.ufms.br/ tel:(67) 3345-7613 mailto:suporte.agead@ufms.br https://api.whatsapp.com/send?phone=556733457613