FC ConcursosFC Concursos

Questão FC374672

A Secretaria de Saúde da Prefeitura Municipal de Cacoal está desenvolvendo um sistema para o controle epidemiológico que necessita calcular o risco de contaminação em função de múl

Algoritmos e Lógica de Programação

Instituto Consulplan · 2024

A Secretaria de Saúde da Prefeitura Municipal de Cacoal está desenvolvendo um sistema para o controle epidemiológico que necessita calcular o risco de contaminação em função de múltiplos fatores. Uma parte desse sistema precisa determinar o número de diferentes formas em que grupos específicos de indivíduos podem ser selecionados para uma campanha de testagem, em que a ordem de escolha dos indivíduos importa. O trecho de código a seguir, implementado em Portugol Studio, é utilizado para calcular o arranjo de grupos de pessoas selecionadas de um total, considerando que a ordem de escolha é relevante. (Considere que os valores a serem lidos são: total_pessoas = 7 e pessoas_selecionadas = 4.)

 

programa
{
        funcao inicio(){
            inteiro total_pessoas, pessoas_selecionadas, resultado


        escreva("Digite o número total de pessoas (total_pessoas): ")
        leia(total_pessoas)


         escreva("Digite o número de pessoas a serem selecionadas (pessoas_selecionadas): ")
         leia(pessoas_selecionadas)


         resultado = arranjo(total_pessoas, pessoas_selecionadas)
         escreva("O número de arranjos de ", total_pessoas, " pessoas escolhendo ", pessoas_selecionadas, " é: ", resultado)


}


funcao inteiro arranjo(inteiro total_pessoas, inteiro pessoas_selecionadas){


       se (pessoas_selecionadas == 0){
          retorne 1
      }
      senao{
          retorne total_pessoas * arranjo(total_pessoas - 1, pessoas_selecionadas - 1)
           }
   }
}

 

Com base no algoritmo, analise as afirmativas a seguir.

 

I. O algoritmo recursivo calcula corretamente o número de arranjos possíveis de total_pessoas escolhendo pessoas_selecionadas de cada vez, considerando a ordem de escolha. 

 

II. O caso base do algoritmo ocorre quando pessoas_selecionadas é igual a total_pessoas, retornando 1.

 

III. O algoritmo faz chamadas recursivas até alcançar o caso base, que é quando pessoas_selecionadas é igual a 0. 

 

IV. Para os valores total_pessoas = 7 e pessoas_selecionadas = 4, o resultado calculado pelo algoritmo é 210. 

 

Está INCORRETO o que se afirma apenas em

  1. I e II.
  2. I e III.
  3. II e IV.
  4. III e IV.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A afirmativa indicada no gabarito (II e IV) está incorreta por dois motivos distintos.

Casos base: o algoritmo trata pessoas_selecionadas == 0 como caso base e retorna 1. Não há condição que retorne 1 quando pessoas_selecionadas == total_pessoas. Portanto a descrição de que o caso base ocorre nessa igualdade é equivocada.

Cálculo do arranjo: a recursão implementa o produto decrescente \(total\_pessoas \times (total\_pessoas-1) \times \dots\) por \(pessoas\_selecionadas\) fatores, ou seja o arranjo \(A(n,k)=\frac{n!}{(n-k)!}\). Para \(n=7\) e \(k=4\) temos \(A(7,4)=\frac{7!}{3!}=7\cdot6\cdot5\cdot4=840\), não 210. Logo a afirmação sobre o resultado numérico também é falsa.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo