Clipper/FiveWin - A que número esta más cerca

   
Vista:

A que número esta más cerca

Publicado por Ramon (25 intervenciones) el 27/12/2010 17:12:37
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
información
Otras secciones de LWP con contenido de Clipper/FiveWin
- Código fuente de Clipper/FiveWin
- Cursos de Clipper/FiveWin
- Temas de Clipper/FiveWin
información
Códigos de Clipper/FiveWin
- Convertir numeros a letras
- Visor de archivos DBF
- Melodias

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

Publicado por SuperIndio (1 intervención) el 27/12/2010 21:43:16
Bueno veo que te has explicado mal, lo que vos queres no es cual de lo numeros es el mas cercano, sino la distancia o diferencia menor
Ahi va:

Static Function Global_MasCercano(nnNuma, nnNumb, nnNumc)

LOCAL nCercano := 0
LOCAL nDista1 := 0
LOCAL nDista2 := 0

IF nnNuma = nnNumc
nDista1 := 0
ELSE
IF nnNuma > nnNumc
nDista1 := nnNuma - nnNumc
ELSE
nDista1 := nnNumc - nnNuma
ENDIF
ENDIF

IF nnNumb = nnNumc
nDista2 := 0
ELSE
IF nnNumb > nnNumc
nDista2 := nnNumb - nnNumc
ELSE
nDista2 := nnNumc - nnNumb
ENDIF
ENDIF

IF nDista1 > nDista2
nCercano := nDista2
ELSE
nCercano := nDista1
ENDIF

Return ( nCercano )
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 (25 intervenciones) el 28/12/2010 13:47:19
Muchas gracias SuperIndio por tu estimable ayuda.
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 marcelo (161 intervenciones) el 29/12/2010 16:56:32
function cualmascerca(A,B,C)
if int(A-C) < int(B-C)
retu A
else
retu B
endif
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 Chucho (1 intervención) el 02/01/2011 04:14:33
Otra forma tomando la funcion de marcelo:

FUNCTION cualmascerca(A,B,C)
RETURN Iif( Int(A-C) < Int(B-C), A, B )

Saludos
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 marcelo (33 intervenciones) el 04/01/2011 14:38:44
muy bueno! mas cortito imposible.
Saludos y felices fiestas.
marcelo
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 marcelo (1 intervención) el 04/01/2011 20:31:52
ja, no se para que sirve esa rutina, pero el chucho me interpretò a pesar del error, no es el INT, es el ABS, ja.
saludos.
marcelo
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