Ejercicios de Matrices

This commit is contained in:
2024-11-03 17:34:20 +01:00
parent b8c291257c
commit fbfad26288
2 changed files with 182 additions and 0 deletions

5
.idea/misc.xml generated
View File

@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="JavadocGenerationManager">
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/Downloads/javadoc" />
<option name="OPTION_INCLUDE_LIBS" value="true" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="homebrew-22" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="homebrew-22" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>

View File

@@ -0,0 +1,177 @@
package capitulo04.bloque06;
import static capitulo04.utils.Utils.*;
public class Matrices {
public static void main(String[] args) {
int[][] matrizVacia = new int[5][5];
mostrarMatriz(rellenarMatriz(matrizVacia));
int[][] matrizRellena = new int[][]{
{0, 6, 7, 2, 3},
{2, 0, 7, 8, 3},
{2, 6, 0, 6, 3},
{2, 6, 7, 0, 3},
{2, 6, 7, 1, 0}};
System.out.println(matrizEsPositiva(matrizRellena));
System.out.println(matrizEsDiagonal(matrizRellena));
System.out.println(matrizEsTriangularSuperior(matrizRellena));
System.out.println(matrizEsDispersa(matrizRellena));
mostrarArrayNums(construirArrayDeMatriz(matrizRellena));
System.out.println(matrizEsSimetrica(matrizRellena));
mostrarMatriz(matrizTraspuesta(matrizRellena));
mostrarMatriz(matrizOpuesta(matrizRellena));
mostrarMatriz(matrizSinFila(matrizRellena, solicitarIntScanner("Introduzca la fila a eliminar de la matriz: ")));
}
public static int[][] rellenarMatriz(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
matriz[i][j] = (int) generarNumAleatorio(100);
}
}
return matriz;
}
public static void mostrarMatriz(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j] + "\t");
}
System.out.println();
}
}
public static boolean matrizEsPositiva(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (matriz[i][j] < 0) {
return false;
}
}
}
return true;
}
public static boolean matrizEsDiagonal(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i != j && matriz[i][j] != 0) {
return false;
}
}
}
return true;
}
public static boolean matrizEsTriangularSuperior(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i > j && matriz[i][j] != 0) {
return false;
}
}
}
return true;
}
public static boolean matrizEsDispersa(int[][] matriz) {
boolean esDispersa = true;
for (int i = 0; i < matriz.length; i++) {
boolean filaTieneCero = false;
for (int j = 0; j < matriz[i].length; j++) {
if (matriz[i][j] == 0) {
filaTieneCero = true;
break;
}
}
if (!filaTieneCero) {
esDispersa = false;
break;
}
}
if (esDispersa) {
for (int j = 0; j < matriz[0].length; j++) {
boolean columnaTieneCero = false;
for (int i = 0; i < matriz.length; i++) {
if (matriz[i][j] == 0) {
columnaTieneCero = true;
break;
}
}
if (!columnaTieneCero) {
esDispersa = false;
break;
}
}
}
return esDispersa;
}
public static int[] construirArrayDeMatriz(int[][] matriz) {
int elementosMatriz = 0;
for (int i = 0; i < matriz.length; i++) {
elementosMatriz += matriz[i].length;
}
int[] array = new int[elementosMatriz];
int indiceArray = 0;
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
array[indiceArray] = matriz[i][j];
indiceArray++;
}
}
return array;
}
public static boolean matrizEsSimetrica(int[][] matriz) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (matriz[i][j] != matriz[j][i]) {
return false;
}
}
}
return true;
}
public static int[][] matrizTraspuesta(int[][] matriz) {
int[][] matrizTraspuesta = new int[matriz[0].length][matriz.length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
matrizTraspuesta[j][i] = matriz[i][j];
}
}
return matrizTraspuesta;
}
public static int[][] matrizOpuesta(int[][] matriz) {
int[][] matrizOpuesta = new int[matriz.length][matriz[0].length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
matrizOpuesta[i][j] = -matriz[i][j];
}
}
return matrizOpuesta;
}
public static int[][] matrizSinFila(int[][] matriz, int fila) {
int[][] matrizSinFila = new int[matriz.length - 1][matriz[0].length];
int indiceFila = 0;
for (int i = 0; i < matriz.length; i++) {
if (i != fila - 1) {
for (int j = 0; j < matriz[i].length; j++) {
matrizSinFila[indiceFila][j] = matriz[i][j];
}
indiceFila++;
}
}
return matrizSinFila;
}
}