Pular para o conteúdo

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

  1. O que caracteriza uma função recursiva?

    1. Ela só pode ser executada uma única vez.
    2. Ela chama a si mesma com um problema menor, até um caso base.
    3. Ela nunca recebe parâmetros.
    4. Ela repete o mesmo cálculo para sempre, sem nunca terminar e sem caso base.
  2. Observe o programa.

    def fatorial(n):
        if n == 0:
            return 1
        return n * fatorial(n - 1)

    print(fatorial(4))

    Qual valor será mostrado?

    1. 24
    2. 10
    3. 4
    4. 16
  3. 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?

    1. return n * fatorial(n - 1)
    2. if n == 0: return 1
    3. print(fatorial(4))
    4. def fatorial(n):
  4. O que aconteceria se a linha if n == 0: return 1 fosse apagada da função fatorial?

    1. Chamaria a si mesma sem parar, até dar erro.
    2. A função continuaria funcionando normalmente.
    3. A função devolveria sempre 0.
    4. A função passaria a calcular a soma dos números de 1 até n.
  5. 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.)

    1. 3
    2. 8
    3. 10
    4. 0
  6. 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.)

    1. 3
    2. 2
    3. -1
    4. 1
  7. 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?

    1. 9
    2. 6
    3. 8
    4. 27
  8. 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. [1, 2, 4, 5]
    2. [2, 5, 4, 1]
    3. [5, 4, 2, 1]
    4. [2, 4, 1, 5]
  9. Por que a busca binária só funciona em listas ordenadas?

    1. Porque ela verifica os elementos um por um, do início ao fim.
    2. Porque compara o alvo com o meio e descarta uma das metades.
    3. Porque ela só funciona com listas de números pares.
    4. Porque ela ordena a lista automaticamente antes de começar a procurar o alvo.
  10. 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

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