La necesidad de aplicar la operación de calcular el resto de la división se hace visible cuando se trabaja con las cifras de un número.
Analicemos la siguiente tarea:
Se proporciona un número de tres dígitos. Muestre todos los dígitos de este número y obtenga un nuevo número formado por permutar unidades y centenas
La pregunta más difícil que surge para los principiantes es cómo tomar y obtener sus dígitos de un número.
De hecho, todo se resuelve de manera bastante simple, si recuerdas las matemáticas. Y las matemáticas nos dicen que cualquier número se puede descomponer en una suma de dígitos.
Por ejemplo: 365=3*100+6*10+5*1
. Vemos que cada dígito es un multiplicador del dígito correspondiente del número.
Mostraremos cómo convertir cada dígito de un número en una variable separada, usando el ejemplo de dividir las columnas por el número 10. (Tomamos el número 10 porque tenemos un sistema numérico decimal y, en consecuencia, tenemos términos de dígitos 1, 10, 100, etc)
Analizando la figura, se puede ver que
e := n mod 10; // operación n mod 10 - calcula el último dígito del número n (es decir, las unidades del número) 365 mod 10 = 5
d := n div 10 mod 10; // operación n div 10 - reduce el número 10 veces, es decir, descarta el último dígito del número (365 div 10 = 36),
// ahora podemos calcular el número de decenas aplicando la operación familiar al resultado: calcular el resto después de dividir por el número 10, 36 mod 10 = 6
s := n div 100; // para sacar centenas basta con descartar dos dígitos de la derecha del número, es decir, dividir por 10 dos veces (n div 10 div10 o lo mismo que n div 100< /fuerte>) 365 división 100 = 3
Teniendo los dígitos guardados del número, podemos hacer cualquier número con ellos multiplicando el dígito deseado por el dígito correspondiente:
por ejemplo, la siguiente línea obtendrá un nuevo número a partir del número original n, con centenas y unidades reorganizadas:
1) el antiguo número de unos (almacenado en la variable e) multiplicado por 100
2) el antiguo número de decenas (almacenado en la variable d) multiplicado por 10
3) podemos simplemente multiplicar el antiguo número de centenas por 1, o simplemente tomar el valor almacenado en la variable s
Luego simplemente agregue los valores de los puntos 1, 2 y 3 y obtenga un nuevo número:
n1 := e * 100 + d * 10 + s;
Todo el programa se verá así:
var n, e, d, s: entero;
comenzar
leer(n);
e := n módulo 10;
d := n div 10 mod 10;
s := n div 100;
writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s);
fin.