SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: vpcr en Martes 4 de Noviembre de 2008, 08:21

Título: imprimir un vector de una matriz en forma de caracol
Publicado por: vpcr en Martes 4 de Noviembre de 2008, 08:21
HOla!!!
Necesito imprimir un vector de una matriz de n por m, éste vector leerá la matriz en forma de caracol.
Ya tengo el programa para colocar los datos en forma de caracol, ahora necesito imprimir los datos de la matriz en forma de caracol. Si alguien que me pueda ayudar, se lo agradecería.
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: eternity en Martes 4 de Noviembre de 2008, 16:16
vos que queres hacer que la matriz vaya apareciendo en espiral?
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: vpcr en Miércoles 5 de Noviembre de 2008, 04:08
que lea una matriz de n por m, no importa como esté acomodada, lo que deseo ess imprimir los datos de la matriz en un sólo vector y que estos datos sean leidos en forma de espiral.
  12, 5, 6,8,3
  5,  4,  5,3,5
  3,4,11,6,89

el resultado: 12,5,6,8,3,5,89,6,11,4,3,5,4,5,3 (leer matriz en forma de espiral e imprimirla en un arreglo unidimensional)
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: eternity en Miércoles 5 de Noviembre de 2008, 04:15
ah ahora entiendo dame hasta mañana y te ayudo! por que estoy hasta las manos con un laburo!

otra cosa: trabajas en C o en C++?

 :beer:
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: vpcr en Miércoles 5 de Noviembre de 2008, 04:24
no mucho, pero estoy desenpolvando mi programación que lleve en la carrera. Esto me lo piden para que pratique con arreglos.
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: eternity en Miércoles 5 de Noviembre de 2008, 13:52
bueno la idea es que se saben varias cosas para resolver este problema:

1) Sabes donde empieza el recorrido caracol.
Código: C
  1. (matriz[0][0])
  2.  
2) Sabes el tamaño M x N de la matriz.
3) Por lo tanto el tamaño del vectors es de M*N posiciones.

supongo que siempre quieres cargar matrices de tamaños variables, el vector siempre será de tamaño variable, asi que debes conocer bien como se alloca memoria en C (busca info sobre malloc() y free()).

Código: C
  1. //...
  2. //...
  3. //...
  4. while (num!=max){
  5.     for (i=tope, j=tope; j<=ene; j++){  // se desplaza hacia la derecha
  6.         num++;
  7.         meterEnVector(); // definila
  8.     }
  9.     for (i=tope+1, j=ene; i<=eme; i++){ // se desplaza hacia abajo
  10.         num++;
  11.         meterEnVector(); // definila
  12.     }
  13.     for (i=eme, j=ene-1; j>=tope; j--){ // se desplaza hacia la izquierda
  14.         num++;
  15.         meterEnVector(); // definila
  16.     }
  17.     for (i=eme-1, j=tope; i>tope; i--) // se desplaza hacia arriba
  18.         num++;
  19.         meterEnVector(); // definila
  20.     }
  21.     eme--;
  22.     ene--;
  23.     tope++;
  24. }
  25. //...
  26. //...
  27. //...
  28.  

 :beer:

PD: esa es una idea, obviamente el codigo no compiala!
Título: Re: imprimir un vector de una matriz en forma de caracol
Publicado por: vpcr en Miércoles 5 de Noviembre de 2008, 23:58
ok, gracias. voy hacer mis pruebas.