Alternativa C
A questão solicita um subprograma recursivo para calcular a soma dos números inteiros de 1 até N. A recursividade ocorre quando uma função chama a si mesma para resolver um problema menor até atingir uma condição de parada (caso base).
Análise das Alternativas
Para identificar a resposta correta, devemos verificar dois critérios principais:
- O código deve conter uma chamada recursiva (a função chamando a si mesma dentro do seu corpo).
- A lógica matemática deve realizar a soma, não outra operação.
Detalhamento Lógico
- Alternativa A: Realiza uma subtração (
retorne(X - Y(X-1))). Embora seja recursiva, a operação matemática está errada para calcular um somatório. - Alternativa B e D: Utilizam estruturas de repetição (laços
para), tornando-as soluções iterativas. O enunciado exige explicitamente um método recursivo. Além disso, a lógica destas duas é idêntica. - Alternativa C: Implementa corretamente a soma recursiva.
Funcionamento do Código Correto (Alternativa C)
A lógica funciona dividindo o problema em partes menores:
Soma(N) = N + Soma(N-1)
- Caso Base (
se X = 1 entao retorne (1)): Define o ponto de parada. Quando chegamos ao número 1, retornamos 1. - Passo Recursivo (
senao retorne(X + Y(X-1))): Para qualquer outro número, adiciona-se o valor atual (X) ao resultado da função chamada com o valor anterior (X-1).
Exemplo Prático para N = 3:
Se executarmos a função Y(3):
Y(3) chama 3 + Y(2)Y(2) chama 2 + Y(1)Y(1) retorna 1 (Caso base atingido)- O cálculo final é: $3 + 2 + 1 = 6$.
Portanto, a única alternativa que atende aos requisitos de ser recursiva e realizar a soma correta é a C.