Desarrolle un programa orientado a objetos para realizar la suma y multiplicacion de matrices.
Suma de matrices
Producto de matrices
Respuesta: Primero creamos la clase "matriz.java" que nos permite el manejo de los metodos asi como la creacion de nuestra matriz, ya que el problema no especifica mas detalles se trabajara sobre la base de una matriz cuadrada nxn.
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class matriz {
public int n; // dimension de la matriz
private double[][] x; //array bidimensional
//crea una matriz de "n" elementos con ceros
public matriz(int n) {
this.n = n;
x = new double[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
x[i][j]=0.0;
}
}
}
//crea una matriz con un array bidimensional pasado como parametro
public matriz(double[][] x) {
this.x=x;
n=x.length;
}
//muestra en pantalla a la matriz
public String mostrar(){
String texto="\n";
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
// tabulador "\t" y se limita el numero de decimales a tres
texto+="\t "+(double)Math.round(1000*x[i][j])/1000;
}
//cuando se alcanza el final de la linea se inserta un retorno de carro
texto+="\n";
}
texto+="\n";
return texto;
}
public matriz suma(matriz a, matriz b){
matriz resultado=new matriz(a.n);
for(int i=0; i<a.n; i++){
for(int j=0; j<a.n; j++){
resultado.x[i][j]=a.x[i][j]+b.x[i][j];
}
}
return resultado;
}
public matriz producto(matriz a, matriz b){
matriz resultado=new matriz(a.n);
for(int i=0; i<a.n; i++){
for(int j=0; j<a.n; j++){
for(int k=0; k<a.n; k++){
resultado.x[i][j]+=a.x[i][k]*b.x[k][j];
}
}
}
return resultado;
}
}
La clase matriz.java esta compuesta por dos constructores matriz(int n) y matriz(double[][] x), la primera construye una matriz de n-elementos los cuales inicializa en cero "0", el segundo constructor crea una matriz tomando como elementos los pasados por un array bidimensional.
Ademas la clase cuenta con el metodo mostrar(), la cual devuelve un String previamente formateada. Obviamente la clase tambien cuenta con los metodos suma(matriz a, matriz b) y producto(matriz a, matriz b), que devuelven como resultado una matriz.
Para ejecutar el programa:
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class Main {
public static void main(String[] args) {
double[][] a1={{2, 0, 1},{3,0,0},{5,1,1}};
matriz a=new matriz(a1);
double[][] a2={{1, 0, 1},{1,2,1},{1,1,0}};
matriz b=new matriz(a2);
System.out.println("Matriz A: " + a.mostrar());
System.out.println("Matriz B: " + b.mostrar());
matriz re = a.suma(a, b);
System.out.println("Suma "+re.mostrar());
matriz re2 = a.producto(a, b);
System.out.println("Producto "+re2.mostrar());
}
}
El resultado:
amigo no entiendo algo me dice un error en la parte de la multiplicacion mas especificanmente aki
ResponderEliminarmatriz resultado=new matriz(a.n);
no sabe porke gracias
Hola amigo, quiero preguntar algo, si la calculadora tiene interfaz corre menos rápido que una sin la interfaz?
ResponderEliminar