Adsence

miércoles, 23 de noviembre de 2011

Matriz-en-Caracol

Leave a Comment
[caption id="attachment_939" align="aligncenter" width="357"]Matris en Caracol en Java Matris en Caracol en Java[/caption]

Un claro ejemplo de como podemos modificar una matriz en diferentes direcciones, en este caso haremos una matriz que empiece desde el centro y se recorrerá en caracol.



 

[java]

import javax.swing.JOptionPane;

public class caracol
{
public static final int SUR = 1;
public static void main(String [] args)
{
int x,cont2=11,y,tot;
String mje="";
x=Integer.parseInt(JOptionPane.showInputDialog("Ingrese el tamaño de la matriz"));
y=x;
tot=(y*y)+10;

int car[][] = new int [x][x];

if(y%2==0)
{
x=(x/2)-1;
}
else
{
x=x/2;
}

int dir=1,z=x,s,e,n,o;
car[x][x]=10;

//Direcciones
s=1;
e=1;
n=2;
o=2;

//llenado de matriz
while(cont2< tot)
{
switch(dir)
{
//Sur
case 1:
for(int w=0; w< =s-1; w++)
{
if(cont2 >=tot)
{}
else
{
x++;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
}
dir=2;
s=s+2;
break;

// Este
case 2:
for(int w=0; w< =e-1; w++)
{
z++;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
e=e+2;
dir=3;
break;

// Norte
case 3:
for(int w=0; w< =n-1; w++)
{
if(cont2 >=tot)
{}
else
{
x--;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
}
n=n+2;
dir=4;
break;

// Oeste
case 4:
for(int w=0; w< =o-1; w++)
{
z--;
car[x][z]=cont2;
cont2++;
mje+= car[x][z]+",";
}
o=o+2;
dir=1;
break;
}
}

String mjef="";
for(int i=0; i< =y-1; i++)
{
for(int j=0; j< =y-1; j++)
{
mjef+=car[i][j]+", ";
}
mjef+="\n";
}
JOptionPane.showMessageDialog(null,mjef);
}
}

[/java]

0 comentarios :