elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación General / Re: Inicializar matrices en Floyd en: 11 Julio 2013, 00:55 am
Aqui te dejo un codigo del algoritmo de floyd para usar facil t rapido ,,
solo te faltaria inicializar las matrices D (costo) y P (predecesores) que es muy sencilo o pasarlas como referencia ...
la cantidad es la cantidad maxima de la matriz que creastes!


 
Código
  1. Void Floyd()
  2.    {
  3.      for(int i=0; i< cantidad;i++)
  4.       for(int j=0; j<cantidad; j++)
  5.        for(int k=0; k<cantidad; k++)
  6.      if(matriz[j][k]>(matriz[j][i]+ matriz[i][k]))
  7.       {
  8.         costos[j][k]=matriz[j][i]+ matriz[i][k];
  9.         predecesor[j][k];
  10.       }
  11.    }



ya lo otro seria implemenar el agoritmo que busque el camino minimo usando estas matrices. Si tienes duda en esto te puedo ayudar!
saludos desde cuba
2  Programación / Programación C/C++ / Re: Camino minimo en floyd! en: 9 Julio 2013, 18:30 pm
Hola amigo!
Mira ListaSE es lista simplemente enlazada, Es una lista que se crea basada con nodo simplemente enlazados para poder hacer las operaciones en listas mas faciles y rapidas. Al menos aqui en mi universidad se usa mucho junto con lista doblemente enlazada.( esta ultima aun es mas rapida pues permite a los nodos en los que se basa la lista regresar al anterior.

Mi profe de programación ya me analizó el código, el codigo esta perfecto. A no ser que se me haya ido algun ; algo jejej... es decir la logica del codigo es asi. Pues lo que hice fue un algoritmo recursivo para ir llenando las listas. Si tienes un chance y mira algo del funcionamiento de floyd, que lo que hace es actualizar una matriz de predecesores y en esa matriz buscar  el camino se hace recursivamente a medida que las vas mirando ( es decir sin ningun tipo de código)
Amigo muchísimas gracias de veras y espero poder seguir ayudandonos. Ahh se me olvidaba soy estudiante cubano de ingenieria en informatica... Ahora es que empiezo por este mundo enorme de la programación
Saludos!
3  Programación / Programación C/C++ / Re: Camino minimo en floyd! en: 8 Julio 2013, 20:00 pm
Te lo digo sin maldad, son detalles a pulir.

Tu piensa que cuanto mejor sea tu presentación y más facilites la vida a los que te van a ayudar, más productivo será para todos, en especial para ti.



Si, anoche me fui a dormir , no daba más. Es que soy nuevo por este foro y aun ando aprendiendo estas cosas de edición. Bueno alguien ha podido verificar si el código sirve o trazearlo?
4  Programación / Programación C/C++ / Re: Camino minimo en floyd! en: 8 Julio 2013, 11:40 am
Para que el texto sea legible, edita tu mensaje, selecciona todo el código y en el combobox donde pone GeSHi selecciona c++.

Y tampoco estaría mal que indicases qué tipo de clase es ListaSE... es un alias de vector, de set o de list... es una clase tuya propia que te has currado de cero... no sabes que hace eso ahi ( XDDD ) ???

Luego, entiendo que la función esa es un template, no?? si es template, para evitar dudas estaría bien que pusieses la declaración del template... en caso contrario ( espero que no ) tienes una clase llamada T... cambia el nombre de esa clase porque es usada para templates y puede dar lugar a confusiones.

Más cositas... CaminoMinimoFloyd es una función, por lo que para llamarla hay que encerrar los parámetros entre paréntesis y tu estás usando corchetes... esto directamente no compila, deberías corregir esos errores antes de reportar código... queda feo.

Y bueno, corrige esas tonterías y luego seguimos.



Ya , y disculpa se me fueron todos esos errorcitos bobos, hechemosle la culpa al sueño.
XDDDD
5  Programación / Programación C/C++ / Re: Camino minimo en floyd! en: 8 Julio 2013, 10:49 am
Código
  1. Bueno esto fue lo que hice, soy de cuba y aqui son las 4 y media am ... ya no genero nada bueno ... asi que no se si funcione a o no!
  2. template<class T>
  3. CaminoMinimoFloyd( T * V1, T * V2 )  // T se refiere a clase template.
  4. {
  5.   ListaSE<T>* lista = new ListaSE<Tipo>;  //ListaSE es lista simplemente enlazada!  
  6.   ListaSE<T>* aux1;
  7.   ListaSE<T>* aux2;
  8.   T * VertComun; // seria el vertice B en AB + BC ;
  9.   int pos1 = Buscar (V1);
  10.   int pos2 = Buscar (V2);
  11.   if ( matrizP [pos1] [pos2] == null) // [color=red]mi matriz de predecesores va a tener dentro los vertices. y no la posicion del vertice.[/color]
  12.            {
  13.               lista -> Adicionar (V1);
  14.               lista -> Adicionar (V2);
  15.            }
  16.          else
  17.            {
  18.             VertComun = matrizP[pos1][pos2];
  19.             aux1 = CaminoMinimoFloyd (V1, VertComun);
  20.             aux2 = CaminoMinimoFloyd (VertComun, V2) ;
  21.             for(int i = 0; i < aux1->Longitud()-1; i++)
  22.                 lista ->Adicionar (aux1->Obtener(i)); // [color=red]agregó los elemento a la lista a retornar. Le doy longitud menos 1 para que en el for siguiente no agregue de nuevo el mismo elemento. sino quedaria ej: ABBC.[/color]
  23.  
  24.             for(int j = 0; j < aux2->Longitud(); j++)
  25.                  lista ->Adicionar (aux2->Obtener(j))
  26.  
  27.             }
  28. return lista;
  29.  
  30. }
6  Programación / Programación C/C++ / Re: Camino minimo en floyd! en: 8 Julio 2013, 10:17 am
Bueno ahora mismo estoy intentando terminar el codigo, guiandome por un seudocodigo.
En cuanto tenga algo coherente y logico lo subo ,
Es decir dentro de unos minutos
jee
gracias!
7  Programación / Programación C/C++ / Camino minimo en floyd! en: 8 Julio 2013, 09:57 am
Estoy intentando hacer el metodo de camino minimo en floyd, pero realmente me he trabado.
Si alguien pudiera ayudarme con algun código más menos entendible se los agradecería!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines