viernes, 6 de diciembre de 2013

Matrices en Java – Forex – Curso – Motor

Una matriz es una estructura de datos en la que podemos almacenar una cierta cantidad de datos los cuales deben ser delmismo 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 casoint.

Ejemplo:

Matriz 2 x 3 ( 2 filas, 3 columnas).

columna 1 columna 2 columna 3
fila 1 4 59
fila 2 11 1 22

Cada elemento de la matriz posee una cierta posición o ubicación. Ejemplo, el dato9 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 dato9 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 59
fila 1 11 1 22

Si queremos mostrar en pantalla el dato9 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
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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; jcolumnas;j++){
System.out.println("Ingrese componente de la matriz");
matriz[i][j] = teclado.nextInt();
}
}
}

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].
}
}

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 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].
}
}

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ó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);
}

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]); //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).
System.out.println("Valor del vertice inferior izquierdo: " + matriz[filas - 1][0]); //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).
System.out.println("Valor del vertice inferior derecho: " + matriz[filas - 1][columnas - 1]); // Similar a las dos anteriores lineas.
}

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; jcolumnas;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 - 1debido 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íamatriz[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 unif para imprimir los elementos solo sifilas == 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á alciclo for cuantas 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 variablemayorE y la inicializamos con el valor del elemento el cual se encuentra en la posición [0][0]. También las variablesfilaE ycolumnaE 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:



domain yahoo Php programmers for hire Computer science classes online Hard drive Data Recovery Services hair removal washington dc california motorcycle accident lawyer email bulk service ASBESTOS LAWYERS Royalty Free Images Stock Online Motor Insurance Quotes car insurance companies Casino car donate WordPress hosting Social media platforms Online Christmas cards Christmas cards Donate Your Car Sacramento Car Insurance Quotes MN compare life assurance Car Insurance in South Dakota mesothelioma lawyer asbestos cancer lawsuit royalty free images stock injury lawyers CAR ACCIDENT LAWYERS Criminal defense lawyer Better Conference Calls How to Donate A Car in California Psd to html DONATE CAR FOR TAX CREDIT structured settlement company Make money online Australia Attorney Online casino Criminal lawyer structured settlement annuity companies Best Criminal Lawyers in Arizona Casino reviews mesothelioma structure settlements Php programmers houston mesothelioma attorney how to donate a car in california Mobile casino uk homeowner loans buyers of structured settlements Donate Old Cars to Charity auto insurance cost by state car insurance quotes Low Credit Line Credit Cards donate your car for kids WordPress theme designers DUI lawyer Live casino VIRTUAL DATA ROOMS Register free domains Dayton freight lines Personal Injury Lawyers Online Classes personal injury attorney ocala fl Hire php developers auto accident attorney Torrance car crash attorneys Social media campaigns Hire php programmers Tech school Donate your car for kids CAR INSURANCE QUOTES UTAH Dwi lawyer Dallas Mesothelioma Attorneys Life Insurance Co Lincoln WORLD TRADE CENTER FOOTAGE Psychic for free Service business software Neuson futuristic architecture structured annuity settlement anti spam exchange server Donating a Car in Maryland mesothelioma charities mesothelioma lawyer california Bankruptcy lawyer Health Records Personal Health Record Hire php developer Learning adobe illustrator broward county dui lawyer Business management software mesothelioma symptoms PhD in counseling education Low credit line credit cards mesothelioma claim Cheap Auto Insurance in VA structured settlement broker car insurance quotes mn Online Colleges accident attorney orange county Html email Seo companies PHD IN COUNSELING EDUCATION NEUSON Donate car for tax credit Photo Christmas cards Best social media platforms for business CHEAP CAR INSURANCE IN VIRGINIA Massage School Dallas Texas PSYCHIC FOR FREE New social media platforms Business finance group lease management software Social media platforms for business Donate your car Sacramento Custom WordPress theme designer structered settlement mesothelioma lawyer texas Seo services Best Seo company peritoneal mesothelioma Best social media platforms Seo company diagnosed with mesothelioma structured settlement quote Custom Christmas cards WordPress themes for designers Donate Cars Illinois Personal Injury Law Firm mesothelioma attorney directory Psd to WordPress Met auto Social media examiner Social media management maritime lawyer houston life insurance co lincoln mesotheloma Virtual Data Rooms ONLINE MOTOR INSURANCE QUOTES Proud Italian cook data recovery raid Donate a Car in Maryland Italian cooking school refinance with bad credit mesothelioma trial attorney Forex Trading Platform Car Accident Lawyers Donate Your Car for Kids Car insurance quotes Utah Adobe illustrator classes ONLINE COLLEDGES average mesothelioma settlement Social media strategies Social media tools Automobile Accident Attorney fast cash for house Mesothelioma Law Firm Donate Car to Charity California HOLLAND MICHIGAN COLLEGE Donate Car for Tax Credit criminal defense attorneys florida car insurance quotes colorado Donate Cars in MA BETTER CONFERENCING CALLS Forensics Online Course cloud identity and access management Sell Annuity Payment Asbestos Lawyers wisconsin mesothelioma attorney workers compensation lawyer los angeles Structures Annuity Settlement Car Insurance Quotes Colorado Annuity Settlements Nunavut Culture Dayton Freight Lines Cheap Domain Registration Hosting motor replacements mesothelioma compensation Mortgage Adviser miami personal injury attorney selling a structured settlement Motor Replacements LOW CREDIT LINE CREDIT CARDS benchmark lending better conferencing calls Home Phone Internet Bundle utah mesothelioma lawyer Auto Mobile Insurance Quote Criminal Defense Attorneys Florida Cheap Car Insurance for Ladies Car Insurance Quotes Utah annuity payment mesothelioma settlements amounts Holland Michigan College MOTOR REPLACEMENTS mesothelioma lawsuit MORTGAGE ADVISER Paperport Promotional Code cash out annuity best consolidation loan student Criminal lawyer Miami World Trade Center Footage los angeles motorcycle accident lawyer Psychic for Free See more at http//wwwginfostopnet/ structured settlement cash out canada personals yahoo Donate your Car for Money Met Auto DAYTON FREIGHT LINES low credit line credit cards Donating Used Cars to Charity PHD on Counseling Education Car Insurance Quotes PA Webex Costs onlineclasses Email Bulk Service california law lemon mesothelioma litigation Nunavut culture Car insurance quotes MN Cheap Car Insurance in Virginia Register Free Domains Business Voip Solutions Futuristic Architecture CRIMINAL DEFENSE ATTORNEYS FLORIDA Insurance Companies motorcycle accident lawyer california accident car florida lawyer Car Donate donate your car for money mesotheioma mesotheolima mesothelioma lawyer virginia Online College Course best criminal lawyer in arizona Auto Accident Attorney Data Recovery Raid Criminal defense attorneys Florida Motor Insurance Quotes structured settlement buyers Insurance Car Insurance Quotes Asbestos Lung Cancer Injury Lawyers personal injury lawyer Online Criminal Justice Degree car accident lawyer san bernardino Car Insurance Companies Dedicated Hosting Dedicated Server Hosting baltimore mesothelioma attorneys lawsuit mesothelioma Business VOIP Solutions Auto Mobile Shipping Quote

No hay comentarios:

Publicar un comentario