Considere o seguinte trecho de algoritmo:classe Calculadora ...
Considere o seguinte trecho de algoritmo:
classe Calculadora {
método inteiro fatorial(valor inteiro n) {
se (n <= 1) {
retorne 1;
} senão {
retorne n * fatorial(n - 1);
}
}
}
início {
inteiro resultado;
Calculadora calc = novo Calculadora();
resultado = calc.fatorial(5);
escreva("O fatorial de 5 é: ", resultado);
}
Sobre o código anterior, analise as afirmativas a seguir.
I. O método fatorial é um exemplo de recursividade, pois chama a si mesmo dentro de sua definição. II. A passagem de parâmetro no método fatorial é feita por valor, uma vez que a variável n é um tipo primitivo. III. A criação do objeto calc da classe Calculadora exemplifica o conceito de instância em programação orientada a objetos. IV. O valor impresso será "O fatorial de 5 é: 120".
Está correto o que se afirma em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - I, II, III e IV.
1. Tema central da questão
Esta questão aborda conceitos básicos de programação, incluindo recursividade, passagem de parâmetros, programação orientada a objetos e execução de um algoritmo. Entender esses temas é fundamental para interpretar algoritmos e prever seus resultados, competências muito cobradas em concursos públicos (vide Cormen et al., "Algoritmos").
2. Resumo teórico
- Recursividade é quando uma função chama a si mesma.
- Passagem de parâmetros por valor significa que a função trabalha com uma cópia do valor original.
- Instância refere-se ao momento em que um objeto é criado a partir de uma classe.
- O fatorial de 5 (5!) é 120, pois 5 × 4 × 3 × 2 × 1 = 120.
3. Justificativa da alternativa correta
I — Correto. O método fatorial chama a si mesmo, sendo um exemplo clássico de recursividade.
II — Correto. O parâmetro n é do tipo inteiro (primitivo), logo é passado por valor.
III — Correto. Ao declarar Calculadora calc = novo Calculadora();, estamos criando uma instância da classe.
IV — Correto. O resultado da função para 5 é 120, então a saída será exatamente "O fatorial de 5 é: 120".
4. Análise das alternativas incorretas
B e C descartam afirmações corretas (II e IV, I e III), logo insuficientes.
D exclui o item IV, que está correto, pois o cálculo do fatorial está certo e corresponde à saída prevista.
5. Estratégias de interpretação
Fique atento a palavras-chave como "recursividade" e "instância". Sempre analise se o algoritmo realmente está realizando o que a afirmativa diz (por exemplo, conferir o cálculo efetuado pelo código). Cuidado com detalhes, como a forma de passagem de parâmetros, pois pegadinhas costumam explorar isso!
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Grok:
Vamos analisar cada afirmativa com base no trecho de código fornecido:
I. O método fatorial é um exemplo de recursividade, pois chama a si mesmo dentro de sua definição.
Correto. O método fatorial é recursivo, pois ele chama a si mesmo (fatorial(n - 1)) dentro de sua definição para calcular o fatorial de um número.
II. A passagem de parâmetro no método fatorial é feita por valor, uma vez que a variável n é um tipo primitivo.
Correto. A variável n é um tipo primitivo (inteiro), e, em linguagens que seguem o modelo de passagem por valor para tipos primitivos (como na maioria das linguagens orientadas a objetos, como Java ou pseudocódigo similar), o parâmetro n é passado por valor.
III. A criação do objeto calc da classe Calculadora exemplifica o conceito de instância em programação orientada a objetos.
Correto. A linha Calculadora calc = novo Calculadora() cria uma instância (objeto) da classe Calculadora, que é um conceito fundamental da programação orientada a objetos.
IV. O valor impresso será "O fatorial de 5 é: 120".
Correto. O cálculo do fatorial de 5 é: 5!=5×4×3×2×1=120. Portanto, a chamada calc.fatorial(5) retorna 120, e a saída será "O fatorial de 5 é: 120".
Análise das alternativas:
- A. I, II, III e IV. Todas as afirmativas estão corretas, como explicado acima.
- B. I e III, apenas. Errado, pois II e IV também estão corretas.
- C. II e IV, apenas. Errado, pois I e III também estão corretas.
- D. I, II e III, apenas. Errado, pois IV também está correta.
Resposta correta: A. I, II, III e IV.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo