Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Somando números recursivamente

Nesta atividade, estou aprendendo o conceito de recursão, que ocorre quando uma função chama a si mesma para resolver um problema.

O conceito central é:

Problema grande
↓
Quebrar em problemas menores
↓
Resolver cada parte
↓
Chegar à resposta final

Toda função recursiva precisa ter uma condição de parada, caso contrário ela entrará em um ciclo infinito.


Solução da atividade da Alura

def soma_recursiva(n):

    if n == 1:
        return 1

    return n + soma_recursiva(n - 1)


numero = int(input("Digite um número: "))

print(f"A soma de 1 a {numero} é: {soma_recursiva(numero)}")

Exemplo:

Entrada:

5

Execução:

5 + soma_recursiva(4)

4 + soma_recursiva(3)

3 + soma_recursiva(2)

2 + soma_recursiva(1)

1

Resultado:

5 + 4 + 3 + 2 + 1 = 15

Saída:

A soma de 1 a 5 é: 15

O que realmente está sendo ensinado?

Mais do que somar números, estamos aprendendo a resolver problemas que podem ser divididos em etapas menores.

A lógica é:

Valor atual
+
Resultado da etapa anterior

Aplicação na Plataforma AFA

A recursão pode ser utilizada quando precisamos acumular informações ao longo do tempo.

Por exemplo, imagine um estudante que recebe registros AFA durante todo o trimestre.

Semana 1 → +0,3

Semana 2 → +0,5

Semana 3 → -0,2

Semana 4 → +0,3

Semana 5 → +1,0

Poderíamos somar essas pontuações recursivamente.

def soma_registros(registros):

    if len(registros) == 1:
        return registros[0]

    return registros[0] + soma_registros(registros[1:])

Exemplo:

registros = [0.3, 0.5, -0.2, 0.3, 1.0]

print(soma_registros(registros))

Resultado:

1.9

Aplicação real na Nota AFA

Lembrando a regra institucional:

Todo estudante inicia o trimestre com nota 8,0.

Podemos utilizar a soma recursiva para calcular o saldo dos registros.

def soma_registros(registros):

    if len(registros) == 1:
        return registros[0]

    return registros[0] + soma_registros(registros[1:])

Depois:

nota_inicial = 8.0

saldo = soma_registros(
    [0.3, 0.5, -0.2, 0.3, 1.0]
)

nota_afa = min(nota_inicial + saldo, 10.0)

print(nota_afa)

Resultado:

9.9

Aplicação para uma Rede Educacional

Imagine agora que estamos implementando o AFA em uma rede com milhares de estudantes.

Cada aluno possui dezenas de registros.

A lógica conceitual seria:

Registro atual
+
Todos os registros anteriores

A recursão ajuda a compreender como os sistemas consolidam informações acumuladas ao longo do tempo.


Aplicação em Relatórios Pedagógicos

Outra possibilidade é consolidar ocorrências.

Exemplo:

ocorrencias = [
    "Participação",
    "Criatividade",
    "Curiosidade",
    "Proatividade"
]

A lógica recursiva poderia percorrer cada evidência até construir um relatório completo.

Ocorrência atual
+
Demais ocorrências
↓
Relatório final

O que realmente aprendi?

Na atividade da Alura:

5
↓
4
↓
3
↓
2
↓
1
↓
Soma final

Na Plataforma AFA:

Registro atual
↓
Registro anterior
↓
Registro anterior
↓
Registro anterior
↓
Saldo formativo
↓
Nota AFA

Percebi que o principal aprendizado desta atividade foi compreender que alguns problemas podem ser resolvidos dividindo-os em partes menores e repetindo a mesma lógica até chegar a uma condição de parada. No contexto da Plataforma AFA, a recursão ajuda a entender como registros individuais podem ser acumulados progressivamente para gerar indicadores, notas e relatórios pedagógicos consolidados.