Matriz Simetica

Autor: Daniela Muñoz Muñoz
Competencia: Trabajo en equipo. (Nivel 2)
Palabras Clave: Programación, Java, Netbeans.

Descripción de la Actividad: A continuación les daré a conocer mi grata experiencia como estudiante de primer año de ingeniería civil en informática, en uno de mis laboratorios utilizando arreglos en el programa NetBeans.
El propósito del laboratorio era: crear un programa en el cual el usuario deba ingresar los valores de las filas y las columnas, para rellenar  una matriz, a continuación el programa analizara si los datos ingresados por el usuario,corresponde a una matriz simétrica o no.

Solución
La solución al problema es analizar la entrada y salida de los datos ingresados, dar a conocer ejemplos que haran mas fácil el desarrollo del código, diagrama de flujo el cual nos dará a conocer la secuencia que se debe seguir en el código  y como solución final el código fuente en todo su contexto.

Entrada: 
-Cantidad: 1 Matriz. 
-Tipo: real. 
-Limitación: valores internos positivos.

Salida:
-Cantidad: 1 String. 
-Tipo: String.

Diagrama de Flujo





Ejemplo:

Ingrese el número de Filas de la matriz (Enteros Positivos): 3
Ingrese el número de Columnas de la matriz (Enteros Positivos): 3
Ingrese el valor de la posición [0][0]:1
Ingrese el valor de la posición [0][1]:2
Ingrese el valor de la posición [0][2]:3
Ingrese el valor de la posición [1][0]:2
Ingrese el valor de la posición [1][1]:5
Ingrese el valor de la posición [1][2]: 4
Ingrese el valor de la posición [2][0]:3
Ingrese el valor de la posición [2][1]:4
Ingrese el valor de la posición [2][2]:6

La matriz es simétrica




CÓDIGO:

/*
 *
 * Este programa en java, pide una matriz al usuario
 * y luego con esta verifica si es simetrica o no
 * mostrando por pantalla dicho resultado.
 *
 *
 */
 package MatrizSimetrica;
 import java.util.Scanner;
 /**
 * Realizado por:
* Daniela Muñoz
 * Patricio Bello
 * Javier Herrera
 */
 public class MatrizSimetrica {
 public static void main(String[] args) {

 int FilasMatriz;
 int ColumnasMatriz;

 Scanner Usuario = new Scanner (System.in);
 System.out.print("Ingrese el numero de Filas de la Matriz (Enteros Positivos) = ");
FilasMatriz= Usuario.nextInt();

System.out.print("Ingrese el numero de Columnas de la Matriz (Enteros Positivos) = ");
ColumnasMatriz= Usuario.nextInt();

System.out.println(" ");//Impresion de un espacio para mantener orden

int matriz [][]= new int[FilasMatriz][ColumnasMatriz];

for(int fila=0;fila<matriz.length;fila++)
 { for(int columna=0;columna<ColumnasMatriz;columna++)
 {
 System.out.print("Ingrese el valor de la posicion ["+fila+"]["+columna+"] = ");
 matriz[fila][columna]= Usuario.nextInt();
}
 }
 System.out.println(" "); //Impresion de un espacio para mantener orden

 boolean simetrica = true;
 for(int i = 0; simetrica; i++)
 {
 for(int j = 0; j < matriz.length; j++)
 {
 if(matriz[i][j] == matriz[j][i])
{
 if(i == matriz.length-1 && j == matriz.length-1)
 {
System.out.println("La matriz es simetrica");
simetrica = false;
 }
}
 else
 {
 System.out.println("No es simetrica porque los valor de ["+i+"]"+"["+j+"]= "+matriz[i][j]+" y "+"["+j+"]"+"["+i+"]= "+matriz[j][i]);
 simetrica = false;
}
}
}

 }
}



Reflexión
Este blog representa amplia-mente el trabajo de equipo que se puede llegar a tener, al realizar un programa, ya que cada una de las partes que compone un trabajo ya sea, analizar la entrada y salida de los datos, los diagramas de flujo, los cuales nos llevan a tener una visión mas amplia del problema y el desarrollo del código fuente, el cual nos da la oportunidad de probar distintos tipos y puntos de vista que se puede llegar a desarrollar un mismo problema y analizar la forma adecuada para el usuario a la hora de ejecutar la aplicación, pueda entenderla claramente.