Das três soluções acima, qual delas melhor adere às boas práticas e princípios de programação?

Questão

Das três soluções acima, qual delas melhor adere às boas práticas e princípios de programação?

Imagem 1

Solução A:

função inverter_palavra(string palavra) invertido = "" para letra em palavra: invertido = letra + invertido retornar invertido

função verificar_todos_palíndromos(array arr) se arr[0] == inverter_palavra(arr[0]) se arr[1] == inverter_palavra(arr[1]) se arr[2] == inverter_palavra(arr[2]) retornar verdadeiro retornar falso

Imagem 2

Solução B:

função inverter_palavra(string palavra) invertido = "" para letra em palavra: invertido = letra + invertido retornar invertido

função é_palíndromo(string palavra) retornar palavra == inverter_palavra(palavra)

função verificar_todos_palíndromos(array arr) para palavra em arr: se é_palíndromo(palavra) == falso retornar falso retornar verdadeiro

Imagem 3

Solução C:

função inverter_palavra(string palavra) invertido = "" para letra em palavra: invertido = letra + invertido retornar invertido

função verificar_todos_palíndromos(array arr) invertido1 = inverter_palavra(palavra1) invertido2 = inverter_palavra(palavra2) invertido3 = inverter_palavra(palavra3)

se arr[0] não for igual a invertido1:
    retornar falso

se arr[1] não for igual a invertido2:
    retornar falso

se arr[2] não for igual a invertido3:
    retornar falso
retornar verdadeiro

Resposta

97%

Solução B

Explicação

Vamos comparar as três soluções sob boas práticas (legibilidade, reuso, manutenção, generalização e correção).

Solução A

  • Verifica apenas três posições fixas do array (arr[0], arr[1], arr[2]).
  • Usa if aninhado ("piramidado"), o que piora legibilidade e manutenção.
  • Se o array tiver tamanho diferente de 3, a lógica não escala (ou pode até falhar).

Solução C

  • Também está presa a três elementos.
  • Além disso, há um problema de correção/clareza: calcula invertido1 = inverter_palavra(palavra1) etc., mas palavra1/palavra2/palavra3 não são definidos na função; o correto seria usar os elementos do array (ex.: arr[0], arr[1], arr[2]).
  • Repete código desnecessariamente (três inversões e três blocos de comparação quase iguais).

Solução B

  • Extrai a regra em uma função é_palíndromo(palavra), seguindo responsabilidade única e melhorando o reuso.
  • Usa um laço para percorrer o array, funcionando para qualquer tamanho de entrada.
  • Aplica early return (retorna falso assim que encontra uma palavra que não é palíndromo), deixando o fluxo mais simples e eficiente.
  • É a mais legível e fácil de manter/estender.

Portanto, a que melhor adere a boas práticas e princípios de programação é a Solução B.

Alternativa correta: (B).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.