Un problema clásico en la programación, especialmente cuando estamos iniciando a utilizar Arrays en un lenguaje de programación, una matriz es simplemente un array bidimensional, entonces ahora les mostrare el algoritmo y también solucionado en código java.
Una matriz caracol, como su nombre lo dice tiene, la siguiente forma para una matriz cuadrada, ejemplo matriz cuadrada de tamaño 5.
Para ello necesitamos cuatro for’s que recorran los cuatro lados y uno extra para que repita esa operación en el caso de una dimensión 5 deberá repetirlo 2 veces y colocar un numero mas en el centro, en el caso de dimensión par entonces repetimos dimensión dividido entre 2 veces.
En el diagrama de flujo, n es la dimensión de la matriz cuadrada y x es un numero con cual empezara a generar la matriz caracol. Vean el algoritmo en lenguaje de programación Java.
public static int[][] generarMatrizCaracol(int n, int x) { int[][] M = new int[n + 1][n + 1]; for (int a = 1; a <= n / 2; a++) { for (int i = a; i <= n - a; i++) { M[a][i] = x; x++; } for (int i = a; i <= n - a; i++) { M[i][n - a + 1] = x; x++; } for (int i = n - a + 1; i >= a + 1; i--) { M[n - a + 1][i] = x; x++; } for (int i = n - a + 1; i >= a + 1; i--) { M[i][a] = x; x++; } } if (n % 2 == 1) { M[n / 2 + 1][n / 2 + 1] = x; } return M; }
Tomar en cuenta que se genero matriz a partir de la posición (1, 1) sin embargo para la primera posición para Java es (0, 0), eso se lo cambia de manera sencilla. Descárguense el algoritmo en lenguaje de programación Java.
También otro problema clásico es generar esta misma matriz con un solo ciclo repetitivo, pídanla y la publico pronto.
ResponderEliminarman pon la de con un solo ciclo repetitivo
EliminarLoco como creo cuadros magicos de 3x3,4x4 y 5x5 es con urgencia y lo necesito para dfd me ayuda?
EliminarGracias por el aporte Me ha resultado curioso y entretenido entender el algoritmo
ResponderEliminarque buena pagina muy bien compañero felicidades
ResponderEliminarsube todo lo sea de informatica es interesante porfa.....
ResponderEliminarGracias por darse una vueltita por este blog, y muy pronto verán muchas novedades.
ResponderEliminarBuenas y como puedo hacer para que me funcione con matrices nxm
ResponderEliminarke suave la matriz... me ayudo mucho gracias...
ResponderEliminaresta muy bueno! existira un metodo mas corto para acerlo
ResponderEliminarpodrian ayudarme a resolver las torres de HANOI en lenguaje de c++por favor, no se como resolver, solo me dijeron q es muy conocido en programacion
ResponderEliminarpodrian ayudarme a resolver las torres de HANOI en lenguaje de c++por favor, no se como resolver, solo me dijeron q es muy conocido en programacion
ResponderEliminarPues podrias ver la solucion recursiva en http://es.wikipedia.org/wiki/Torres_de_Han%C3%B3i
ResponderEliminary puedes ver como funciona en http://soloinformaticayalgomas.blogspot.com/2011/03/solucion-animada-de-las-torres-de-hanoi.html
buenisiimooo gracias me sirvio bastante sube con un solo ciclo repetitivo¡¡¡¡ please¡¡¡¡
ResponderEliminargracias....
ResponderEliminarmuy bueno gracias
ResponderEliminarHola existe el clásico problema de las 8 reinas. La idea es ubicar 8 reinas en un tablero de ajedrez sin que estas se amenacen. Una solución simple e iterativa es ideal, también generalizar la solución a un tablero de N x N casillas con N reinas. ¿Lo desean ver?
ResponderEliminarcomapañero Daniel muy buena tu pagina felicidades!!... no se si me puedas ayudar con un problema de matriz la cua es EL CUBO MAGICO t lo agradeceria mucho si me ayudas el cubo consta de q
ResponderEliminarla suma de numeros de las filas, columnas y diagonal nos dan el mismo numero... t lo agradeceria mucho ya me ayudast con la matriz caracol gracias
mamas daniel!! esa es la solucion mas larga no les hagas ilucionar a los demas con tus soluciones triviales!
ResponderEliminarYo jamas dije la era la solución mas corta, (lee por favor) pero si es la opción natural, te aconsejo que busques la definición de trivial. Saludos.
Eliminarhepl??? necesito generar la matriz caracol.. pero q exista un tiempo desde q apacere la primera a la segunda.. q cada una vaya apareciendo en un determinado tiempo.. en windows from.. porfa..
ResponderEliminartiene como resolver esta?
ResponderEliminardado a ordem 5?
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
package EJERCICIOS;
Eliminar/**
*
* @author FACU
*/
import java.util.Scanner;
public class ejerM8 {
public static void main(String[] args) {
int i,n,j;
int [][] A=new int[100][100];
Scanner leer=new Scanner(System.in);
System.out.printf("N*N = ");
n=leer.nextInt();
int c = 1,ini=0,lim=n-1;
while(c<=n*n){
for(i=ini;i<=lim;i++){
A[ini][i]=c;
}
for(i=ini+1;i<=lim;i++){
A[i][lim]=c;
}
for(i=lim-1;i>=ini;i--){
A[lim][i]=c;
}
for(i=lim-1;i>ini;i--){
A[i][ini]=c;
}
ini=ini+1;
lim=lim-1;
c=c+1;
}
for(i=0;i<n;i++){
System.out.println(" ");
for(j=0;j<n;j++){
System.out.print(" ");
System.out.print(A[i][j]);
}
}
}
}
muy bacan el codigo
ResponderEliminary como sería en c++??
ResponderEliminar:p
ResponderEliminarme ayudan a resolver esto por favor en diagrama de flujo
ResponderEliminar26 25 24 23 22 21
27 10 9 8 7 20
28 11 2 1 6 19
29 12 3 4 5 18
30 13 14 15 16 17
31 32 33 34 35 36
Alguiene podría colaborar con este ejercicio: llenar la matriz con la siguiente serie: 0,2,3,2,5,5,7,10,12
ResponderEliminarsi me pueden ayudar con el pseudocódigo para realizar una matriz en forma de caracol o espiral el visual basic 6.0
ResponderEliminarPodrian ayudarme con la matriz caracol en pseint por favoooooooooooooooor
ResponderEliminarsI QUIERO HACER EL CARACOL PERO DEBO EMPEZAR EN LA MITAD DE UNA MATRIZ CUDRADA IMPAR
ResponderEliminarNecesito hacer una matriz de n*n, pero que se muestre en un datagridview en visual studio c#, alguien podria ayudarme porfavor
ResponderEliminargracias me sirvio de mucho.
ResponderEliminar