Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2009
peripla peripla is offline
Miembro
 
Registrado: abr 2006
Posts: 54
Poder: 19
peripla Va por buen camino
Buscar Valores en una Grillla

Hola, quiero buscar valores en un tstringgrid de la siguiente manera y no se como:

Tengo una columna con los Valores de los cheques.... Por ejemplo:

1.00
9.22
11.01
31.31
32.35
34.74


Y yo tengo que pagar por ejemplo por $50, y quiero que busque los cheques que mas se aproximen, cuantos mas cheques sean mejor. En este caso, me deberia devolver los siguientes:

1.00
9.22
31.31
------
41.53

Se entiende? Alguien hizo algo similar? Le agradezco de antemano, porque no se me ocurre nada.
Responder Con Cita
  #2  
Antiguo 11-03-2009
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Hola peripla,

según entiendo lo que tienes que saber es con cuáles "cheques" te tienes que quedar cuya suma se aproxime lo máximo sin pasarse al dato que buscas.

Si los datos en la "grilla" los tienes ordenados es bastante fácil. Los recorres uno a uno en bucle y accedes a cada elemento con :

StringGrid1.Cells[ACol,ARow]

vas sumando los datos y paras cuando te pases.

Un saludo.
__________________
Hay gente que esta demasiado educada para hablar con la boca llena pero no les importa hacerlo con la cabeza hueca.
Responder Con Cita
  #3  
Antiguo 12-03-2009
peripla peripla is offline
Miembro
 
Registrado: abr 2006
Posts: 54
Poder: 19
peripla Va por buen camino
Gracias Hermes, asi lo tengo pensado...
El tema es que son al menos 50 cheques en una grilla, y yo tengo que buscar 6 que sumen la cantidad elegida.
Es decir cual es la mejor combinación del 6 cheques dentro de los 50 que se aproxime a la cantidad elegida.
Las veces que realiza operaciones es 50 a la sexta (50*50*50*50*50*50) y me da mas de 312 millones. Esto solo con la de 6 cheques, si quiero hacerlo con las de 5 tambien, debo sumarle 50 a la quinta, lo que me se me hace imposible calcular tanto, ponele que le ponga algunos limites, pero igual tarda una barbaridad. Existe algun metodo para hacerlo mas facil?
Responder Con Cita
  #4  
Antiguo 23-03-2009
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Bueno, creo que si se me ocurre una manera pero solo es válida si la lista está ordenada.

Lo primero de todo sería localizar el valor más proximo sin pasarte que estás buscando en el grid. A partir de localizarlo vas haciendo sumas de los 6 elementos anteriores hasta que localices la combinación más optima.

Es decir. Imagina una lista con n elementos:

a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ... an

Primero localizamos el elemento más proximo al valor buscado en la lista ordenada. Imagina que es el elemento a10. A partir de ahí vamos sumando los 6 anteriores. Sería sumar a10+a9+a8+a7+a6+a5. Si se pasa pues sumamos a9+a8+a7+a6+a5+a4 y así sucesivamente hasta encontrar la combinación más optima.

No se si siempre tiene que haber una combinación posible pero esto es otro tema.

Espero que sea lo que buscas.
__________________
Hay gente que esta demasiado educada para hablar con la boca llena pero no les importa hacerlo con la cabeza hueca.
Responder Con Cita
  #5  
Antiguo 23-03-2009
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Ordenalos de menor a mayor y los sumas hasta llegar a la cifra que mas se aproxime. Es un grid o dbgrid? si es dbgrid es facil podes hacerlo recorriendo el dataset.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Restaurar los valores del BDE golf2008 Conexión con bases de datos 3 29-07-2008 12:11:41
Valores distintos trex2000 SQL 0 03-10-2006 17:12:31
Obtener los valores de un .doc zugazua2001 Varios 1 21-05-2006 17:38:15
Valores de un checkbox Ivan_25 C++ Builder 3 07-11-2005 10:42:49
Redondeo de valores JODELSA Varios 1 23-08-2003 18:33:50


La franja horaria es GMT +2. Ahora son las 16:40:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi