You are on page 1of 3

import java.util.

*;

public class MatrizPrincipal {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


System.out.println("Ingrese de cuantas filas sera la matriz: ");
int a = sc.nextInt();
System.out.println("Ingrese el numero de columnas: ");
int b = sc.nextInt();
// creamos la matriz con sus valores
int matriz[][] = new int[a][b];
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
System.out.println("Ingrese los valores");
int num = sc.nextInt();
matriz[i][j] = num;
}
}

//para hallar si es reflexiva e irreflexiva


for (int i = 0; i < a; i++) {
System.out.println("\n");
for (int j = 0; j < b; j++) {
System.out.print(matriz[i][j] + "\t");
}
}
int k = 0;
int q = 0;
System.out.println("");
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (i == j) {
if (matriz[i][j] == 1) {
k++;
}
if (matriz[i][j] == 0) {
q++;
}
}
}
}

if (k == a) {
System.out.println("Si es reflexiva");
} else {
System.out.println("No es reflexiva");
}
if (q == a) {
System.out.println("Es irreflexiva");
} else {
System.out.println("no es irreflexiva");
}

// hallar si es simetrica
int g = 0;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (i != j) {
if (matriz[i][j] == matriz[j][i]) {
g++;
}
}
}
}
if (g == (a * (a - 1))) {
System.out.println("Es Simetrica");
} else {
System.out.println("No es simetrica");
}

// hallar si es asimetrica
int h = 0, z = 0, x = 0;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {

if (matriz[i][i] == 1 ) {

h++;
}
else{
if(matriz[i][j]==1 && matriz[j][i]==1){

z++;
}else{

x++;
}
}
}
}
if(h>0){
System.out.println("No es Asimetrica");
}
else if(z>0){
System.out.println("No es Asimetrica");
}
else if(x>0){
System.out.println("Si es Asimetrica");
}

// Para saber si es Antisimetrica


int t = 0;

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


for (int j = 0; j < b; j++) {

if (matriz[i][j] != matriz[j][i]) {
t++;
}
}
}
if (t < 0) {
System.out.println("Es Antisimetrica");
} else {
System.out.println("No es Antisimetrica");
}

// Transitiva o no
int l = 0;
boolean transitiva = true;
int matrizRESULTANTE[][] = new int[a][b];
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
for (int y = 0; y < b; y++) {
matrizRESULTANTE[i][j] += matriz[i][y] * matriz[y][j];
if ((matrizRESULTANTE[i][j]) >= 1) {
matrizRESULTANTE[i][j] = 1;
}
}
}
}

int matrizRS[][] = new int[a][b];


for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
matrizRS[i][j] = matriz[i][j] + matrizRESULTANTE[i][j];
if ((matrizRS[i][j]) >= 1) {
matrizRS[i][j] = 1;
}
}
}
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (matriz[i][j] == matrizRS[i][j]) {
l = l + 1;
} else {
l = 0;
}
}
}
if (l == (a * b)) {
System.out.println("Si es Transitiva");

transitiva = true;
} else {
System.out.println("No es transitiva");
}
}
}

You might also like