Escreva um algoritmo que leia 8 bits (um a um) e diga quantos 1 s e 0 s compõem o byte lido.

Passo 1

Beleza, o exercício pede pra gente criar um algoritminho que leia 8 bits, um por um, e no final diga quantos são 1s e quantos são 0s. Isso é conteúdo de lógica de programação (laços de repetição e variáveis de contagem). Para resolver, a gente vai precisar de:
  • Variáveis contadoras (uma para 1s e outra para 0s).
  • Um laço que repita exatamente 8 vezes.
  • Uma forma de ler cada bit e testar se é 0 ou 1.

Passo 2

Antes de codar, vamos falar um pouco da teoria:
  • Um bit é a menor unidade de informação em computação, só pode ser 0 ou 1.
  • Um byte tem 8 bits.
  • Para contar quantos bits iguais aparecem, usamos variáveis contador que começam em zero e vão sendo incrementadas conforme cada leitura.
  • Um laço de repetição (for ou while) serve pra repetir a mesma ação várias vezes sem escrever o mesmo código 8 vezes.

Passo 3

Inicialização das variáveis:
  1. cont0 ← 0 // vai contar quantos zeros aparecem
  2. cont1 ← 0 // vai contar quantos uns aparecem
  3. i ← 1 // índice para controlar quantas leituras já fizemos
Explicando: começamos os contadores em zero porque ainda não lemos nenhum bit. A variável i vai de 1 a 8 no nosso laço.

Passo 4

Laço de repetição e verificação:
Enquanto i for menor ou igual a 8, a gente:
  1. Lê um valor que chamaremos de bit. Supondo que o usuário digite só 0 ou só 1 (sem erros).
  2. Testa:
    • Se bit = 1, faz cont1 ← cont1 + 1.
    • Senão (ou seja, bit = 0), faz cont0 ← cont0 + 1.
  3. Incrementa i ← i + 1 para avançar a próxima iteração.
Na prática, em pseudocódigo com LaTeX para a parte de soma:
para i de 1 até 8 faça
    leia(bit)
    se bit = 1 então
        cont1 ← cont1 + 1    // aqui usamos cont1 ← cont1 + 1
    senão
        cont0 ← cont0 + 1    // aqui usamos cont0 ← cont0 + 1
    fim se
fim para

Passo 5

Depois que o laço terminar (ou seja, após 8 leituras), cont1 terá o total de bits iguais a 1 e cont0 o total de bits iguais a 0. Só falta mostrar pro usuário:
escreva("Total de 1s: ", cont1)
escreva("Total de 0s: ", cont0)

Resposta

Algoritmo completo em pseudocódigo:
Algoritmo ContaBits
    // Passo 3: inicialização
    cont0 ← 0
    cont1 ← 0

    // Passo 4: laço de 8 leituras
    para i de 1 até 8 faça
        leia(bit)
        se bit = 1 então
            cont1 ← cont1 + 1
        senão
            cont0 ← cont0 + 1
        fim se
    fim para

    // Passo 5: exibe resultados
    escreva("Total de 1s: ", cont1)
    escreva("Total de 0s: ", cont0)
FimAlgoritmo

Exercícios relacionados