• Domingo 10 de Mayo de 2026, 11:27

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jose2090

Páginas: [1]
1
C/C++ / Problema: declarar una matriz especifica en C++
« en: Martes 4 de Noviembre de 2008, 04:30 »
Hola a todos!

Bueno la cosa es que yo al principio declaro un entero N q despues por un cout pido el valor, despues trato de declarar una matriz de A[N][N]. Se que esto no se puede hacer, pero hay alguna forma? digo la debe si no seria como algo tonto trabajar con un limite digamos A[100][100] cuando no es necesario.

Gracias!

Estoy haciendo el caracol, q por cierto nadie me ha contestado  <_<  jaja lo q pasa es que lo quiere hacer para cualquier matriz cuadrada.

2
C/C++ / RECORRIDO DEL CARACOL EN C++
« en: Lunes 3 de Noviembre de 2008, 23:25 »
Hola a todos!!. ^_^

Bueno mi problema es el siguiente. Tengo que hacer el recorrido del caracol para el laboratorio de mi clase. Ya lo hice y lo tengo en la mano, pero cuando lo paso C++ no me quiere funcionar!  :hitcomp: no encuentro salida, por que a mi juicio el algoritmo esta bn, ya que lo probé con matrices cuadradas de diferentes magnitudes y me da.

El recorrido del caracol al cual me refiero es el que empieza hacia la izquierda en i=1,j=n (n=tamaño de matriz), o sea en la esquina superior derecha.

Mi método es el siguiente: aja...uno nota que en la diagonal principal (puntos donde i=j) a partir de ese punto el numero de pasos se decrementan en 1, excepto la primera vez. Por ejemplo con un 4X4; al principio son 3 pasos (p=3), cuando llega a i=j=n(en este caso 4), de ahora en adelante los pasos son 2, cuando llega a i=j=2, los pasos son 1 y cuando llega a i=j=3 se detiene el recorrido por que los pasos son cero (p=0).

Coloco un contador q empiece en cero, para asi evitar que al llegar a i=j=1 los pases decrementen, ya que esta es la excepción.

El primer For es para cuando va a la izquierda, el 2do para cuando baja, el tercero para cuando va a la derecha y el 4 para cuando sube.

El algoritmo es el siguiente:
int   n, i, cont=0, num=2, cp, A[100][100], opcion;
   cout<<"Digite la magnitud de la matriz cuadrada: ";
      cin>>n;
                int j=n, p=n-1;
            A[1][n]=1;
            while (p!=0){
               for (cp=0;cp<p;++cp){
                  j=j-1;
                  A[j]=num, num=num+1;
                  if (i=j){
                     p=n-1-cont, cont=cont+1;
                  }
               }
               cp=0;
               for (cp=0;cp<p;++cp){
                  i++;
                  A[j]=num, num=num+1;
               }
               cp=0;
               for (cp=0;cp<p;++cp){
                  j++;
                  A[j]=num, num=num+1;
                  if (i=j){
                     p=n-1-cont, cont=cont+1;
                  }
               }
               for (cp=0;cp<p;++cp){
                  i=i-1;
                  A[j]=num, num=num+1;
               }
            }


DE VERDAD MUCHÍSIMAS GRACIAS A QUIEN ME RESPONDA!! :D

Páginas: [1]