Foros del Web » Programación para mayores de 30 ;) » C/C++ »

hola necesito ayuda porfas con un codigo

Estas en el tema de hola necesito ayuda porfas con un codigo en el foro de C/C++ en Foros del Web. hola que tal, mi problema es este, no tengo muchos conocimientos de programacion y tengo un codigo y necesito saber que es lo que realiza ...
  #1 (permalink)  
Antiguo 26/06/2007, 22:13
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 17 años, 5 meses
Puntos: 0
Información hola necesito ayuda porfas con un codigo

hola que tal, mi problema es este, no tengo muchos conocimientos de programacion y tengo un codigo y necesito saber que es lo que realiza cada linea del codigo, alguien de ustedes me podria ayudar porfas, que lo pongan adelante de cada linea, se los agradezco mucho, aki esta el codigo:

#include <stdio.h>
#include <conio.h>
#define MN 7 /* 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)
{
return a<=b?a:b;
}

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;
do
{
printf("Ruben Felipe Plata Salazar \n\n");
printf("Escribe el 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("Camino minimo.\n");
camino_min_sc(w,q);
muestra_matriz_grafo(q);
getch();
}
  #2 (permalink)  
Antiguo 27/06/2007, 09:01
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Re: hola necesito ayuda porfas con un codigo

Te recomendaría que leyeras algún tutorial, manual o cosa por el estilo. Trates de entenderlo por ti mismo y cualquier duda puntual que se te presente preguntes en el foro.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 28/06/2007, 11:20
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Re: hola necesito ayuda porfas con un codigo

Cita:
Iniciado por phillip01 Ver Mensaje
hola que tal, mi problema es este, no tengo muchos conocimientos de programacion y tengo un codigo y necesito saber que es lo que realiza cada linea del codigo, alguien de ustedes me podria ayudar porfas, que lo pongan adelante de cada linea, se los agradezco mucho, aki esta el codigo:

#include <stdio.h>
#include <conio.h>
#define MN 7 /* 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)
{
return a<=b?a:b;
}

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;
do
{
printf("Ruben Felipe Plata Salazar \n\n");
printf("Escribe el 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("Camino minimo.\n");
camino_min_sc(w,q);
muestra_matriz_grafo(q);
getch();
}
Y yo quiero $1000. Si me los das te lo resuelvo con gusto.
  #4 (permalink)  
Antiguo 28/06/2007, 16:16
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: hola necesito ayuda porfas con un codigo

Cita:
Iniciado por Instru Ver Mensaje
Y yo quiero $1000. Si me los das te lo resuelvo con gusto.
si que te vendes caro!!!

La verdad es que el codigo que has puesto es un rollo para entender y explicar. De poco te sirve saber para que sirve cada linea si no entiendes el algoritmo en general. Me suena de la facultad, algo asi como el algoritmo para calcular los caminos minimos, creo que de Dikjstra. intenta buscar por ahi.
  #5 (permalink)  
Antiguo 28/06/2007, 22:17
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Re: hola necesito ayuda porfas con un codigo

Cita:
Iniciado por cris_maco Ver Mensaje
si que te vendes caro!!!

La verdad es que el codigo que has puesto es un rollo para entender y explicar. De poco te sirve saber para que sirve cada linea si no entiendes el algoritmo en general. Me suena de la facultad, algo asi como el algoritmo para calcular los caminos minimos, creo que de Dikjstra. intenta buscar por ahi.
Jajaja.

Simplemente le hago como el.
Hay quiero, resuelvan. Ah pues yo tambien, quiero, paguen.

Obviamente no cobraria ni la decima parte de eso.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.