Muitas linguagens de programação possuem funções para inverter um número já pronto na linguagem. O nosso desafio é encontrar uma solução utilizando os comandos de entrada, saída e atribuição para que faça a inversão de um número inteiro de 4 dígitos.
O valor lido deve estar armazenado em uma única variável e, ao final, deverá ser impressa como saída somente uma variável com o valor invertido, e não 4 variáveis separadas. A inversão deverá ser desenvolvida utilizando comandos aritméticos, resto da divisão e divisão inteira.
Exemplo:
Valor normal : 4567
Valor invertido: 7654
a) Declare as variáveis necessárias e seus tipos para resolver o problema apresentado. Todos os valores da tabela devem ser atribuídos para as variáveis para serem utilizadas nos cálculos.
b) Identifique e descreva quais são os comandos de entrada necessários para solucionar o problema apresentado (representar em pseudolinguagem e fluxograma).
c) Analise o problema e descreva a sequência correta dos comandos de atribuições e cálculos necessários para a solução do problema apresentado (para inverter o número). (Representar em pseudolinguagem e fluxograma.)
d) Identifique e descreva quais são os comandos de saída necessários para solucionar o problema apresentado (representar em pseudolinguagem e fluxograma).
Respostas
Resposta:
a) Declare as variáveis necessárias e seus tipos para resolver o problema apresentado. Todos os valores da tabela devem ser atribuídos para as variáveis para serem utilizadas nos cálculos.
Var numero, valor_auxiliar, unidade, centena, dezena, milhar, numero_invertido : inteiro
b) Identifique e descreva quais são os comandos de entrada necessários para solucionar o problema apresentado (representar em pseudolinguagem e fluxograma).
Escreva("Digite um valor inteiro com 4 dígitos:" )
Leia (numero)
c) Analise o problema e descreva a sequência correta dos comandos de atribuições e cálculos necessários para a solução do problema apresentado (para inverter o número). (Representar em pseudolinguagem e fluxograma.)
valor_auxiliar <- numero
milhar <- valor_auxiliar div 1000
valor_auxiliar <- valor_auxiliar mod 1000
centena <- valor_auxiliar div 100
valor_auxiliar <- valor_auxiliar mod 100
dezena <- valor_auxiliar div 10
valor_auxiliar <- valor_auxiliar mod 10
unidade <- valor_auxiliar
numero_invertido <- (unidade * 1000) + ( dezena * 100) + (centena * 10) + (milhar * 1)
d)Identifique e descreva quais são os comandos de saída necessários para solucionar o problema apresentado (representar em pseudolinguagem e fluxograma).
Escreva(" O valor invertido é = " , numero_invertido)
Fimalgoritmo
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Algoritmo "inverter"
Var numero, valor_auxiliar, unidade, centena, dezena, milhar, numero_invertido : inteiro
Inicio
Escreva("Digite um valor inteiro com 4 dígitos:" )
Leia (numero)
valor_auxiliar <- numero
milhar <- valor_auxiliar div 1000
valor_auxiliar <- valor_auxiliar mod 1000
centena <- valor_auxiliar div 100
valor_auxiliar <- valor_auxiliar mod 100
dezena <- valor_auxiliar div 10
valor_auxiliar <- valor_auxiliar mod 10
unidade <- valor_auxiliar
numero_invertido <- (unidade * 1000) + ( dezena * 100) + (centena * 10) + (milhar * 1)
Escreva(" O valor invertido é = " , numero_invertido)
Fimalgoritmo
Explicação:
Solução completa em pseudolinguagem:
Algoritmo "inverter"
Var
numero, valor_auxiliar, unidade, centena, dezena, milhar, numero_invertido :
inteiro
Inicio
Escreva("Digite um valor inteiro com 4 dígitos:" )
Leia (numero)
valor_auxiliar <- numero
milhar <- valor_auxiliar div 1000
valor_auxiliar <- valor_auxiliar mod 1000
centena <- valor_auxiliar div 100
valor_auxiliar <- valor_auxiliar mod 100
dezena <- valor_auxiliar div 10
valor_auxiliar <- valor_auxiliar mod 10
unidade <- valor_auxiliar
numero_invertido <- (unidade * 1000) + ( dezena * 100) + (centena * 10) +
(milhar * 1)
Escreva(" O valor invertido é = " , numero_invertido)
Fimalgoritmo