SlideShare una empresa de Scribd logo
MATRICES EN JAVA
Francisco Velasquez 13:35
Una matriz es una estructura de datos en la que podemos almacenar una cierta cantidad de datos los
cuales deben ser del mismo tipo(int, float, string...) posee dos subíndice, el primero representa el
número de filas y el segundo representa la cantidad de columnas. La sintaxis para la declaración
sería la siguiente. int[][] matriz;donde el tipo de dato puede ser el que nosotros deseemos, en éste
caso int.
Ejemplo:
Matriz 2 x 3 ( 2 filas, 3 columnas).
columna 1 columna 2 columna 3
fila 1 4 5 9
fila 2 11 1 22
Cada elemento de la matriz posee una cierta posición o ubicación. Ejemplo, el dato 9 se encuentra en
la fila 1 columna 3.
IMPORTANTE:
Hay que tener en cuenta que en matemática (Álgebra lineal) empezamos a contar las filas y
columnas a partir de 1. En programación para referirnos al dato 9 sería la fila 0 y la columna 2, dado
que empezamos a contar a partir de la posición [0][0].
Ejemplo:
Matriz 2 x 3 ( 2 filas, 3 columnas).
columna 0 columna 1 columna 2
fila 0 4 5 9
fila 1 11 1 22
Si queremos mostrar en pantalla el dato 9 la sintaxis sería la siguiente:
System.out.println(matriz[0][2]);
Vamos a ver algunas formas de manejar las matrices en java:
"Desarrollar un programa en el cual se ingresen datos de tipo entero (int) en una matriz de orden m x
n donde m es el numero de filas y n el numero de columnas (el numero de filas y columnas debe
ser ingresado por el usuario). Además, imprimir: los componentes o datos de la primera fila de la
matriz, los de la ultima fila, los de la primera columna, los de la diagonal principal (solo si es una
matriz cuadrada), el mayor de todos los datos enteros y la fila y columna a las que pertenece, los
valores que se encuentran en los vertices de la matriz y todos los datos o componentes de la matriz."
Matriz.java
1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
public class Matriz {
private Scanner teclado;
private int[][] matriz;
private int filas;
private int columnas;
public void cargar(){
teclado = new Scanner(System.in);
System.out.println("Ingrese la cantidad de filas de la matriz");
filas = teclado.nextInt();
System.out.println("Ingrese la cantidad de columnas de la matriz");
columnas = teclado.nextInt();
matriz = new int[filas][columnas];
for(int i=0; i <filas; i++){
for(int j=0; j<columnas;j++){
System.out.println("Ingrese componente de la matriz");
matriz[i][j] = teclado.nextInt();
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
}
}
}
public void PrimeraFila(){
System.out.println("Primeral Fila:");
for(int j=0; j < columnas; j++){
System.out.println(matriz[0][j]); // No se presenta problemas acá ya que la matriz siempre tendra al menos un componen
}
}
public void UltimaFila(){
System.out.println("Ultima Fila:");
for(int j=0; j < columnas; j++){
System.out.println(matriz[filas - 1][j]); // filas - 1 es el valor de la última fila. Ejemplo: una matriz de 2 x 2 la la ultima f
}
}
public void PrimeraColumna(){
System.out.println("Primeral Columna:");
for(int i=0; i < filas; i++){
System.out.println(matriz[i][0]); //No se presenta problemas acá ya que la matriz siempre tendra al menos un componen
}
}
public void DiagonalPrincipal(){
System.out.println("Diagonal Principal:");
if(filas == columnas){
for(int D= 0; D <matriz.length; D++){ // El metodo .length retorna la cantidad de filas de la matriz.
System.out.println(matriz[D][D]);
}
}
else{
System.out.println("La matriz ingresada no es cuadrada, por lo tanto no tiene diagonal principal.");
}
}
public void MayorElemento(){
int mayorE = matriz[0][0]; //Declaramos la variable que va a almacenar al mayor elmento y lo inicializamos e la posició
int filaE = 0;
int columnaE = 0;
for(int i = 0; i < filas; i++){
for(int j = 0; j < columnas; j++){
if(matriz[i][j] > mayorE){
mayorE = matriz[i][j];
filaE = i + 1; // La fila en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos dice que el
(0,0) de ser este el caso.
columnaE = j + 1; // La columna en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos d
elemento es el (0,0) de ser este el caso.
}
}
}
System.out.println("El mayor elemento dentro de la matriz es: " + mayorE);
System.out.println("Se encuentra en la fila numero: " + filaE + " y en la columna numero: " + columnaE);
}
public void Vertices(){
35
36
37
38
39
40
41
42
43
44
45
46
System.out.println("Vertices de la matriz: ");
System.out.println("Valor del vertice superior izquierdo: " + matriz[0][0]);
System.out.println("Valor del vertice superior derecho: " + matriz[0][columnas - 1]); //columnas menos 1 ya que si decim
menor a la cantidad de columnas que ingresamos ( j < columnas).
System.out.println("Valor del vertice inferior izquierdo: " + matriz[filas - 1][0]); //filas menos 1 ya que si decimos que la
cantidad de filas que ingresamos ( i < filas).
System.out.println("Valor del vertice inferior derecho: " + matriz[filas - 1][columnas - 1]); // Similar a las dos anteriores
}
public void MatrizCompleta(){
System.out.println("Matriz Completa:");
for(int i= 0; i <filas; i++){
for(int j=0; j < columnas; j++){
System.out.println(matriz[i][j]);
}
}
}
public static void main(String[] ar){
Matriz mat = new Matriz();
mat.cargar();
mat.PrimeraFila();
mat.UltimaFila();
mat.PrimeraColumna();
mat.DiagonalPrincipal();
mat.MayorElemento();
mat.MatrizCompleta();
}
}
Explicación:
private int[][] matriz;
private int filas;
private int columnas;
Declaramos la matriz y las variables "filas" y "columnas" las cuales almacenarán el valor que les
demos.
System.out.println("Ingrese la cantidad de filas de la matriz");
filas = teclado.nextInt();
System.out.println("Ingrese la cantidad de columnas de la matriz");
columnas = teclado.nextInt();
matriz = new int[filas][columnas];
Solicitamos al usuario que ingrese la cantidad de filas y columnas y luego las almacenamos en las
respectivas variables. Luego, creamos la matriz dándole al primer subíndice el valor ingresado para
las filas y al segundo subíndice el valor ingresado para las columnas.
for(int i=0; i <filas; i++){
for(int j=0; j<columnas;j++){
System.out.println("Ingrese componente de la matriz");
matriz[i][j] = teclado.nextInt();
}
}
Para ingresar los elementos, componentes o datos de la matriz, usamos un ciclo for dentro de otro
ciclo for dado que la matriz puede tener varias filas y cada fila puede tener varias columnas.
public void PrimeraFila(){
System.out.println("Primeral Fila:");
for(int j=0; j < columnas; j++){
System.out.println(matriz[0][j]); // No se presenta problemas acá ya que la matriz siempre tendra al
menos un componente, y este estaría en la posición [0][0].
}
}
Para imprimir la primera fila de nuestra matriz sabemos que la primera fila sería el subíndice 0 y que
ésta puede tener varias columnas, por ello usamos un for que recorra todas las columnas o el
subíndice j, donde j tomara el valor desde 0 hasta la cantidad de columnas que contenga la matriz.
public void UltimaFila(){
System.out.println("Ultima Fila:");
for(int j=0; j < columnas; j++){
System.out.println(matriz[filas - 1][j]);
}
}
Para imprimir la ultima fila de nuestra matriz sería: filas - 1 debido a que si la matriz contiene dos
filas para referirnos a la segunda fila ésta sería el subíndice [1] y no el 2. Ejemplo: una matriz de 2 x
2 la ultima fila sería la 1 ya que empezamos desde 0, por lo tanto 2- 1 = 1.
public void PrimeraColumna(){
System.out.println("Primeral Columna:");
for(int i=0; i < filas; i++){
System.out.println(matriz[i][0]); //No se presenta problemas acá ya que la matriz siempre tendra al
menos un componente, y este estaría en la posición [0][0].
}
}
Similar al método usado para la primera fila. El subíndice para la primera columna sería [0].
matriz[i][0].
public void DiagonalPrincipal(){
System.out.println("Diagonal Principal:");
if(filas == columnas){
for(int D= 0; D <matriz.length; D++){ // El metodo .length retorna la cantidad de filas de la matriz.
System.out.println(matriz[D][D]);
}
}
else{
System.out.println("La matriz ingresada no es cuadrada, por lo tanto no tiene diagonal principal.");
}
}
Los elementos de la diagonal principal de una matriz son todos los que se encuentran en los
subíndices i y j donde i = j .
Digamos que i = j = D. Entonces para referirnos a los elementos de la diagonal principal
sería matriz[D][D]
Si tenemos una matriz de 3x3 (3 filas, 3 columnas) los elementos de la diagonal principal serían:
matriz[0][0], matriz[1][1], matriz[2][2]
Es IMPORTANTE tener presente que solo las matrices cuadradas poseen diagonal principal.
Entiendase matriz cuadrada como la matriz que posee la misma cantidad de filas y columnas
(matrices 2x2, 3x3, 4x4... nxn). Es por esto que usamos un if para imprimir los elementos solo
si filas == columnas, de no ser ésto así arrojará un mensaje de error diciendo que la matriz ingresada
no es una matriz cuadrada.
Utilizamos el método .length el cual retorna la cantidad de filas de nuestra matriz, esto le dirá
al ciclo forcuantas veces se debe repetir.
public void MayorElemento(){
int mayorE = matriz[0][0]; //Declaramos la variable que va a almacenar al mayor elmento y lo
inicializamos e la posición [0][0].
int filaE = 0;
int columnaE = 0;
for(int i = 0; i < filas; i++){
for(int j = 0; j < columnas; j++){
if(matriz[i][j] > mayorE){
mayorE = matriz[i][j];
filaE = i + 1; // La fila en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices
nos dice que el primer elemento de una matriz es el [1,1] y si imprimimos sin sumar 1 entonces
arrojaríamos como resultado que el primer elemento es el [0][0]. de ser este el caso.
columnaE = j + 1; // La columna en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de
matrices nos dice que el primer elemento de una matriz es el (1,1) y si imprimimos sin sumar 1 entonces
arrojaríamos como resultado que el primer elemento es el [0][0]. de ser este el caso.
}
}
}
System.out.println("El mayor elemento dentro de la matriz es: " + mayorE);
System.out.println("Se encuentra en la fila numero: " + filaE + " y en la columna numero: " +
columnaE);
}
Declaramos la variable mayorE y la inicializamos con el valor del elemento el cual se encuentra en
la posición [0][0]. También las variables filaE y columnaE para almacenar la fila y columna en la
que se encuentre el mayor elemento. Utilizamos un ciclo for dentro de otro ciclo for para ir
comparando cada elemento o dato. Hay que tener en cuenta que al momento de imprimir la fila o
columna en la que se encuentra el dato debemos hacerlo de la siguiente manera: filaE = i + 1; Si se
encuentra en la fila 0 diremos por pantalla que se encuentra en la fila 1 o primera fila.
public void Vertices(){
System.out.println("Vertices de la matriz: ");
System.out.println("Valor del vertice superior izquierdo: " + matriz[0][0]);
System.out.println("Valor del vertice superior derecho: " + matriz[0][columnas - 1]);
System.out.println("Valor del vertice inferior izquierdo: " + matriz[filas - 1][0]);
System.out.println("Valor del vertice inferior derecho: " + matriz[filas - 1][columnas - 1]);
}
Para el vértice superior izquierdo: columnas menos 1 ya que si decimos que la matriz tiene 3
columnas empezaremos a agregar valores desde la posicion 0 hasta la 2 dado que el for se repite
mientras j sea menor a la cantidad de columnas que ingresamos ( j < columnas).
Para el vértice inferior izquierdo: filas menos 1 ya que si decimos que la matriz tiene 4 filas
empezaremos a agregar valores desde la posicion 0 hasta la 3 dado que el for se repite mientras 1 sea
menor a la cantidad de filas que ingresamos ( i < filas).
Para el vértice inferior derecho: Similar a las dos vértices anteriores.
Finalmente se realiza la salida:
Velásquez, F. M. (2013). Matrices en Java. Consultado el 22 de marzo de 2015, de
http://unestudiantedeinformatica.blogspot.com/2013/12/matrices-en-java.html

Más contenido relacionado

La actualidad más candente

Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
NANO-06
 
SQL-Server Database.pdf
SQL-Server Database.pdfSQL-Server Database.pdf
SQL-Server Database.pdf
ShehryarSH1
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
Don Augusto
 
Normalizacion de Base de datos,
Normalizacion de Base de datos, Normalizacion de Base de datos,
Normalizacion de Base de datos,
Erivan Martinez Ovando
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
J̶e̶s̶u̶s̶ B̶e̶r̶r̶o̶c̶a̶l̶
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en Pseint
MonjeOneble
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Jsrfs Montemayor
 
Base de datos de Cafeteria en MARIADB
Base de datos de Cafeteria en MARIADBBase de datos de Cafeteria en MARIADB
Base de datos de Cafeteria en MARIADB
MichelleCarrillo152
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
erwin_alexander
 
Tad Colas
Tad ColasTad Colas
Los Componentes Internos del Router
Los Componentes Internos del RouterLos Componentes Internos del Router
Los Componentes Internos del RouterCristiān Villegās
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
DĴäîřo Lêmä
 
Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...
travesuras79
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesJosé Enrique Alvarez Estrada
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicMaybel_Lopez
 
Algoritmo para el juego del gato
Algoritmo para el juego del gatoAlgoritmo para el juego del gato
Algoritmo para el juego del gato
EdwinVega49
 
Trigger in mysql
Trigger in mysqlTrigger in mysql
Trigger in mysql
Prof.Nilesh Magar
 

La actualidad más candente (20)

Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
SQL-Server Database.pdf
SQL-Server Database.pdfSQL-Server Database.pdf
SQL-Server Database.pdf
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Normalizacion de Base de datos,
Normalizacion de Base de datos, Normalizacion de Base de datos,
Normalizacion de Base de datos,
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en Pseint
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Base de datos de Cafeteria en MARIADB
Base de datos de Cafeteria en MARIADBBase de datos de Cafeteria en MARIADB
Base de datos de Cafeteria en MARIADB
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Tad Colas
Tad ColasTad Colas
Tad Colas
 
Los Componentes Internos del Router
Los Componentes Internos del RouterLos Componentes Internos del Router
Los Componentes Internos del Router
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
 
Algoritmo para el juego del gato
Algoritmo para el juego del gatoAlgoritmo para el juego del gato
Algoritmo para el juego del gato
 
Trigger in mysql
Trigger in mysqlTrigger in mysql
Trigger in mysql
 
Integridad en las bases de datos
Integridad en las bases de datosIntegridad en las bases de datos
Integridad en las bases de datos
 

Similar a Matrices en java

Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matricesAriannaYadiraT
 
Matrices
MatricesMatrices
Matrices
Boris Salleg
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)luis freddy
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gioRobert Wolf
 
Arreglos
ArreglosArreglos
Arreglos
junior zamora
 
Arreglos
ArreglosArreglos
Arreglos
junior zamora
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dimeluis freddy
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)luis freddy
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con javadiegocastro1234
 
Resultset
ResultsetResultset
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Gustavo Macias
 
6724640 matrices-java
6724640 matrices-java6724640 matrices-java
6724640 matrices-javabeqa_gothic
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
Diego Andrés Alvarez Marín
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Gustavo Macias
 
Xxxxxxxxxxxxxx
XxxxxxxxxxxxxxXxxxxxxxxxxxxx
Xxxxxxxxxxxxxx
Joselyn Aguirre
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
Joselyn Aguirre
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
elidetjc
 
Evaluacion2
Evaluacion2Evaluacion2
Evaluacion2
Any Saula
 

Similar a Matrices en java (20)

Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Matrices
MatricesMatrices
Matrices
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gio
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Resultset
ResultsetResultset
Resultset
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
6724640 matrices-java
6724640 matrices-java6724640 matrices-java
6724640 matrices-java
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Xxxxxxxxxxxxxx
XxxxxxxxxxxxxxXxxxxxxxxxxxxx
Xxxxxxxxxxxxxx
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
 
Tutorial de matrices c#
Tutorial de matrices c#Tutorial de matrices c#
Tutorial de matrices c#
 
Evaluacion2
Evaluacion2Evaluacion2
Evaluacion2
 

Último

experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
cuentauniversidad34
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
lasocharfuelan123
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
Federico Toledo
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
RobertSotilLujn
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
oscartorres960914
 

Último (10)

experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 

Matrices en java

  • 1. MATRICES EN JAVA Francisco Velasquez 13:35 Una matriz es una estructura de datos en la que podemos almacenar una cierta cantidad de datos los cuales deben ser del mismo tipo(int, float, string...) posee dos subíndice, el primero representa el número de filas y el segundo representa la cantidad de columnas. La sintaxis para la declaración sería la siguiente. int[][] matriz;donde el tipo de dato puede ser el que nosotros deseemos, en éste caso int. Ejemplo: Matriz 2 x 3 ( 2 filas, 3 columnas). columna 1 columna 2 columna 3 fila 1 4 5 9 fila 2 11 1 22 Cada elemento de la matriz posee una cierta posición o ubicación. Ejemplo, el dato 9 se encuentra en la fila 1 columna 3. IMPORTANTE: Hay que tener en cuenta que en matemática (Álgebra lineal) empezamos a contar las filas y columnas a partir de 1. En programación para referirnos al dato 9 sería la fila 0 y la columna 2, dado que empezamos a contar a partir de la posición [0][0].
  • 2. Ejemplo: Matriz 2 x 3 ( 2 filas, 3 columnas). columna 0 columna 1 columna 2 fila 0 4 5 9 fila 1 11 1 22 Si queremos mostrar en pantalla el dato 9 la sintaxis sería la siguiente: System.out.println(matriz[0][2]); Vamos a ver algunas formas de manejar las matrices en java: "Desarrollar un programa en el cual se ingresen datos de tipo entero (int) en una matriz de orden m x n donde m es el numero de filas y n el numero de columnas (el numero de filas y columnas debe ser ingresado por el usuario). Además, imprimir: los componentes o datos de la primera fila de la matriz, los de la ultima fila, los de la primera columna, los de la diagonal principal (solo si es una matriz cuadrada), el mayor de todos los datos enteros y la fila y columna a las que pertenece, los valores que se encuentran en los vertices de la matriz y todos los datos o componentes de la matriz." Matriz.java 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Matriz { private Scanner teclado; private int[][] matriz; private int filas; private int columnas; public void cargar(){ teclado = new Scanner(System.in); System.out.println("Ingrese la cantidad de filas de la matriz"); filas = teclado.nextInt(); System.out.println("Ingrese la cantidad de columnas de la matriz"); columnas = teclado.nextInt(); matriz = new int[filas][columnas]; for(int i=0; i <filas; i++){ for(int j=0; j<columnas;j++){ System.out.println("Ingrese componente de la matriz"); matriz[i][j] = teclado.nextInt();
  • 3. 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 } } } public void PrimeraFila(){ System.out.println("Primeral Fila:"); for(int j=0; j < columnas; j++){ System.out.println(matriz[0][j]); // No se presenta problemas acá ya que la matriz siempre tendra al menos un componen } } public void UltimaFila(){ System.out.println("Ultima Fila:"); for(int j=0; j < columnas; j++){ System.out.println(matriz[filas - 1][j]); // filas - 1 es el valor de la última fila. Ejemplo: una matriz de 2 x 2 la la ultima f } } public void PrimeraColumna(){ System.out.println("Primeral Columna:"); for(int i=0; i < filas; i++){ System.out.println(matriz[i][0]); //No se presenta problemas acá ya que la matriz siempre tendra al menos un componen } } public void DiagonalPrincipal(){ System.out.println("Diagonal Principal:"); if(filas == columnas){ for(int D= 0; D <matriz.length; D++){ // El metodo .length retorna la cantidad de filas de la matriz. System.out.println(matriz[D][D]); } } else{ System.out.println("La matriz ingresada no es cuadrada, por lo tanto no tiene diagonal principal."); } } public void MayorElemento(){ int mayorE = matriz[0][0]; //Declaramos la variable que va a almacenar al mayor elmento y lo inicializamos e la posició int filaE = 0; int columnaE = 0; for(int i = 0; i < filas; i++){ for(int j = 0; j < columnas; j++){ if(matriz[i][j] > mayorE){ mayorE = matriz[i][j]; filaE = i + 1; // La fila en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos dice que el (0,0) de ser este el caso. columnaE = j + 1; // La columna en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos d elemento es el (0,0) de ser este el caso. } } } System.out.println("El mayor elemento dentro de la matriz es: " + mayorE); System.out.println("Se encuentra en la fila numero: " + filaE + " y en la columna numero: " + columnaE); } public void Vertices(){
  • 4. 35 36 37 38 39 40 41 42 43 44 45 46 System.out.println("Vertices de la matriz: "); System.out.println("Valor del vertice superior izquierdo: " + matriz[0][0]); System.out.println("Valor del vertice superior derecho: " + matriz[0][columnas - 1]); //columnas menos 1 ya que si decim menor a la cantidad de columnas que ingresamos ( j < columnas). System.out.println("Valor del vertice inferior izquierdo: " + matriz[filas - 1][0]); //filas menos 1 ya que si decimos que la cantidad de filas que ingresamos ( i < filas). System.out.println("Valor del vertice inferior derecho: " + matriz[filas - 1][columnas - 1]); // Similar a las dos anteriores } public void MatrizCompleta(){ System.out.println("Matriz Completa:"); for(int i= 0; i <filas; i++){ for(int j=0; j < columnas; j++){ System.out.println(matriz[i][j]); } } } public static void main(String[] ar){ Matriz mat = new Matriz(); mat.cargar(); mat.PrimeraFila(); mat.UltimaFila(); mat.PrimeraColumna(); mat.DiagonalPrincipal(); mat.MayorElemento(); mat.MatrizCompleta(); } } Explicación: private int[][] matriz; private int filas; private int columnas; Declaramos la matriz y las variables "filas" y "columnas" las cuales almacenarán el valor que les demos. System.out.println("Ingrese la cantidad de filas de la matriz"); filas = teclado.nextInt(); System.out.println("Ingrese la cantidad de columnas de la matriz"); columnas = teclado.nextInt(); matriz = new int[filas][columnas];
  • 5. Solicitamos al usuario que ingrese la cantidad de filas y columnas y luego las almacenamos en las respectivas variables. Luego, creamos la matriz dándole al primer subíndice el valor ingresado para las filas y al segundo subíndice el valor ingresado para las columnas. for(int i=0; i <filas; i++){ for(int j=0; j<columnas;j++){ System.out.println("Ingrese componente de la matriz"); matriz[i][j] = teclado.nextInt(); } } Para ingresar los elementos, componentes o datos de la matriz, usamos un ciclo for dentro de otro ciclo for dado que la matriz puede tener varias filas y cada fila puede tener varias columnas. public void PrimeraFila(){ System.out.println("Primeral Fila:"); for(int j=0; j < columnas; j++){ System.out.println(matriz[0][j]); // No se presenta problemas acá ya que la matriz siempre tendra al menos un componente, y este estaría en la posición [0][0]. } } Para imprimir la primera fila de nuestra matriz sabemos que la primera fila sería el subíndice 0 y que ésta puede tener varias columnas, por ello usamos un for que recorra todas las columnas o el subíndice j, donde j tomara el valor desde 0 hasta la cantidad de columnas que contenga la matriz. public void UltimaFila(){ System.out.println("Ultima Fila:"); for(int j=0; j < columnas; j++){ System.out.println(matriz[filas - 1][j]); } } Para imprimir la ultima fila de nuestra matriz sería: filas - 1 debido a que si la matriz contiene dos filas para referirnos a la segunda fila ésta sería el subíndice [1] y no el 2. Ejemplo: una matriz de 2 x 2 la ultima fila sería la 1 ya que empezamos desde 0, por lo tanto 2- 1 = 1.
  • 6. public void PrimeraColumna(){ System.out.println("Primeral Columna:"); for(int i=0; i < filas; i++){ System.out.println(matriz[i][0]); //No se presenta problemas acá ya que la matriz siempre tendra al menos un componente, y este estaría en la posición [0][0]. } } Similar al método usado para la primera fila. El subíndice para la primera columna sería [0]. matriz[i][0]. public void DiagonalPrincipal(){ System.out.println("Diagonal Principal:"); if(filas == columnas){ for(int D= 0; D <matriz.length; D++){ // El metodo .length retorna la cantidad de filas de la matriz. System.out.println(matriz[D][D]); } } else{ System.out.println("La matriz ingresada no es cuadrada, por lo tanto no tiene diagonal principal."); } } Los elementos de la diagonal principal de una matriz son todos los que se encuentran en los subíndices i y j donde i = j . Digamos que i = j = D. Entonces para referirnos a los elementos de la diagonal principal sería matriz[D][D] Si tenemos una matriz de 3x3 (3 filas, 3 columnas) los elementos de la diagonal principal serían: matriz[0][0], matriz[1][1], matriz[2][2] Es IMPORTANTE tener presente que solo las matrices cuadradas poseen diagonal principal. Entiendase matriz cuadrada como la matriz que posee la misma cantidad de filas y columnas (matrices 2x2, 3x3, 4x4... nxn). Es por esto que usamos un if para imprimir los elementos solo si filas == columnas, de no ser ésto así arrojará un mensaje de error diciendo que la matriz ingresada no es una matriz cuadrada.
  • 7. Utilizamos el método .length el cual retorna la cantidad de filas de nuestra matriz, esto le dirá al ciclo forcuantas veces se debe repetir. public void MayorElemento(){ int mayorE = matriz[0][0]; //Declaramos la variable que va a almacenar al mayor elmento y lo inicializamos e la posición [0][0]. int filaE = 0; int columnaE = 0; for(int i = 0; i < filas; i++){ for(int j = 0; j < columnas; j++){ if(matriz[i][j] > mayorE){ mayorE = matriz[i][j]; filaE = i + 1; // La fila en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos dice que el primer elemento de una matriz es el [1,1] y si imprimimos sin sumar 1 entonces arrojaríamos como resultado que el primer elemento es el [0][0]. de ser este el caso. columnaE = j + 1; // La columna en donde se encuentra ese elemento. Le sumamos 1 ya que la teoría de matrices nos dice que el primer elemento de una matriz es el (1,1) y si imprimimos sin sumar 1 entonces arrojaríamos como resultado que el primer elemento es el [0][0]. de ser este el caso. } } } System.out.println("El mayor elemento dentro de la matriz es: " + mayorE); System.out.println("Se encuentra en la fila numero: " + filaE + " y en la columna numero: " + columnaE); } Declaramos la variable mayorE y la inicializamos con el valor del elemento el cual se encuentra en la posición [0][0]. También las variables filaE y columnaE para almacenar la fila y columna en la que se encuentre el mayor elemento. Utilizamos un ciclo for dentro de otro ciclo for para ir comparando cada elemento o dato. Hay que tener en cuenta que al momento de imprimir la fila o columna en la que se encuentra el dato debemos hacerlo de la siguiente manera: filaE = i + 1; Si se encuentra en la fila 0 diremos por pantalla que se encuentra en la fila 1 o primera fila. public void Vertices(){ System.out.println("Vertices de la matriz: "); System.out.println("Valor del vertice superior izquierdo: " + matriz[0][0]); System.out.println("Valor del vertice superior derecho: " + matriz[0][columnas - 1]); System.out.println("Valor del vertice inferior izquierdo: " + matriz[filas - 1][0]); System.out.println("Valor del vertice inferior derecho: " + matriz[filas - 1][columnas - 1]); } Para el vértice superior izquierdo: columnas menos 1 ya que si decimos que la matriz tiene 3 columnas empezaremos a agregar valores desde la posicion 0 hasta la 2 dado que el for se repite mientras j sea menor a la cantidad de columnas que ingresamos ( j < columnas).
  • 8. Para el vértice inferior izquierdo: filas menos 1 ya que si decimos que la matriz tiene 4 filas empezaremos a agregar valores desde la posicion 0 hasta la 3 dado que el for se repite mientras 1 sea menor a la cantidad de filas que ingresamos ( i < filas). Para el vértice inferior derecho: Similar a las dos vértices anteriores. Finalmente se realiza la salida: Velásquez, F. M. (2013). Matrices en Java. Consultado el 22 de marzo de 2015, de http://unestudiantedeinformatica.blogspot.com/2013/12/matrices-en-java.html