Residuo de una division

R

rtr

Guest
Alguien conoce el algoritmo para obtener el residuo de una división. Necesito obtenerlo sin usar la función MOD de los lenguajes de programación.
 
Alguien conoce el algoritmo para obtener el residuo de una división. Necesito obtenerlo sin usar la función MOD de los lenguajes de programación.


Eso es muy facil, puedes hacer la division por restas sucesivas

ej:

Ej:

Dividendo: 5
Divisor: 2
Cociente: 2
Residuo: 1

5 /2

5- 2= 3
3- 2= 1

Ej:

Dividendo: 8
Divisor: 3
Cociente: 2
Residuo: 2



8/3

8- 3= 5
5- 3= 2


Como verás se ha ido restando del dividendo, el divisor y la operación se repite hasta que el resultado ya no sea mayor que el divisor o menor que 0. El resultado de la última resta es el residuo y la cantidad de restas realizadas es el cociente. Nótese que el cociente es 2 y en total hay 2 restas.

hay te dejo el algoritmo

eer divid, divc
si (divc=0) entonces
escribir “No se puede dividir entre cero”
salir()
fin_si mientras divid >= divc hacer
divid = divid - divc
cosc = cosc + 1
fin mientras
res=divid
escribir “El cociente es”, cosc
escribir “El residuo es”, res
 
En caso de que le sirva a alguien que se haya encontrado con el mismo problema. La función residuo de excel y la funcion mod de visual basic .net dan valores diferentes cuando el dividendo o el divisor son numeros negativos. Esa es la razon por que necesitaba el algoritmo para obtener el residuo de una division. Leyendo una página de ayuda de microsoft da una solución para este problema.

Excel:
=Residuo(-51,180)=129

Visual Basic:
-51 Mod 180 = -51

En mi caso me piden que visual basic obtenga el mismo valor que excel (aunque excel calcula de manera incorrecta esa operación). En ese caso se resuelve de esta forma:

-51 - Math.Floor(-51/180)*180 = 129

Esto dara el mismo resultado que excel.

Si quieren el valor correcto entonces solo usen el operador mod como siempre.

Les dejo las ligas que microsoft proporciona como ayuda a este error.

http://support.microsoft.com/kb/141178
http://support.microsoft.com/kb/130128/es
:huh:
 
¿Y fue que no le sirvió la ayuda posteada por xjuanch0x?

Está bien que haya encontrado la respuesta en otra página, pero la solución que le dio el hombre es TOTALMENTE válida y elaborada.

Agradecer ó por lo menos tenerla en cuenta no cuesta nada.
 

Los últimos temas