Dado o ALGORITMO abaixo, utilizando a notação em PSEUDOCÓDIGO analise:
ALGORITMO
DECLARE decimal, binario NUMÉRICO
ESCREVA "CONVERSÃO DE DECIMAL PARA BINÁRIO"
decimal <- 10
ENQUANTO decimal > 0 FAÇA
INÍCIO
SE (decimal mod 2) = 0
ENTÃO binario <- binario + "0"
SENÃO binario <- binario + "1"
decimal <- decimal div 2
FIM
ESCREVA "VALOR BINARIO: ", binario
FIM_ALGORITMO
De acordo com o algoritmo é possível afirmar que:
I) O DIV retorna o quociente da divisão
II) O MOD retorna o resto da divisão
III) O ENQUANTO irá repetir até encontrar um valor binário
IV) A variável binario irá ser impressa na tela enquanto decimal > 0
V) O valor final da variável binario impressa na tela será '0101'
Marque somente a alternativa correta:
Soluções para a tarefa
Respondido por
2
Esse algoritmo está errado. Ele não converte de decimal para binário
O problema está aqui
DECLARE decimal, binario NUMÉRICO
Como a variável "binário" é numérica a operação
binario <- binario + "0"
vai dar inválida pois ela está somando ao valor da variável NUMËRICA um valor caracter
Mesmo que o operador + fizesse a conversão automática e transformasse a varia'vel binario de numérica para string, ainda estaria errado pois a concatenação deveria ser "0" + binario
Além disso, o algoritmo tem um SE desnecessário aqui
SE (decimal mod 2) = 0
a operação (decimal mod 2) ou dá 0 ou dá 1 Portanto, bastaria concatenar, e não somar, independente do resultado do SE
Eu faria assim
ALGORITMO
DECLARE decimal NUMÉRICO
DECLARE binario CARACTER
ESCREVA "CONVERSÃO DE DECIMAL PARA BINÁRIO"
decimal <- 10
ENQUANTO decimal > 0 FAÇA
INÍCIO
binario <- string( decimal mod 2) + binario
decimal <- decimal div 2
FIM
ESCREVA "VALOR BINARIO: ", binario
FIM_ALGORITMO
Observe que estou assumindo que a função string() converte um valor numérico em caracter e que o operador + quando usado com operandos string executa a concatenação.
Eu faria assim em repl.it python assim
wdecimal = 1
while (wdecimal !=0):
wdecimal = int(input("Digite um número decimal ou 0 para terminar"))
binario = ""
decimal = wdecimal
while (decimal >0 ):
binario = str(decimal % 2) + binario
decimal = int( decimal / 2 )
if (wdecimal):
print( "O número binário é",binario)
print( "o programa terminou porque o usuário digitou 0")
O problema está aqui
DECLARE decimal, binario NUMÉRICO
Como a variável "binário" é numérica a operação
binario <- binario + "0"
vai dar inválida pois ela está somando ao valor da variável NUMËRICA um valor caracter
Mesmo que o operador + fizesse a conversão automática e transformasse a varia'vel binario de numérica para string, ainda estaria errado pois a concatenação deveria ser "0" + binario
Além disso, o algoritmo tem um SE desnecessário aqui
SE (decimal mod 2) = 0
a operação (decimal mod 2) ou dá 0 ou dá 1 Portanto, bastaria concatenar, e não somar, independente do resultado do SE
Eu faria assim
ALGORITMO
DECLARE decimal NUMÉRICO
DECLARE binario CARACTER
ESCREVA "CONVERSÃO DE DECIMAL PARA BINÁRIO"
decimal <- 10
ENQUANTO decimal > 0 FAÇA
INÍCIO
binario <- string( decimal mod 2) + binario
decimal <- decimal div 2
FIM
ESCREVA "VALOR BINARIO: ", binario
FIM_ALGORITMO
Observe que estou assumindo que a função string() converte um valor numérico em caracter e que o operador + quando usado com operandos string executa a concatenação.
Eu faria assim em repl.it python assim
wdecimal = 1
while (wdecimal !=0):
wdecimal = int(input("Digite um número decimal ou 0 para terminar"))
binario = ""
decimal = wdecimal
while (decimal >0 ):
binario = str(decimal % 2) + binario
decimal = int( decimal / 2 )
if (wdecimal):
print( "O número binário é",binario)
print( "o programa terminou porque o usuário digitou 0")
bokomoko:
Eis o fonte aqui -> https://repl.it/No6h/13
Perguntas interessantes