Computação 8º ano Atividade
Recursão e algoritmos clássicos com listas
Atividade com 10 questões sobre recursão (caso base e chamada recursiva) e algoritmos clássicos com listas em Python: soma, busca linear, maior elemento, ordenação por bolha e busca binária.
- 10 questões
- cerca de 50 minutos
Computação, 8º ano: Recursão e algoritmos clássicos com listas
O que caracteriza uma função recursiva?
- Ela só pode ser executada uma única vez.
- Ela chama a si mesma com um problema menor, até um caso base.
- Ela nunca recebe parâmetros.
- Ela repete o mesmo cálculo para sempre, sem nunca terminar e sem caso base.
Observe o programa.
def fatorial(n):
if n == 0:
return 1
return n * fatorial(n - 1)
print(fatorial(4))Qual valor será mostrado?
- 24
- 10
- 4
- 16
Observe novamente a função.
def fatorial(n):
if n == 0:
return 1
return n * fatorial(n - 1)
print(fatorial(4))Qual é o caso base da função?
- return n * fatorial(n - 1)
- if n == 0: return 1
- print(fatorial(4))
- def fatorial(n):
O que aconteceria se a linha if n == 0: return 1 fosse apagada da função fatorial?
- Chamaria a si mesma sem parar, até dar erro.
- A função continuaria funcionando normalmente.
- A função devolveria sempre 0.
- A função passaria a calcular a soma dos números de 1 até n.
Observe a função recursiva.
def soma(lista):
if len(lista) == 0:
return 0
return lista[0] + soma(lista[1:])
print(soma([3, 5, 2]))Qual valor será mostrado? (lista[1:] é a lista sem o primeiro elemento.)
- 3
- 8
- 10
- 0
Observe o algoritmo de busca linear.
def busca(lista, alvo):
for i in range(len(lista)):
if lista[i] == alvo:
return i
return -1
print(busca([7, 3, 9, 3], 3))Qual valor será mostrado? (Lembre que as posições começam em 0.)
- 3
- 2
- -1
- 1
Observe o algoritmo.
notas = [6, 9, 4, 8]
maior = notas[0]
for n in notas:
if n > maior:
maior = n
print(maior)Qual valor será mostrado?
- 9
- 6
- 8
- 27
Na ordenação por bolha (bubble sort), comparamos pares vizinhos e trocamos os dois de lugar quando o da esquerda é maior. Como fica a lista [5, 2, 4, 1] depois da primeira passada completa?
- [1, 2, 4, 5]
- [2, 5, 4, 1]
- [5, 4, 2, 1]
- [2, 4, 1, 5]
Por que a busca binária só funciona em listas ordenadas?
- Porque ela verifica os elementos um por um, do início ao fim.
- Porque compara o alvo com o meio e descarta uma das metades.
- Porque ela só funciona com listas de números pares.
- Porque ela ordena a lista automaticamente antes de começar a procurar o alvo.
Escreva, em Python ou em pseudocódigo, uma função recursiva contagem(n) que mostre uma contagem regressiva de n até 1 e, no final, mostre "Já!". Indique qual é o caso base e qual é a chamada recursiva.
ProvaPiloto · provapiloto.com.br
Gabarito comentado
Já usou com a sua turma?
Conte com um toque. Isso ajuda outros professores a escolher.
Usei em sala Entre na sua conta para contar.
Para continuar o assunto
Python em problemas de Ciências e Matemática
Atividade 9 questões 50 min

Funções em Python: decompor e reutilizar
Atividade 9 questões 50 min

Programação em blocos: laços, decisões e variáveis
Atividade 9 questões 50 min

Desenvolvimento de software: requisitos, testes e qualidade
Prova 11 questões 60 min