Module: Divisão inteira e resto


Problem

14 /16


A pergunta mais difícil para iniciantes, ou os dígitos de um número

Theory Click to read/hide

A necessidade de aplicar a operação de cálculo do resto da divisão é visível quando se trabalha com os dígitos de um número. 

Vamos analisar a seguinte tarefa:
É fornecido um número de três dígitos. Exiba todos os dígitos desse número e obtenha um novo número formado pela permuta de unidades e centenas

A questão mais difícil que surge para iniciantes é como pegar e obter os dígitos de um número.
Na verdade, tudo é resolvido de forma bastante simples, se você se lembrar da matemática. E a matemática nos diz que qualquer número pode ser decomposto em uma soma de termos de dígitos.
Por exemplo: 365=3*100+6*10+5*1 . Vemos que cada dígito é um multiplicador do dígito correspondente do número. 
Mostraremos como obter cada dígito de um número em uma variável separada, usando o exemplo da divisão das colunas pelo número 10. (Pegamos o número 10, porque temos um sistema de numeração decimal e, portanto, temos termos de dígitos 1, 10, 100, etc.)

  

Analisando a figura, você pode ver que  e := n mod 10; // operação n mod 10 - calcula o último dígito do número n (ou seja, as unidades do número) 365 mod 10 = 5 d := n div 10 mod 10; // operação n div 10 - reduz o número em 10 vezes, ou seja, descarta o último dígito do número (365 div 10 = 36), // agora podemos calcular o número de dezenas aplicando a operação familiar ao resultado - calcule o resto após a divisão pelo número 10, 36 mod 10 = 6 s := n div 100; // para obter centenas, basta descartar dois dígitos à direita do número, ou seja, dividir por 10 duas vezes (n div 10 div10 ou o mesmo que n div 100< /strong>) 365 div 100 = 3
Tendo os dígitos do número salvos, podemos fazer qualquer número deles multiplicando o dígito desejado pelo dígito correspondente: 
por exemplo, a linha abaixo obterá um novo número a partir do número original n, com centenas e unidades reorganizadas:
1) o antigo número de uns (armazenado na variável e)  multiplicado por 100 
2) o antigo número de dezenas (armazenado na variável d)  multiplique por 10 
3) podemos simplesmente multiplicar o antigo número de centenas por 1, ou simplesmente pegar o valor armazenado na variável s
Depois é só somar os valores dos pontos 1, 2 e 3 e obter um novo número:

n1 := e * 100 + d * 10 + s;

Todo o programa ficará assim: var n, e, d, s: inteiro; começar ler(n); e := n mod 10; d := n div 10 mod 10; s := n div 100; writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s); fim.

Problem

Um número de três dígitos é digitado no teclado. 
Escreva um programa que imprima espaços separados em uma linha:
a soma dos dígitos do número e o novo número formado pela permuta de unidades e dezenas