Desenvolva um algoritmo que leia um número inteiro positivo (incluindo o zero) expresso na base 10 (sistema decimal) e apresente o seu valor correspondente na base 2 (sistema binário). Este processo deve ser repetido até que o número lido seja igual a-1.
Passo 1
O enunciado pede um algoritmo que leia um número inteiro positivo (incluindo zero) em base decimal e imprima sua representação em base binária, repetindo o processo até o usuário digitar -1 como sentinela de parada. O conteúdo envolve controle de fluxo (laços e condicionais) e conversão de base usando divisões sucessivas por 2.
Passo 2
Inicie um laço infinito para continuar lendo valores até encontrar o sentinela -1. A cada iteração, leia o valor inteiro n do usuário.
Verifique se n é igual a -1. Se for, interrompa o laço e finalize o algoritmo.
Verifique se n é igual a -1. Se for, interrompa o laço e finalize o algoritmo.
Passo 3
Se n for diferente de -1, trate casos especiais: se n for igual a 0, sua representação binária também é ‘0’. Caso contrário, converta n para binário aplicando divisões sucessivas por 2, armazenando os restos.
Passo 4
Para converter n > 0 em binário, crie uma variável ‘binario’ vazia. Enquanto n > 0, calcule resto = n mod 2, concatene o resto à esquerda de ‘binario’ e atualize n = n div 2. Ao fim do laço, ‘binario’ conterá a representação desejada. Exiba ‘binario’ e retorne ao início do laço principal.
Resposta
Algoritmo DecimalParaBinario:
Enquanto verdadeiro faça
Leia n
Se n = -1 então
Pare // sentinela encontrada, encerra o algoritmo
Senão
Se n = 0 então
Escreva 0 // 0 em binário é 0
Senão
binario ← “” // string vazia
Enquanto n > 0 faça
resto ← n mod 2
binario ← convertaParaString(resto) + binario
n ← n div 2
FimEnquanto
Escreva binario
FimSe
FimSe
FimEnquanto
Enquanto verdadeiro faça
Leia n
Se n = -1 então
Pare // sentinela encontrada, encerra o algoritmo
Senão
Se n = 0 então
Escreva 0 // 0 em binário é 0
Senão
binario ← “” // string vazia
Enquanto n > 0 faça
resto ← n mod 2
binario ← convertaParaString(resto) + binario
n ← n div 2
FimEnquanto
Escreva binario
FimSe
FimSe
FimEnquanto