• Jueves 25 de Abril de 2024, 05:39

Autor Tema:  Ayuda Recorrido En Espiral De Una Matriz Cuadrada  (Leído 8555 veces)

jpnl87

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« en: Domingo 28 de Enero de 2007, 20:50 »
0
No he podido hacer el codigo en visual c++ en el cual me lea una matriz cuadrada de enteros y que me imprima la matriz recorriendola en espiral empezando desde  [0,0] hacia la derecha como por ejemplo

1 2 7 3
4 2 2 1
3 2 5 6
8 9 7 6

y que imprima la espiral  1 2 7 3 1 6 6 7 9 8 3 4 2 2 5 2

Alguien sabe como hacerlo???

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« Respuesta #1 en: Lunes 29 de Enero de 2007, 00:11 »
0
Dios otra vez no ¡¡¡  :scream:

Voy a recoger firmas para que prohiban el ejercicio de "la matriz en espiral"  :lol:

Si usas el buscador encotraras varios hilos sobre el tema ese  :hola:

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« Respuesta #2 en: Lunes 29 de Enero de 2007, 18:13 »
0
Citar
Dios otra vez no ¡¡¡ scream.gif

Voy a recoger firmas para que prohiban el ejercicio de "la matriz en espiral" laugh.gif

Si usas el buscador encotraras varios hilos sobre el tema ese hola.gif
Es verdad, he visto varios ya de ese ejercicio. yo deje algo de la logica del ejercicio en uno de esos hilos.

aqui esta.
http://foros.solocodigo.com/index.php?act=ST&f=16&t=26658

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

jpnl87

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« Respuesta #3 en: Sábado 3 de Febrero de 2007, 01:57 »
0
Pillen aqui logre hacer un codigo sencillo para visual c++ es fácil de entender para que acabe por fin el martirio del recorrido de la matriz en espiral este codigo la recorre de afuera hacia adentro tal como lo puse en el ejemplo que puse al principio de la discusión este  es:

#include<iostream.h>

#define  nfilas 4
#define  ncolumnas 4

void main()
{
   
   int matriz[nfilas][ncolumnas];
    int i=0,j=0,k=0;
   

   for(i=0;i<nfilas;i++)     //Ingresar Datos a la matriz por desde 0 hasta ncolumnas-1
   {
      cout<<" Ingrese las filas "<<endl;
      for(j=0;j<ncolumnas;j++)
      {
         cin>>matriz[j];
      }
   }
      

   cout<<"La Espiral en la matriz es: "<<endl;
   
    i=0;
   k=0; //Variable Auxiliar k que controla el ciclo
   

   do
   {
      //primer Recorrido de izquierda a derecha
   
         for(j=k; j<ncolumnas-k-1; j++)
         {
            cout<<matriz[j]<<endl;
         }
        
         //Segundo Recorrido de arriba hacia abajo
       
          for(i=k; i<nfilas-k-1; i++)
         {
             cout<<matriz[j]<<endl;
         }
          //Tercer Recorrido de derecha a izquierda
 
          for(j=ncolumnas-k-1; j>=k+1; j--)
         {
             cout<<matriz[j]<<endl;
         }
        
         //Cuarto recorrido de abajo hacia

          for(i=nfilas-k-1; i>=k+1; i--)
         {
             cout<<matriz[j]<<endl;
         }
          k++;
          

   }
   while(k!=0); //Mientras k!=0 repita los 4 recorridos hasta recorrer toda la matriz

}

Gracias por la ayuda pero pues por Google es dificil encontrar algo :comp:

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« Respuesta #4 en: Domingo 4 de Febrero de 2007, 14:02 »
0
La logica esta bien, pero todavia te falta pulirla un poco.

por ejemplo:

El primer elemento que muestra cada FOR ya fue mostrado en el ultimo elemento del anterior FOR.

el DO WHILE se ejecutara por siempre ya que K siempre sera mayor a 0

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"