Binário para decimal
Oi Alessandra,
Como você deve saber, um algoritmo nada mais é que uma sequencia de passos (em Portugol) previamente definidos para que um programa atinja seu objetivo.
Também ja deve ter visto que a transfomação binário-decimal é simpes e posicional, conforme o exemplo abaixo: (o E quer dizer "Elevado a", ok?
Binario: 10101 Decimal= 1x2E0 + 0x2E1 + 1x2E2 + 0x2E3 + 1x2E4; logo
1+0+4+0+16=21; assim 10101 binario é igual a 21 decimal
Imagine agora a sequencia:
:inicio
-> ler um numero binario;
-> consistir o valor de entrada (verificar se o numero só contem zeros e uns, pois caso contrário, não será binário;
--> sim, é binario (todos os digitos são zeros e uns) -> continua;
--> não (um ou mais dígitso não é zero ou um) -> limpe digitação e volte para :inicio;
* calcular o decimal do binario fornecido
-> criar e zerar um acumulador (SOMA)
-> Verificar o comprimento do binário (numero de caracteres)
--> Para todo o comprimento do binário (essa linha especifica um laço (for, while ou do), ok?)
---> acumular em SOMA seu valor anterior + (o caractere binário da vez multiplicado por (2 elevado à posição do caractere -1))
* (observe conforme mostrado anteriormente, que o "elevado a" começa em 0, ok?; então caractere da posição 1 vezes (2 elevado a 0); caractere da posição 2 vezes ( 2 elevado a 1) e assim sucessivamente)
-> mostrar o valor de SOMA (que é o decimal do binário fornecido)
-> fim
Bons estudos
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar