dBfast - A que número esta más cerca

 
Vista:

A que número esta más cerca

Publicado por Ramon (133 intervenciones) el 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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:A que número esta más cerca

Publicado por Rodrigo Dinamarca M. (25 intervenciones) el 28/12/2010 17:37:50
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:A que número esta más cerca

Publicado por Ramon (133 intervenciones) el 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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar