Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - darknesrul

#1
General Programadores / tabla en builder c++
08 de Enero de 2007, 09:42:30 PM
hola gente, de nuevo los molesto con una pequeña duda.

Estoy trabajando en Builder c++ 2006 y necesito un control que me muestre una serie de datos en forma de tabla pero que me permita agregar filas en tiempo de ejecucion o cambiar el color de una determinada columna tambien en tiempo de ejecucion. Los controles que pude encontrar yo son todos predefinidos en tiempo de diseño y luego no los puedo modificar (o no se como al menos, busque metodos tipo AddRow o algo parecido y no encontre nada)

Bueno, como siempre cualquier ayuda es bienvenida!!!  :D
#2
mmm.... esto de los checks de la stl me intereso. Podrias explicar un poquito mas sobre esto ya que busque en google pero nada, sobre todo como deshabilitarlos, ya que probe el mismo codigo en Borland y anda perfecto pero estoy mas acostumbrado al Visual y no me gustaria tener que cambiarme a otro entorno a estas alturas
#3
es que el codigo es exactamente el mismo, si fuera problema de este tendria que andar mal en los dos pero sin embargo en el Dev anda perfecto.

Y en cuanto a que compilador o IDE es mejor creo que ya es una cuestion de gustos y costumbre asi que cada uno tendra sus preferencias, yo por mi parte pongo las manos en el fuego por el GCC 8)

Despues voy a probar con el Builder a ver que onda....
#4
Bueno amigos, problema resuelto. Resulto que no era ningun problema de implementacion, ni de estructuras ni nada de lo que uno piensa en primera instancia...... que era entonces? Era la MIERDA de compilador (o IDE mejor dicho, no se que compilador usa) de Micro$oft (Microsoft Visual Studio 2005).

De casualidad se me ocurrio probar el mismo codigo en el IDE de Dev-c++ de Bloodshed (compilador gcc, creo) y anda perfecto. Responde instantaneamente con nodos que estan en dos puntas opuestas del mapa.

Con lo que ahora surge una nueva preguntilla, esta vez mas facil jeje.... Que IDE me recomiendan usar para crear una aplicacion tipo Windows que no sea demasiado dificil de entender. Lo primero que se me ocurre es Borland pero no se..... Como siempre, se escuchan propuestas!!!  :D  :D

De nuevo gracias por todas las respuestas..... muy buen foro y muy buena gente en el
#5
bueno muchas gracias por sus respuestas. Ahora voy a probar utilizando un Heap Fibonacci para ver si mejoro el tiempo. Despues comento como fue esto...
#6
ah me olvidaba..... una preguntita de ignorante.... el Dijkstra deberia andar igual de bien en grafos no dirigidos, no?. O sea que siempre los arcos vayan de a pares (de A a B y de B a A)
#7
Cita de: "marcode"
Si a ti te tarda muchísimo más el problema puede estar en la implementación.

No se si esto tendra algo que ver pero el grafo esta implementado mediante templates y utilizando como estructura para los vertices y arcos, mapas (de la STL) por lo que quizas puede tener un costo un poco mayor operaciones como obtener la lista de vertices o de adyacentes a un nodo que mediante otras implementaciones.

Igual ahora voy a probar un poquito con lo que tiro ahi Pogacha y despues les comento.
#8
Bueno antes que nada muchas gracias por las respuestas.

Como bien dice Pogacha en este caso Floyd no me sirve ya que estaria calculando el mejor camino entre cada par de nodos y esto solo me suma trabajo extra que no necesito.

Tambien creo que la solucion seria un Dijkstra modificado para que no calcule el mejor costo entre el nodo origen y todos los demas sino solamente entre el origen y el destino que son los dos que me interesan.
En cuanto a la implementacion del Dijkstra ya lo tengo hecho con un heap, lo que no se es como "frenarlo" cuando encuentra el mejor camino al nodo que a mi me interesa.

Sobre el costo a minimizar no es solo la distancia o el costo empleado o el dinero (cada uno por separado) sino que tiene que ser un "promedio" por decirlo de alguna manera de todos, por lo que para comparar los arcos tengo una variable double "coeficiente" donde tengo en cuenta tanto la distancia, costo de dinero, etc, que van multiplicando o dividiendo en esta variable segun sea proporcional o inversamente proporcional respectivamente.

Mmm... creo que esto ultimo no quedo muy claro. Por ejemplo seria algo asi:
     coeficiente= (distancia * dinero) / estaciones de servicio

Es decir, cuanto mayor sea la distancia o el dinero requerido mayor sera el coeficiente y menor prioridad tendra en el heap. A su vez, cuantas mas estaciones de servicio haya en el recorrido, mas chico se hara el coeficiente y mayor prioridad tendra en el heap.
#9
Bueno, este es mi primer mensaje asi que antes que nada me gustaria presentarme. Mi nombre es Jose luis y vivo en Argentina. Estoy estudiando el segundo año de la carrera Ingenieria en Sistemas en la Universidad de Tandil (UNICEN), (creo que ahi se resume lo mas importante sobre mi....)

Bueno ahora les paso a explicar mi problema para ver si alguien me podria ayudar un poco:

El tema es que como trabajo final de una materia me hacen hacer una aplicacion que, ingresadas dos ciudades (de Argentina), me diga el mejor camino por ruta que puedo seguir para llegar desde el origen al destino, tomando en cuenta no solo las distancias sino tambien los costos por peajes, estaciones de servicio, tipos de rutas (asfaltadas o no),etc,etc.

Claramente lo primero que se me ocurrio (y creo que asi deberia ser) es modelar el problema utilizando grafos.
De esta manera cada nodo del grafo representa una ciudad y cada arco la carretera que une a esas dos ciudades.
El primer problema con esto es que el grafo tiene una gran cantidad de nodos y arcos, ya que el programa tiene que contemplar aun la mas pequeña ciudad que ni sus habitantes saben que existe, teniendo un total aproximado de 14350 nodos y 33000 arcos.

Teniendo ya el grafo entero cargado (lo cual no fue tarea facil), probe con el algoritmo de Dijkstra para obtener el mejor camino entre dos nodos pero obviamente con tantos vertices y arcos el algoritmo no da una respuesta en un tiempo razonable.

Llegado a este punto me encuentro sin salida ya que todos los grafos con los que he trabajado anteriormente eran mucho menores y el algoritmo funcionaba perfectamente por lo que nunca tuve necesidad de buscar otras alternativas.

Bueno ese es basicamente mi problema.... se acepta cualquier sugerencia

Desde ya muchas gracias





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.