buscar minimo valor en un arreglo bidimensional

buscar minimo valor en un arreglo bidimensional

Postby Busmatic_wpb » Sat Mar 31, 2018 4:49 am

Estimados listeros saluditos a la distancia.

1- Miren tengo un arreglo bidimensional.
2 Necesito saber el valor minimo de aParadasvue[Puntero,4]
3 lo que hago es calcular la distancia entre dos puntos por GPS
4 aParadasvue[Puntero,4] almacena la distancia procesada // iIda



Algo asi va..

oP:Cuantoshay:=oP:QueryPara:Reccount()

Local aParadasida[oP:Cuantoshay,4]
Local aParadasvue[oP:Cuantoshay,4]


do while .t.
Puntero:=oP:QueryPara:recno()
aParadasida[Puntero,1]:=oP:QueryPara:FieldGet("latIDA")
aParadasida[Puntero,2]:=oP:QueryPara:FieldGet("lonIDA")
aParadasida[Puntero,3]:=oP:QueryPara:FieldGet("nlargo")
aParadasida[Puntero,4]:=calculadistancia()

aParadasvue[Puntero,1]:=oP:QueryPara:FieldGet("latIDA")
aParadasvue[Puntero,2]:=oP:QueryPara:FieldGet("lonIDA")
aParadasvue[Puntero,3]:=oP:QueryPara:FieldGet("nlargo")
aParadasvue[Puntero,4]:=calculadistancia()

oP:QueryPara:skip()
IF oP:QueryPara:Eof()
EXIT
ENDIF
ENDDO

Ok hasta aqui de maravillas proximo paso.

Lat1 := 10.203574
Lng1 := -83.782274

for I = 1 to len(aParadasida)

lat2 :=val(aParadasida[I,1])
lng2 :=val(aParadasida[I,2])

oP:mascarca:=miDistancia( lat1, lng1, lat2, lng2 ) // calculo la distancia y guardo en la posicion aParadasida[I,4]

aParadasida[I,4]:=oP:mascarca

next

al final la funcion que calcula distancias gracias a:

function miDistancia( lat1, lng1, lat2, lng2 )
**//**Hecho por xmanuel » Dom Ene 21, 2018 7:13 pm
return( acos( sin( dtor( lat1 ) ) * sin( dtor( lat2 ) ) + cos( dtor( lat1 ) ) * cos( dtor( lat2 ) ) * cos( dtor( lng1 ) - dtor( lng2 ) ) ) * 6371 )

RETURN

A este punto perfecto, a hora debo de buscar a menor distancia garabada en aParadasida[I,4] del arreglo..

Gracias
Regards.
S.I.T.U.
Sistemas Inteligentes de transporte urbano
http://www.situcr.com
oscarchacon@Situcr.com
Desarrollos BA4/B4j androide
User avatar
Busmatic_wpb
 
Posts: 162
Joined: Wed Feb 22, 2017 2:19 am

Re: buscar minimo valor en un arreglo bidimensional

Postby nageswaragunupudi » Sat Mar 31, 2018 1:51 pm

Code: Select all  Expand view
Lat1: = 10.203574
Lng1: = -83.782274


aMin  := Array( 2 )

for I = 1 to len (aParadasida)

   lat2: = val (aParadasida[I, 1])
   lng2: = val (aParadasida[I, 2])

   oP:mascarca: = miDistance (lat1 , lng1, lat2, lng2) // calculate the distance and save in the position aParadasida [I, 4]

   aParadasida [I, 4]: = oP:mascarca

   if aMin[ 2 ] == nil .or. aMin[ 2 ] > oP:mascarca
      aMin  := { i, oP:mascarca }
   endif

next

// shotest distance is aMin[ 2 ]
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10620
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: buscar minimo valor en un arreglo bidimensional

Postby Busmatic_wpb » Sun Apr 01, 2018 2:41 am

Thanks nageswaragunupudi, works great.
have good one
...
Regards.
S.I.T.U.
Sistemas Inteligentes de transporte urbano
http://www.situcr.com
oscarchacon@Situcr.com
Desarrollos BA4/B4j androide
User avatar
Busmatic_wpb
 
Posts: 162
Joined: Wed Feb 22, 2017 2:19 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FiveWiDi and 46 guests