Suma de matrices en Java
Programa Java para sumar dos matrices de número enteros.
A partir de dos matrices A y B el programa obtendrá una matriz C que contendrá la suma de las dos matrices.
Las matrices A y B que vamos a sumar se crean dentro del programa. El número de filas y columnas de A y B se introduce por teclado, así como los valores que contienen.
La suma de dos matrices se realiza de la siguiente forma:
La matriz suma de dos matrices A y B se obtiene sumando los elementos de A y B que se encuentran en la misma posición. Por ejemplo, si las matrices A y B son estas:
Matriz A 2 1 3 Matriz B 1 5 2 4 0 8 3 1 7
La matriz C, suma de A + B será esta:
Matriz C 3 6 5 7 1 15
Solución
Vamos a escribir dos versiones del programa para realizar la suma de matrices:
- Sin utilizar métodos
- Utilizando métodos
Suma de matrices en Java sin utilizar métodos
En esta primera versión del programam para sumar matrices escribiremos todo el código dentro del método main
import java.util.Scanner;
public class SumarDosMatrices {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int filas, columnas;
//lectura del número de filas y columnas de las matrices
do {
System.out.print("Número de filas: ");
filas = sc.nextInt();
} while (filas < 1);
do {
System.out.print("Número de columnas: ");
columnas = sc.nextInt();
} while (columnas < 1);
//crear las matrices A, B y C
int[][] A = new int[filas][columnas];
int[][] B = new int[filas][columnas];
int[][] C = new int[filas][columnas];
//Introducir los datos en las matrices A y B
System.out.println("matriz A:");
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < A[i].length; j++) {
System.out.print("Elemento[" + i + "][" + j + "] = ");
A[i][j] = sc.nextInt();
}
}
System.out.println("matriz B:");
for (int i = 0; i < B.length; i++) {
for (int j = 0; j < B[i].length; j++) {
System.out.print("Elemento[" + i + "][" + j + "] = ");
B[i][j] = sc.nextInt();
}
}
//obtener la matriz C como suma de las matrices A y B
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < A[i].length; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
//mostrar por pantalla las matrices A y B
System.out.println("matriz A:");
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < A[i].length; j++) {
System.out.printf("%3d", A[i][j]);
}
System.out.println();
}
System.out.println("\nmatriz B:");
for (int i = 0; i < B.length; i++) {
for (int j = 0; j < B[i].length; j++) {
System.out.printf("%3d", B[i][j]);
}
System.out.println();
}
//mostrar la matriz suma de A + B
System.out.println("\nmatriz Suma:");
for (int i = 0; i < C.length; i++) {
for (int j = 0; j < C[i].length; j++) {
System.out.printf("%3d", C[i][j]);
}
System.out.println();
}
}
}
Suma de matrices en Java utilizando métodos
En esta segunda versión del programa para sumar matrices realizaremos el programa utilizando los siguientes métodos:
- Un método para leer un número entero. Este método lee un número entero por teclado y lo devuelve.
- Un método para crear una matriz. El método recibe el número de filas y columnas y crea y devuelve una matriz de ese tamaño.
- Un método para llenar una matriz con números enteros. El método recibe la matriz y asigna a cada elemento un valor entero que se introduce por teclado.
- Un método para mostrar una matriz por pantalla. El método recibe la matriz a mostrar.
- Un método que realiza la suma de dos matrices. El método recibe las dos matrices a sumar y devuelve una matriz con el resultado de la suma de ambas matrices.
import java.util.Scanner;
public class SumarMatricesJava {
public static void main(String[] args) {
int filas, columnas;
//lectura del número de filas y columnas
do {
System.out.print("Número de filas: ");
filas = leerEntero();
} while (filas < 1);
do {
System.out.print("Número de columnas: ");
columnas = leerEntero();
} while (columnas < 1);
//crear las matrices A y B
int[][] A = crearMatriz(filas, columnas);
int[][] B = crearMatriz(filas, columnas);
//Introducir datos en matrices
System.out.println("matriz A:");
llenarMatriz(A);
System.out.println("matriz B:");
llenarMatriz(B);
//crear matriz C como suma de A + B
int[][] C = sumarMatrices(A, B);
//mostrar resultados
System.out.println("matriz A:");
mostrarMatriz(A);
System.out.println("\nmatriz B:");
mostrarMatriz(B);
System.out.println("\nmatriz Suma:");
mostrarMatriz(C);
}
//método para crear una matriz
public static int[][] crearMatriz(int f, int c) {
int[][] M = new int[f][c];
return M;
}
//nmétodo para leer un número entero por teclado
public static int leerEntero() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
return n;
}
//método para llenar una matriz con números enteros introducidos por teclado
public static void llenarMatriz(int[][] M) {
for (int i = 0; i < M.length; i++) {
for (int j = 0; j < M[i].length; j++) {
System.out.print("Elemento[" + i + "][" + j + "] = ");
M[i][j] = leerEntero();
}
}
}
//método para mostrar una matriz por pantalla
public static void mostrarMatriz(int[][] M) {
for (int i = 0; i < M.length; i++) {
for (int j = 0; j < M[i].length; j++) {
System.out.printf("%3d", M[i][j]);
}
System.out.println();
}
}
//método para sumar dos matrices
public static int[][] sumarMatrices(int[][] a, int[][] b) {
int[][] c = crearMatriz(a.length, a[0].length);
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
c[i][j] = a[i][j] + b[i][j];
}
}
return c;
}
}
No hay comentarios:
Publicar un comentario