dBfast - A que número esta más cerca
Filtrado por todos los mensajes
| Asunto: | A que número esta más cerca | | Autor: | Ramon (132 intervenciones) | | Fecha: | 27/12/2010 17:13:42 |
Hola Amigos,
Intento desarrollar una función que pasándole tres números me devuelva de cual de los dos primeros esta el tercero más cerca.
Me explico:
Función Valorar(13, 21, 20) La función devolverá 2 porque el 20 esta más cerca del 21 que del 13
Función Valorar(13, 21, 14) La función devolverá 1 porque el 14 esta más cerca del 13 que del 21
El detalle de esta función es que los números nunca se sabe cuales son, y es por esta razón que necesito hacer esta función que me devuelva 1 o 2 dependiendo si el tercer valor esta más cerca del primero o del segundo valor.
Muchas gracias de verdad.
| Asunto: | RE:A que número esta más cerca | | Autor: | Rodrigo Dinamarca M. (25 intervenciones) | | Fecha: | 28/12/2010 17:37:50 | | Url: | |
Hola Ramón,
Puede que esta función te sirva, la escribí sobre la marcha pero creo que está bien, en el fondo devuelve el valor absoluto de la resta entre los parámetros 1 y 2 con el 3 para determinar cual está más cerca del tercer valor
FUNCTION VALORAR()
PARAMETERS p1, p2, p3
nRet = 0 // Valor de Retorno
nDif1 = ABS(p1-p3) // Devuelve el valor absoluto del resultado de la resta
nDif2 = ABS(p2-p3) // en caso de que te de un resultado negativo.
IF nDif1 <> nDif2
IF nDif1 < nDif2
nRet = 1
ELSE
nRet = 2
ENDIF
ELSE
nRet = 0 // Valor 0 indica error o Indica que p3 está a igual distancia de p1 y p2
ENDIF
RETURN(nRet)
Saludos y avísame si te sirvió o no.
Rodrigo Dinamarca M
| Asunto: | RE:A que número esta más cerca | | Autor: | Ramon (132 intervenciones) | | Fecha: | 07/01/2011 08:49:08 |
Hola Rodrigo,
Gracias por tu ayuda, pero resolví el tema más o menos como indicas en tu ayuda, aun así, tuve que ampliar la valoración de los parámetros, pues necesitaba que devolviera el resultado de la valoración de 4 parámetros y la función tenia que devolver cual de los cuatro parámetros que se pasan, esta más cerca del quinto parámetro pasado.
Saludos amigo y sobre todo muchas gracias por tu desinteresada ayuda.
Ramon |