Questão nº 45
Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 45)
Analise o código PHP exibido a seguir.
<?php declare(strict_types=1);
function fun(int $a, int $b) : int {
if ($b == 0) {return $a;}
else {return fun($b, $a % $b);}
}
----------;
?>
Nesse contexto, considere o quadro a seguir, que mostra os possíveis efeitos na execução do código acima quando o trecho pontilhado é substituído por cada um dos trechos substitutos.

Os efeitos estão corretamente descritos nos casos:
- Asomente I;
- Bsomente I e II; (alternativa correta)
- Csomente I e III;
- Dsomente II e III;
- EI, II e III.
Resposta comentada
Gabarito Alternativa B
Conceito-chave: A função fun é uma implementação clássica do MDC (Máximo Divisor Comum) pelo algoritmo de Euclides. Ela chama a si mesma (recursão) até que o segundo argumento seja zero, momento em que retorna o primeiro. O trecho pontilhado apenas define o que acontece após a declaração da função, não alterando a lógica interna dela.
- (A) Incorreta: O efeito I (exibir o resultado de
fun(12, 8)como 4) é verdadeiro, mas não é o único efeito correto, pois o quadro mostra mais de um caso válido. - (B) Correta: Os efeitos I e II estão corretos. O I mostra
fun(12, 8)retornando 4 (MDC de 12 e 8). O II mostrafun(10, 5)retornando 5 (MDC de 10 e 5). Ambos são resultados diretos da função, independentemente do trecho substituto, que apenas poderia imprimir ou armazenar esses valores. O efeito III é falso porquefun(7, 3)retorna 1 (MDC de 7 e 3), não 2, pois 7 e 3 são primos entre si. - (C) Incorreta: O efeito III está errado (como explicado acima), então a combinação I e III não pode ser correta.
- (D) Incorreta: O efeito II está correto, mas o III não, então a combinação II e III é inválida.
- (E) Incorreta: O efeito III é falso, pois
fun(7, 3)retorna 1, não 2. A armadilha da banca aqui é o aluno calcular7 % 3 = 1e depoisfun(3, 1)→3 % 1 = 0→ retorna 1, mas muitos erram ao pensar que o MDC de 7 e 3 é 2 por tentarem dividir mentalmente sem seguir a recursão completa.
Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.