Adsence

miércoles, 30 de marzo de 2011

Hallar-los-elementos-que-se-repiten-entre-2-matrices

Leave a Comment
Dada dos matrices hallar los elementos que se repiten e insertarlos en una nueva matriz

[java]

/**
* @(#)matrices.java
*
*
* @author Jamper91
* @version 1.00 2011/3/30
*/
import java.util.Random;
import java.io.*;
import java.lang.*;

public class matrices {

//me devuelve el valor del 2 cuadrito m[][x]
public static int col(Object m[][])
{
boolean salir=false;
int c=0,i=0;
try
{
while(salir==false)
{
if(m[0][i]!= null)
c++;
else
salir=true;
i++;
}
}catch(Exception e)
{
//System.out.println("Error al hallar las columnas de la matriz");
//System.out.println(e.toString());
return c;
}
return c;
}
//me devuelve el valor del 1 cuadrito m[x][]
public static int fil(Object m[][])
{
boolean salir=false;
int c=0,i=0;
try
{
while(salir==false)
{
if(m[i][0]!= null)
c++;
else
salir=true;
i++;
}
}catch(Exception e)
{
//System.out.println("Error al hallar las filas de la matriz");
//System.out.println(e.toString());
return c;
}
return c;
}
public static void imprimir(Object m[][])
{
int c=col(m),f=fil(m);
System.out.println("=======================================");
for(int i=0;i< f;i++)
{
for(int j=0;j< c;j++)
{
System.out.print(m[i][j]+"\t");
}
System.out.println("");
}

}

public static void llenar(Object m[][],int f,int c)
{
Random rnd = new Random();
for(int i=0;i< f;i++)
{
for(int j=0;j< c;j++)
{
m[i][j]=rnd.nextInt(10);
}
}
//return m;
}
//Crea una matriz con los elementos que estan en ambas matrices
public static void interseccion(Object m1[][],Object m2[][])
{
int c1=col(m1),c2=col(m2),f1=fil(m1),f2=fil(m2);
Object m3[][]=new Object[f1][c1];
int v;
for(int i=0;i< f1;i++)
{
for(int j=0;j< c1;j++)
{
v=Integer.parseInt(m1[i][j].toString());
for(int k=0;k< f2;k++)
{
for(int l=0;l< c2;l++)
{
//System.out.println("m2["+k+"]["+l+"]:"+m2[k][l]+"=="+v);
if(Integer.parseInt(m2[k][l].toString())==v)
{
m3[i][j]=v;
l=c2+2;
k=f2+2;
}else{
m3[i][j]="";
}
}
}
}
}
imprimir(m3);
}
public static void main(String args[])
{

int f1=4;
int c1=3;
int f2=4;
int c2=2;
Object m1[][]=new Object[f1][c1];
Object m2[][]=new Object[f2][c2];
llenar(m1,f1,c1);
llenar(m2,f2,c2);
System.out.println("Matriz A:");
imprimir(m1);
System.out.println("Matriz B:");
imprimir(m2);
System.out.println("Interseccion de A*B:");
interseccion(m1,m2);

}

}

[/java]

0 comentarios :