Matemática Múltipla Escolha

Na computação, existem várias formas numéricas, dentre as representações decimal, hexadecimal, etc e binária. Para realizar a conversão, por exemplo, de um valor formatado na base decimal para a base binária, basta realizar divisões sucessivas por 2 e coletar o último quociente e todos os restos das divisões em ordem inversa. Suponha a necessidade de criar uma função recursiva para a conversão de um número na base decimal para a representação binária (base 2). Para essa questão, suponha o trecho de código para seguir: Assinale a opção abaixo que contenha os trechos de código para preencher as lacunas:

Na computação, existem várias formas numéricas, dentre as representações decimal, hexadecimal, etc e binária. Para realizar a conversão, por exemplo, de um valor formatado na base decimal para a base binária, basta realizar divisões sucessivas por 2 e coletar o último quociente e todos os restos das divisões em ordem inversa.

Suponha a necessidade de criar uma função recursiva para a conversão de um número na base decimal para a representação binária (base 2). Para essa questão, suponha o trecho de código para seguir:

#include <stdio.h>

void Dec2Bin(int n)
{
    if (n < 2)
    {
        printf("%d", n);
    }
    else
    {
        Dec2Bin(n / 2);
        printf("%d", n % 2);
    }
}

int main()
{
    Dec2Bin(14);
    return 0;
}

Assinale a opção abaixo que contenha os trechos de código para preencher as lacunas:

  1. n<2 ; Dec2Bin(n / 2) ; printf("%d",n%2)
  2. Dec2Bin(n / 2) ; printf("%d",n%2)
  3. printf("%d",n%2) ; Dec2Bin(n / 2)
  4. n<2 ; printf("%d",n%2)
  5. printf("%d",n/2) ; Dec2Bin(n % 2)

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A - n<2 ; Dec2Bin(n / 2) ; printf("%d",n%2)

Introdução

A questão aborda a implementação de uma função recursiva em linguagem C para converter um número da base decimal para a base binária. O algoritmo utilizado baseia-se no método de divisões sucessivas pelo valor da base (que é 2 no caso binário).

Desenvolvimento

Para converter um número decimal para binário manualmente, realizamos as seguintes etapas:

  1. Dividimos o número por 2.
  2. Anotamos o resto dessa divisão (que será 0 ou 1).
  3. Pegamos o quociente e repetimos o processo até que o quociente seja 0.
  4. Os dígitos binários são lidos na ordem inversa aos restos obtidos (do último para o primeiro).

No contexto de programação recursiva, isso significa que devemos chamar a função novamente com o quociente (n / 2) antes de imprimir o resto atual (n % 2). Dessa forma, a impressão só ocorre quando a recursão começa a retornar, garantindo a ordem correta.

Análise

Vamos analisar os componentes da alternativa correta:

  • Condição de Parada (if):
    A recursão deve parar quando o número for menor que 2 (ou seja, 0 ou 1). Nesse ponto, não há mais como dividir.
  • Código: if (n < 2)
  • Ação: Imprimir n.
  • Chamada Recursiva (else):
    Precisamos processar os dígitos mais significativos primeiro. Para isso, chamamos a função passando o quociente da divisão inteira por 2.
  • Código: Dec2Bin(n / 2);
  • Impressão do Resto:
    Após a chamada recursiva retornar (imprimindo os bits anteriores), imprimimos o bit correspondente ao resto da divisão atual.
  • Código: printf("%d", n % 2);

Rastreamento com o exemplo Dec2Bin(14):

  1. Dec2Bin(14) -> $14 \ge 2$, chama Dec2Bin(7).
  2. Dec2Bin(7) -> $7 \ge 2$, chama Dec2Bin(3).
  3. Dec2Bin(3) -> $3 \ge 2$, chama Dec2Bin(1).
  4. Dec2Bin(1) -> $1 < 2$, imprime 1. Retorna.
  5. Volta para passo 3: imprime $3 \% 2 =$ 1.
  6. Volta para passo 2: imprime $7 \% 2 =$ 1.
  7. Volta para passo 1: imprime $14 \% 2 =$ 0.

Resultado final impresso: 1110, que é o binário de 14.

Conclusão

A estrutura da alternativa A segue exatamente essa lógica: verifica se o número é menor que 2 para parar, chama recursivamente com o quociente e, por fim, imprime o resto, garantindo a sequência correta dos bits.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.