SoloCodigo

Programación General => Pascal => Mensaje iniciado por: Panteon en Jueves 30 de Septiembre de 2004, 00:47

Título: sacar el resto
Publicado por: Panteon en Jueves 30 de Septiembre de 2004, 00:47
Saludos

Tengo un pequeño problema en un programa que estoy haciendo, necesito  obtener el ultimo  digito de un número

por ejemplo de 887  sacar el 7 ó de 453 sacar el  3.

la verdad he intentado varias formas de lograrlo..pero sin éxito...me gustaria saber si alguien me pudiera ayudar con eso...

Muchas Gracias
Título: Re: sacar el resto
Publicado por: Amilius en Jueves 30 de Septiembre de 2004, 06:58
Usa el operador módulo: (realiza una división entera y obtienes el "residuo")

Código: Text
  1.  
  2. // con en resultado entre [0...y-1]
  3. modulo:=x mod y;
  4.  
  5. //Para tu caso [0..9]
  6. residuo:=numero mod 10;
  7.  
  8.  

Para enteros positivos el resultado puede ir de 0 a y-1.
Si usaras módulos potencias de 2 es más rápido usar "and" en numeros enteros:
Por ejemplo módulo 2,4,8,16,...  (noten que se aplica la "máscara" correspondiente al modulo-1. Ej. para 2 es 1, para 4 es 3, para 8 es 7. El efecto de máscara se nota claramente al escribir los números en binaro )

Código: Text
  1.  
  2. modulo=x and $1; //Muy util para ver si es impar;)
  3. modulo=x and $3;
  4. modulo=x and $7;
  5. modulo=x and $F;
  6.  
  7.  

Aplicar el operador lógico de bits "and" para estos casos especiales (módulos potencias de 2 de enteros positivos) es de lejos la forma más rápida.
Título: Re: sacar el resto
Publicado por: Panteon en Viernes 1 de Octubre de 2004, 00:49
Muchas gracias...jajaja ahora que me lo esplicas así, fue una preguntilla bastante obvia

pero muchas gracias por sacarme de mi problema  :lol: