Ejercicios de Matrices
This commit is contained in:
5
.idea/misc.xml
generated
5
.idea/misc.xml
generated
@@ -1,5 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
|
||||
177
src/capitulo04/bloque06/Matrices.java
Normal file
177
src/capitulo04/bloque06/Matrices.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user