U2P Examen
U2P Examen
U2P Examen
Docente
Asignatura
Estructura de datos
Carrera
Sistemas de la información
Año lectivo
2020-2021
ARREGLOS UNIDIMENSIONALES
Java es una estructura de datos que nos permite almacenar un conjunto de datos de un
mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar
luego durante la ejecución del programa, como sí puede hacerse en otros lenguajes.
ARRAYS UNIDIMENSIONALES
Tipo_de_variable[ ] Nombre_del_array =
new Tipo_de_variable[dimensión];
Tipo_de_variable[ ] Nombre_del_array;
De la misma forma procederíamos para los otros tipos de enteros : byte, short, long.
De la misma forma procederíamos para el tipo float, pero teniendo en cuenta que los
números deberán llevar al final la letra “f” o “F”. Por ejemplo 1.73f o 1.73F.
Para cadenas
Para caracterers
Para booleanos
estamos creando n variables que son a[0], a[1], a[2], ..., a[n-1]. Los arrays se numeran
desde el elemento cero, que sería el primer elemento, hasta el n-1 que sería el último
y el último elemento sería el 4. Esto conviene tenerlo en cuenta porque puede dar lugar
a alguna confusión. Disponer de un valor con índice cero puede ser de utilidad en
situaciones como considerar cada variable asociada a una hora del día, empezando a
contar desde la hora cero hasta la 23 (total de 24 horas), cosa que es habitual en algunos
array de tamaño “n” y vamos asignando un valor a cada variable del array desde la
posición cero hasta la posición “n-1”. Adicionalmente vamos a comprobar qué ocurre si
nombre[0] = "Luis";
nombre[1] = "María";
nombre[2] = "Carlos";
nombre[3] = "Jose";
nombre[4] = "Ismael"; //Error:No existe esta variable array de
índice 4
su ejecución:
de sintaxis, es decir, no faltan puntos y comas, las llaves están bien equilibradas, las
palabras reservadas del lenguaje son las correctas, etc. Por tanto, aparentemente el
a una posición del array que no existe. En nuestro caso, hemos tratado de acceder a la
posición 4, que no está definida (sólo se ha definido hasta la posición 3). En esto Java es
muy estricto y no admite este tipo de error lógico del programador. Siguiendo el análisis
que nos está indicando que el error está en el archivo que contiene el programa de nombre
main(String arg[ ]). Esta instrucción es un estándar en Java, es decir, es la forma habitual
arg[ ]). En esta instrucción el método main admite que se le pase un “array de Strings”
cuando se proceda a la ejecución del programa si así lo deseamos. String arg[] significa
“un array de Strings” cuyo nombre es arg. Dicho de otra manera, al ejecutar el programa
parámetros de entrada, éstos parámetros quedan asignados al array arg tomando el orden
arg[0], arg[1].
*/
System.out.println(arg[0]);
System.out.println(arg[1]);
Damos por entendido que ya hemos compilado el programa y no hay errores de sintaxis.
dobles, los parámetros de entrada son Pepe, Luis y Juan. Cuando ejecutamos el programa
se nos mostrará que la cantidad de parámetros son tres, y además nos mostrará el primer
“Pepe”, como solo hay un solo parámetro de entrada, el array arg tiene un solo
elemento. En este caso el programa nos va a dar un error porque la única variable que
Veamos ahora qué ocurre al ejecutar ParametrosDeEntrada con los parámetros "Hola"
"Java":
Estos dos parámetros son las cadenas "Hola" y "Java", las cuales son capturadas en las
variables del array de cadenas arg[0] y arg[1]. Estas variables se usan para imprimir los
parámetros en pantalla. Esto se puede ver en el código fuente del programa. Por otro lado,
con el atributo “arg.length” podemos saber cuántos parámetros se le han pasado a nuestro
programa. También decir que hacemos uso de un nuevo símbolo: “+”, que significa
“concatenar” la cadena “Cantidad de parámetros” con el valor del atributo arg.length (que
es 2 en este caso). El resultado es la cadena “Cantidad de parámetros : 2 “, que se imprime
una posibilidad que admite Java. En otros lenguajes no es posible pasar parámetros de
entrada a un programa.
Aporte personal
básica obviamente no tediosa sino como principal se le llama también vector, esta
estructura es de una sola fila ya que es un vector por eso se llama unidimensional.
ARREGLOS BIDIMENSIONALES
Los arreglos Bidimensionales son aquellos que conocemos como matrices y esté es un
ejemplo de ellos:
Los arreglos bidimensionales también son provistos por NumPy, por lo que debemos
Al igual que los arreglos de una dimensión, los arreglos bidimensionales también
pueden ser creados usando la función array, pero pasando como argumentos una lista
Todas las filas deben ser del mismo largo, o si no ocurre un error de valor:
Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaños de cada
cuatro columnas:
>>> a.shape
(3, 4)
Los arreglos también tienen otro atributo llamado size que indica cuántos elementos
tiene el arreglo:
>>> a.size
12
Hay que tener cuidado con la función len, ya que no retorna el tamaño del arreglo, sino
su cantidad de filas:
>>> len(a)
3
Las funciones zeros y ones también sirven para crear arreglos bidimensionales. En vez
de pasarles como argumento un entero, hay que entregarles una tupla con las cantidades
Lo mismo se cumple para muchas otras funciones que crean arreglos; por ejemplom la
función random:
Al igual que los arreglos de una dimensión, las operaciones sobre las matrices se aplican
término a término:
>>> a + 2
array([[7, 3, 6],
[2, 5, 4]])
>>> a ** b
array([[25, 1, 0],
[ 0, 1, 2]])
Cuando dos matrices aparecen en una operación, ambas deben tener exactamente la
misma forma:
>>> a[4, 3]
8.78
>>> a[1:3, 2]
array([ 2.14, 0.71])
Para obtener una fila completa, hay que indicar el índice de la fila, y poner : en el de las
columnas (significa «desde el principio hasta el final»). Lo mismo para las columnas:
>>> a[2, :]
array([ 5.62, 0.54, 0.71, 2.56])
>>> a[:, 3]
array([ 6.41, 6.57, 2.56, 8.76, 8.78])
Note que el número de dimensiones es igual a la cantidad de rebanados que hay en los
índices:
Otras operaciones
La trasposicion consiste en cambiar las filas por las columnas y viceversa. Para
>>> a
array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56]])
>>> a.transpose()
array([[ 3.21, 9.54, 5.62],
[ 5.33, 0.3 , 0.54],
[ 4.67, 2.14, 0.71],
[ 6.41, 6.57, 2.56]])
El método reshape entrega un arreglo que tiene los mismos elementos pero otra forma.
>>> a = arange(12)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> a
array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56]])
>>> diag(a)
array([ 3.21, 0.3 , 0.71])
Además, diag recibe un segundo parámetro opcional para indicar otra diagonal que se
desee obtener. Las diagonales sobre la principal son positivas, y las que están bajo son
negativas:
>>> diag(a, 2)
array([ 4.67, 6.57])
>>> diag(a, -1)
array([ 9.54, 0.54])
La misma función diag también cumple el rol inverso: al recibir un arreglo de una
dimensión, retorna un arreglo bidimensional que tiene los elementos del parámetro en la
diagonal:
>>> diag(arange(5))
array([[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 2, 0, 0],
[0, 0, 0, 3, 0],
[0, 0, 0, 0, 4]])
>>> a.min()
0.1
>>> a.min(0)
array([ 1.2, 1.5, 1.5, 0.1, 0.6])
>>> a.min(1)
array([ 0.1, 4.3, 3.1, 1.2, 0.9, 1.2, 0.6])
>>> a.argmin(0)
array([3, 3, 6, 0, 6])
>>> a.argmin(1)
array([3, 4, 1, 0, 3, 4, 4])
Aporte personal
Los arreglos bidimensionales son los que usan matrices , estas matrices están formadas
por filas y columnas (en ese orden) aquí en este arreglo se usa un bucle para que
podamos aparte de que es para que haya un ciclo una secuencia de instrucciones es para
usar el length que lo que hace es que lee la magnitud de esta matriz también en este
arreglo podemos poner excepciones que es para que el programa no se caiga sino mas
bien muestre el mensaje de cual es el error mas no se cae pero eso profundizaremos mas
adelante
Glosario:
Vector un segmento de recta en el espacio que parte de un punto hacia otro, es decir,
que tiene dirección y sentido. Los vectores en física tienen por función expresar las
dice que son elementos de un anillo. Una matriz se representa por medio de una letra
mayúscula (A,B, …) y sus elementos con la misma letra en minúscula (a,b, …), con un
pertenece.
Enteros son los valores que no tienen punto decimal, pueden ser positivos o negativos
y el cero. Reales: estos caracteres almacenan números muy grandes que poseen parte
Length El método que se usa para conocer el tamaño es sencillo (.length()). Este, se