FUNDAMENTOS DE PROGRAMACIÓN Ing. Leonardo Torres, Mg. Abril – Septiembre 2022 UNIDAD 4 MÉTODOS Y CLASES Objetivo: Utilizar Estructuras básicas de datos para la solución de problemas. Contenido ● ● ● ● Arreglos Unidireccionales (Vectores) Arreglos Bidireccionales (Matrices) Listas – ArrayList Listas – LinkedList Arreglos Bidireccionales (Matrices) ● El array bidimensional se puede considerar como un vector de vectores. Es, por consiguiente, un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en el que se necesita especificar dos subíndices para poder identificar cada elemento del array. Arreglos Bidireccionales (Matrices) ● ● ● Los arreglos multidimensionales de dos dimensiones se utilizan con frecuencia para representar tablas de valores, con datos ordenados en filas y columnas. Para identificar un elemento específico de una tabla, debemos especificar dos índices. Por convención, el primero identifica la fila del elemento y el segundo su columna. Arreglos Bidireccionales (Matrices) Declaración de una Matriz ● Se declara de modo similar a un vector pero se hace uso de 2 pares de corchetes Declaración de una Matriz ● Java considera que un arreglo bidimensional es una referencia a un objeto; en consecuencia, para que realmente cree o instancie la matriz, usa el operador new junto al tipo de los elementos de la matriz y su número. Declaración de una Matriz ● La sintaxis para declarar y definir una matriz de un número de elementos determinado es: Declaración de una Matriz ● Por ejemplo: para crear una matriz que guarde los días de todos los meses del año Definición en Java: Definición en pseudocódigo: Declaración de una matriz Es posible parametrizar el número de elementos de una matriz en función de alguna característica del problema: ● Para este ejemplo se define el numero de elementos (filas y columnas) por teclado: Declaración de una matriz ● Los elementos de la matriz se pueden inicializar con valores constantes en una sentencia, que además es capaz de determinar su tamaño; estas constantes se separan por comas y se encierran entre llaves, como en los siguientes ejemplos: Declaración de una matriz ● Los arreglos bidimensionales o matrices pueden tener filas de distintas longitudes con lo cual no necesariamente tendrán el mismo número de columnas Subíndice de una matriz ● ● Para hacer referencia a un elemento específico en una matriz, debemos especificar el nombre de la referencia a la matriz y el número de la posición del elemento dentro del mismo. El número de la posición del elemento se conoce formalmente como el índice o subíndice del elemento. Subíndice de una matriz El subíndice en java comienza en cero, por lo tanto para acceder al primer elemento del vector se referencia con el subíndice 0,0 Acceso en Java: Acceso en pseudocódigo: Tamaño de las matrices, atributo length ● Java considera cada matriz como un objeto que, además de tener capacidad para almacenar elementos, dispone del atributo length con el número de éstos. Tamaño de las matrices, atributo length ● Java conoce el número de elementos de un arreglo cuando se crea con el operador new o con una expresión de inicialización; length está protegido y no puede ser modificado, ya que se define con el calificado final. Asignación ● La asignación de valores a un elemento de la matriz se realizará con la instrucción de asignación: Asignación en Java: Asignación en pseudocódigo: Asignación ● De igual manera para almacenar en una variable distinta un elemento del vector se realizará con la instrucción de asignación: Asignación en Java: Asignación en pseudocódigo: En ambos casos toma el valor del primer elemento de la matriz y lo almacena en la variable “valor”; Lectura/escritura de datos ● La lectura/escritura de datos en arrays bidimensionales u operaciones de entrada/salida normalmente se realizan con estructuras repetitivas anidadas, aunque puede también hacerse con estructuras selectivas. Las instrucciones simples de lectura/escritura se representarán como Lectura en Java: Lectura en pseudocódigo: Lectura/escritura de datos ● Lectura de números ingresados por teclado según la longitud del vector Lectura en Java: Lectura en pseudocódigo: Lectura/escritura de datos ● Lectura de números ingresados por teclado según la longitud del vector Lectura en Java: Lectura/escritura de datos ● Lectura de números ingresados por teclado según la longitud del vector Lectura en Java: Arreglos Bidireccionales (Matrices) Ejercicios 1. 2. Declare una matriz de enteros de 2 filas y 3 columnas y llénelas con valores ingresados por teclado (utilice un ciclo for para llenar la matriz) Declare una matriz en donde sus filas y columnas se definan por teclado y llénelas con valores 0 y 1 de manera aleatoria (Utilice Random) Arreglos Bidireccionales (Matrices) Ejercicios 1. 2. Declare una matriz de cadenas en donde sus filas y columnas se definan por teclado y llénelas con palabras ingresadas por teclado (Alumnos) Declare una matriz de valores booleanos en donde sus filas y columnas se definan por teclado y llénelas con valores lógicos aleatorios (Utilice Random) Arreglos Bidireccionales (Matrices) Ejercicios 1. 2. Declare una matriz de cadenas en donde sus filas y columnas se definan por teclado, almacene el texto “fila impar” si la fila de la matriz es impar caso contrario almacene “fila par” Declare una matriz de cadenas en donde sus filas y columnas se definan por teclado, almacene el texto “columna impar” si la columna de la matriz es impar caso contrario almacene “columna par” (alumnos) Arreglos Bidireccionales (Matrices) Ejercicios 1. 2. Del ejercicio anterior(ejercicio 2) cuente cuantos números ceros aparecen en la matriz e imprima el total De la matriz de booleanos cuente cuantos valores verdaderos y cuantos valores falsos existen en toda la matriz e imprima el total Arreglos Bidireccionales (Matrices) Ejercicios 1. 2. Del ejercicio anterior(ejercicio 2) cuente cuantos números ceros aparecen por cada fila y genere un vector que contenga los resultados del conteo por fila De la matriz de booleanos cuente cuantos valores verdaderos existen por fila y almacénelos en un vector Arreglos Bidireccionales (Matrices) Ejercicios 1. Genere un método el cual acepte como argumento una matriz de cadenas y genere otra del mismo orden en donde transforme las consonantes a mayúsculas y las vocales a minúsculas sol perro alcohol casa mouse pastilla gato telefono silla = SoL PeRRo aLCoHoL CaSa MouSe PaSTiLLa GaTo TeLeFoNo SiLLa Arreglos Bidireccionales (Matrices) Ejercicios 1. Genere un método el cual acepte como argumento una matriz de cadenas y genere otra del mismo orden en donde transforme las consonantes a mayúsculas y las vocales a minúsculas sol perro alcohol casa mouse pastilla gato telefono silla = SoL PeRRo aLCoHoL CaSa MouSe PaSTiLLa GaTo TeLeFoNo SiLLa