Adsence

miércoles, 30 de marzo de 2011

Unir-2-matrices

Leave a Comment
Unir 2 matrices, donde la condicion es que las columnas de la primera sean iguales a las de la Segunda o lo mismo pero con las filas, en la imagen ya lo veran corriendo



[java]

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

public class UnirMatrices {

//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 union(Object m1[][],Object m2[][])
{
int c1=col(m1),c2=col(m2),f1=fil(m1),f2=fil(m2);
Object m3[][]=new Object[f1+f2][c1+c2];
int c=0,f=0;
if(c1==c2)
{

for(int i=0;i< (f1);i++)
{

for(int j=0;j< (c1);j++)
{
m3[i][j]=m1[i][j];
}
c++;
}
for(int i=f1;i< (f1+f2);i++)
{

for(int j=0;j< (c1);j++)
{
//System.out.println("M3["+i+"]["+j+"]:m2["+f+"]["+j+"]");
m3[i][j]=m2[f][j];
}
f++;
}
imprimir(m3);

}else if(f1==f2)
{
for(int i=0;i< (f1);i++)
{

for(int j=0;j< (c1);j++)
{
m3[i][j]=m1[i][j];
}
c++;
}
for(int i=0;i< (f1);i++)
{

for(int j=c1;j< (c1+c2);j++)
{
//System.out.println("M3["+i+"]["+j+"]:m2["+f+"]["+j+"]");
m3[i][j]=m2[i][f];
f++;
}
f=0;
}

}else{
System.out.println("No se pueden unir estas matrices de manera logica");
}
imprimir(m3);

}
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;
}
public matrices()
{

}
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("Union de A*B:");
union(m1,m2);

}

}

[/java]

0 comentarios :