Divisão inteira e resto
No módulo "Expressões aritméticas" falamos sobre as características da operação de divisão na linguagem C++.
Lembre-se que para dados inteiros (tipo int) duas operações de divisão podem ser usadas.
/ - divisão inteira, quando descartamos a parte fracionária como resultado da operação de divisão.
% - cálculo do resto de uma divisão.
É preciso lembrar!
Em C e C++, o resultado da divisão de um inteiro por um inteiro – é sempre um inteiro, o resto é descartado na divisão.
Exemplo
int a,b;
a = 10;
b = 3;
int c = a/b; // Resposta: c = 3
int d = a%b; // Resposta: d = 1
Estas operações são muito importantes na programação. Eles precisam ser entendidos e usados corretamente.
Pratique, codifique mais e mais e você terá sucesso!
|
Calcular dígitos de um número
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.
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 decompor um número em seus dígitos constituintes.
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.
Vamos mostrar como obter cada dígito de um número em uma variável separada. Considere o procedimento de divisão uma coluna do número 365 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.).
Depois de analisar a figura, você pode ver que:
e = n % 10; // operação n % 10 - calcula o último dígito do número n (ou seja, o dígito das unidades)
// 365% 10 = 5
d = n/10% 10; // operação n / 10 - reduz o número em 10 vezes,
// ou seja, descarta o último dígito do número (365 / 10 = 36),
// agora podemos calcular o dígito das dezenas aplicando a operação familiar ao resultado
// - calcula o resto após a divisão pelo número 10, 36% 10 = 6
s = n/100; // para obter o algarismo das centenas, basta descartar dois algarismos à direita do número,
// ou seja, divide por 10 duas vezes (n / 10 /10 ou o mesmo que n / 100) 365 / 100 = 3
Tendo recebido todos os dígitos do número, podemos fazer outro número com eles multiplicando o dígito desejado pelo dígito correspondente: & nbsp; por exemplo, a linha abaixo obterá um novo número do número original n , com centenas e unidades reorganizadas:
1) o número de unidades (armazenado na variável e ) multiplicado por 100 ;
2) o dígito das dezenas (armazenado na variável d ) multiplique por 10 ; < br />
3) podemos simplesmente multiplicar o dígito das centenas por 1, ou simplesmente pegar o valor armazenado na variável s ;
Então os valores dos pontos 1, 2 e 3 devem ser somados e obtemos um novo número:
n1 = e * 100 + d * 10 + s;
Todo o programa ficará assim:
#includeiostream>
usando namespace std;
principal()
{
int n, e, d, s;
cin>> n;
e = n % 10;
d = n/10% 10;
s = n/100;
cout << e<< " " << d<< " " << s<< " " << (e * 100 + d * 10 + s);
}
|