Este documento presenta información sobre estructuras de datos, en particular arreglos y matrices. Explica que los arreglos permiten almacenar colecciones de elementos del mismo tipo en una secuencia contigua de espacios de memoria. Las matrices son arreglos bidimensionales que contienen filas y columnas. El documento también proporciona ejemplos de cómo declarar, inicializar y recorrer arreglos y matrices en Java.
4. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos
Denition (Arreglo o array)
Un espacio de memoria que permite almacenar una colección
de elementos del mismo tipo.
Imagine un arreglo como una secuencia contigua de espacios
de memoria, en cada una de las cuales se puede guardar un
elemento de una colección
4 / 33
6. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos
Los lenguajes de programación permiten que el
programador declare los arreglos de cualquier tipo y
prácticamente de cualquier tamaño
En Java, un arreglo se declara con tipo[] nombre =
new tipo[n];
Se debe poner un nombre nemotécnico
Ejemplo String[] palabras = new String[15];
6 / 33
8. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Cree un arreglo de 5 elementos, asígnele valores
numéricos manualmente y muéstrelos en pantalla
Cree un arreglo de 10 elementos, inserte los valores
numéricos que desee de la manera que quiera y muestre
en pantalla la media de todos los valores
Cree un arreglo donde usted indique la dimensión por
teclado y cree una función que rellene el arreglo con los
múltiplos de un número pedido por teclado. E.g., si
denió un arreglo de 5 elementos y eligió un 3 en la
función, el arreglo contendrá 3, 6, 9, 12, 15. Finalmente,
muéstrelos en pantalla usando otra función distinta
8 / 33
9. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Cree dos arreglos que tengan el mismo tamaño (lo
pedirá por teclado), en uno de ellos almacenará nombres
de personas como cadenas, en el otro almacenará la
longitud de los nombres. Para esto puede usar la función
cadena.length(). Muestre por pantalla el nombre y la
longitud que tiene. Puede usar funciones
9 / 33
10. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Un histograma para una colección de datos es una
secuencia de parejas de la forma (d, f), donde d es un
dato y f es su frecuencia en la colección. Por ejemplo,
suponga que se le pide a 20 personas calicar con las
letras a b c d y e el desempeño del gobierno actual, y
que se obtienen las siguientes respuestas: c b c a b c d e
e a b b d c a c c b d a. Considere el problema de
implementar una función que haga un histograma para
una lista de hasta 100 valores, donde cada valor es un
número entero comprendido en el intervalo 1 al 5
10 / 33
11. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Implemente una función que calique un examen de selección
múltiple. En cada una de las preguntas del examen, se debió
elegir una de cinco opciones: A, B, C, D y E. Los parámetros:
Cada una de las respuestas dadas por el estudiante
Las respuestas correctas
La salida esperada es la nota obtenida. Esta nota
corresponde al número de aciertos que tuvo el estudiante
11 / 33
12. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Escriba un algoritmo que lea un arreglo de números enteros,
y un número x, y escriba en la pantalla las posiciones del
arreglo donde está x. E.g., si el arreglo tiene los números 1,
2, 3, 100, 23, 2, 2 y 1 y x es 2, el programa debe escribir: 1,
5 y 6
12 / 33
13. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Arreglos de Datos: problemas
Problemas
Un palíndromo es una palabra o frase que se puede leer igual
de izquierda a derecha y de derecha a izquierda, obviando
signos de puntuación y espacios. Son palíndromos las
siguientes frases y palabras:
Anilina
Amor a Roma
Dábale arroz a la zorra el abad
Reconocer
Anita lava la tina
Implemente una función que determine si una palabra (frase)
es palíndromo o no (devuelve true o false)
13 / 33
14. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Declaración de Arreglos de Datos: Java
En Java: dos formas de declarar un arreglo
Para declarar un arreglo de tipo entero: int [] valores;
Pára indicar de cuántos enteros va a estar compuesto el
arreglo: valores = new int[10];
También se puede directamente asignar valores a un
arreglo sin especicar el número de elementos: int[ ]
edad = {45, 23, 11, 9};
14 / 33
18. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Declaración de Arreglos de Datos: Java
Los arreglos poseen el atributo length que devuelve la
cantidad de los elementos
Para recorrer los elementos de un arreglo:
for (int i=0; iarreglo.length; i++)
Si en el arreglo se accede a un elemento no denido, se
produce una excepción IndexOutOfBoundsException
18 / 33
22. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Crear Matrices en Java
Matriz de datos de tipo int llamada ventas de 4 las y 6
columnas: int [][] ventas = new int[4][6];
Matriz de datos double llamada temperaturas de 3 las
y 4 columnas: double [][] temperaturas = new
double[3][4];
Importantísimo
En Java se pueden crear matrices irregulares donde el
número de elementos de cada la puede ser distinto.
Solo es obligatorio indicar el número de las: int [][] m
= new int[3][];.
A cada la se le puede asignar un número distinto de
columnas: m[0] = new int[3]; m[1] = new int[5];
m[2] = new int[2];
22 / 33
24. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Inicializar Matrices en Java
Los valores iniciales se escriben entre llaves separados
por comas
Los valores que se le asignen a cada la aparecerán a su
vez entre llaves separados por comas.
int [][] numeros = {{6,7,5}, {3, 8, 4}, {1,0,2},
{9,5,2}}; crea la matriz numeros de tipo int, de 4 las
y 3 columnas, y se le asignan esos valores iniciales
Se pueden crear también matrices irregulares asignando
valores iniciales: int [][] a = {{6,7,5,0,4}, {3, 8, 4},
{1,0,2,7}, {9,5}}. Matriz irregular de 4 las. La
primera la de 5 columnas, la segunda de 3, la tercera
de 4 y la cuarta de 2
24 / 33
26. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Recorrer Matrices en Java I
import java.util.*;
public class Bidimensional2 {
public static void main(String[] args) {
final int FILAS = 5, COLUMNAS = 4;
Scanner sc = new Scanner(System.in);
int i, j, mayor, menor;
int filaMayor, filaMenor, colMayor, colMenor;
int[][] A = new int[FILAS][COLUMNAS];
System.out.println(Lectura de matriz: );
for (i = 0; i FILAS; i++) {
for (j = 0; j COLUMNAS; j++) {
System.out.print(A[ + i + ][ + j + ]= );
A[i][j] = sc.nextInt();
}
26 / 33
27. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Recorrer Matrices en Java II
}
System.out.println(valores introducidos:);
for (i = 0; i A.length; i++) {
for (j = 0; j A[i].length; j++) {
System.out.print(A[i][j] + );
}
System.out.println();
}
//se toma el primero como mayor y menor
mayor = menor = A[0][0];
filaMayor = filaMenor = colMayor = colMenor = 0;
for (i = 0; i A.length; i++) { //
for (j = 0; j A[i].length; j++) {
if (A[i][j] mayor) {
mayor = A[i][j];
27 / 33
30. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Recorrer Matrices irregulares en Java
Para recorrer matrices irregulares como el siguiente:
int [][] a = {{6,7,5,0,4}, {3, 8, 4}, {1,0,2,7}, {9,5}};
Se usa siempre length para obtener el número de columnas
que tiene cada la:
for (i = 0; i a.length; i++) { //número de filas
// número de columnas de cada fila
for (j = 0; j a[i].length; j++) {
System.out.print(a[i][j] + );
}
System.out.println();
}
30 / 33
31. Estructuras de
datos
Angel
Vázquez-Patiño
Objetivos
Arreglos
Matrices
Fuentes
Matrices: ejemplos
Dada una matriz de dimensiones n las, m columnas,
encontrar:
Los elementos de la diagonal principal
Multiplicar los elementos de la diagonal principal por un
escalar
Indicar si la matriz es nula (todos los elementos son
ceros)
Indicar si una matriz es triangular superior (si todos los
elementos por debajo de la diagonal principal son nulos)
o inferior (si son nulos todos los elementos situados por
encima de dicha diagonal)
Indicar si es una matriz diagonal (si una matriz es a la
vez triangular superior e inferior, sólo tienen elementos
en la diagonal principal)
31 / 33