DeNunCianDo

DeNunCianDo (https://www.denunciando.com/)
-   Programacion (https://www.denunciando.com/programacion-115/)
-   -   Necesito una ayudita con un programa (https://www.denunciando.com/programacion-115/232226-necesito-una-ayudita-con-un-programa.html)

tito millo 29-04-2010 19:15:02

Necesito una ayudita con un programa
 
Holap que tal bueno, me dicen tito y soy de aca de Ecuador, estoy estudiando sistemas y pues me gustaria que me den una ayudita, lo que pasa es que quiero hacer un programa basado en la teoria de grafos, pero el problema es que no se por donde empezar, entonces quisiera que me den una ayuda.
Bueno ya saben que en este caso la teoria trata mas o menos de encontrar el camino mas facil para llegar a algo bueno yo quiero hacer a la inversa y pues podria ser algo como en un casino que estan mas o menos diseñados para que las personas no se ubiquen bien y asi gasten mas dinero en juegos.
Quiero hacer lo mismo pero usando un super como ejemplo.
Podriamos decir que el usuario ingresa los productos que necesita en el programa y este traza la ruta que debe seguir, la mas larga en la cual hay mas cosas que le van a llamar la atencion al cliente asi este las comprar hasta llegar a lo que realmente busca
Espero que me puedan ayudar

Saludos
Tito Millo

☠Xavi Camorra☠ 30-04-2010 08:46:49

Respuesta: Necesito una ayudita con un programa
 
#include <stdio.h>
#include <conio.h>


#define MN 100 /* Número máximo de vertices*/
#define infinito 32767

/*Sea*/
int w[MN][MN],q[MN][MN];
unsigned char i,j;
int N;

int min(int a,int b)
{
int r;
if ( a<=b ) r=a ; else r=b;
return(r);
}

void ceros_grafo(int g[MN][MN])
{ unsigned char i,j;

for (i=1;i< N+1;i++ )
for (j=1; j< N+1;j++ )
g[i][j]=0;
}

void camino_min_a( )
{
unsigned char i,k,j;
int qikqkj;

/*Genera nueva matriz de costos q donde nodos inconexos cuestan infinito*/
ceros_grafo(q);
for (i=1;i< N+1 ;i++)
for (j=1; j< N+1;j++ )
if ( (w[i][j]==0) ) q[i][j] = infinito;
else q[i][j]=w[i][j];
/*Busca los costos m¡nimos*/
for (k=1; k< N+1;k++ )
for (i=1 ;i< N+1;i++ )
for (j=1;j< N+1;j++ )
if ( (q[i][k] != infinito) && (q[k][j] != infinito)
) q[i][j] = min(q[i][j],q[i][k] + q[k][j]);

};

void camino_min_sc(int w[MN][MN], int q[MN][MN] )
{ unsigned char i,k,j;
int qikqkj;

/*Genera nueva matriz de costos q donde nodos inconexos cuestan infinito*/
ceros_grafo(q);
for (i=1; i < N+1 ;i++ )
for (j=1; j< N+1;j++ )
if ( (w[i][j]==0) ) q[i][j] = infinito;
else q[i][j]=w[i][j];
/*Busca los costos m¡nimos*/
for (k=1; k< N+1;k++)
for (i=1; i < N+1;i++ )
for (j=1; j< N+1;j++ )
if ( (i!=j) && ((q[i][k] != infinito) && (q[k][j] != infinito))
) q[i][j] = min(q[i][j],q[i][k] + q[k][j]);
};

void muestra_matriz_grafo(int g[MN][MN])
{
unsigned char i,j,Y;

Y = wherey();
for (i=1; i< N+1;i++ )
for (j=1;j < N+1;j++ ) {
gotoxy(5 + j * 6, Y + i);
if ( (g[i][j] != infinito) ) printf(\"%i\",g[i][j])
; else printf(\"ª\");
};
printf(\"\\n\");
}

/* RUTINA PRINCIPAL */
/* ******************************************** */
void main()
{ clrscr();
N=0;
printf(\"Indique:\\n\");
do {
printf(\"Numero de Nodos [1..7]:\");
scanf(\"%i\",&N);
if ( (N < 0) || (N > MN) ) N=0;
} while ( N==0 );

/* Llenado de Matriz de costos w*/

for (i=1;i<N+1; i++ ) {
printf(\"Desde el nodo %i \\n\", i);
for (j=1; j< N+1;j++)
if ( (i!=j) )
{
printf(\"Costo [ %i ÄÄ> %i ]: \",i,j);
scanf(\"%i\",&w[i][j]);
}
else w[i][j]=0;
printf(\"\\n\");
};

/* Calcula los caminos minimos de w y los deja en q*/
clrscr();
printf(\"Matriz de costos original.\\n\");
muestra_matriz_grafo(w);

printf(\"Matriz de costos mínimos.\\n\");
camino_min_a(w,q);
muestra_matriz_grafo(q);

getchar();
clrscr();
printf(\"Matriz de costos original.\\n\");
muestra_matriz_grafo(w);

printf(\"Caminos mínimos sin ciclos.\\n\");
camino_min_sc(w,q);
muestra_matriz_grafo(q);
getch();
}

= no busque siempre que le hagan programas, espero que esto le sirva :-/

tito millo 30-04-2010 09:30:02

Respuesta: Necesito una ayudita con un programa
 
Gracias amigo,bueno yo no keria en realidad el codigo fuente lo que necesitaba era mas o menos una guia de como hacerlo pero gracias con tu codigo ya tengo la guia sificiente muchas gracias

Saludos
Tito Millo

disatoba 25-05-2010 16:10:27

Respuesta: Necesito una ayudita con un programa
 
Hola,

Si aún quieres saber algo más de teoría de grafos y aplicarla te vendría bien este libro: http://agamenon.uniandes.edu.co/~rga....(2003).KB.pdf es un libro para programación competitiva te recomiendo mucho los dos capitulos de teoría de grafos.

Saludos

ARICARRARO 14-12-2010 15:10:16

Respuesta: Necesito una ayudita con un programa
 
Cita:

Iniciado por disatoba (Mensaje 4558491)
Hola,

Si aún quieres saber algo más de teoría de grafos y aplicarla te vendría bien este libro: http://agamenon.uniandes.edu.co/~rgarcia/Cursos/DisAlgoritmos/Libros/Springer.Verlag,.Programming.Challenges.(2003).KB.pdf es un libro para programación competitiva te recomiendo mucho los dos capitulos de teoría de grafos.

Saludos

Tu link tiene un error

ve estehttp://acm.cs.buap.mx/downloads/Prog...Challenges.pdf


La franja horaria es GMT -5. Ahora son las 10:17:48.

Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.

DeNunCianDo.CoM ©

Page generated in 0,02199 seconds with 8 queries

SEO by vBSEO