1 00:00:00,880 --> 00:00:03,759 Bueno, pues ahora vamos a ver el concepto de Arrays. 2 00:00:05,019 --> 00:00:08,759 Básicamente, un Array no es más que... 3 00:00:10,179 --> 00:00:12,900 Si hacemos la comparativa con una variable, 4 00:00:14,080 --> 00:00:21,120 una variable era, digamos, una palabra que contenía información de muchos tipos. 5 00:00:21,519 --> 00:00:29,980 Esa información podía ser un texto, podía ser un número, podía ser un número decimal, ¿vale? 6 00:00:29,980 --> 00:00:47,119 Muchos tipos de datos y un array no es más que una variable que contiene muchos tipos o muchos tipos de datos o el mismo tipo de datos ordenado, ¿vale? 7 00:00:47,119 --> 00:00:55,460 Es decir, que yo puedo tener varias palabras diferentes en diferentes posiciones de ese Array. 8 00:00:55,460 --> 00:01:07,760 Para que entendamos una definición más formal de lo que es ese Array, ¿vale? 9 00:01:08,719 --> 00:01:18,219 Podríamos decir que es un vector o una matriz de una única dimensión. 10 00:01:18,219 --> 00:01:36,239 ¿Vale? Es decir, una fila. ¿Vale? Entonces, en una fila, si nosotros tenemos una tabla de fila y columna, ¿vale? Pensemos que si solo tenemos una tabla, cada columna sería un valor, tendría un valor, y ese valor puede ser un número, puede ser un texto, puede ser lo que sea. ¿Vale? 11 00:01:36,239 --> 00:01:54,180 Entonces, para ver cómo implementar eso en PSIN, ¿vale? Que ya digo que esto es extrapolable a cualquier lenguaje de programación, simplemente lo que hacemos, yo ya tengo aquí mi archivito creado, ¿vale? 12 00:01:54,180 --> 00:02:32,969 ¿Vale? Simplemente, si nosotros queremos crear, como digo, ese, uy, ¿qué he hecho? Perdona, a ver, vale, ahora sí. Vale, como digo, si lo que queremos es crear ese archivito, simple, ese array, simplemente lo que vamos a poner es una palabra clave que es dimensión, ¿vale? 13 00:02:32,969 --> 00:02:56,909 ¿Veis como en cuanto he puesto dimensión se ha puesto en grande? ¿Vale? Y ahora vamos a poner el nombre del array. En mi caso lo voy a llamar, por ejemplo, mi array. ¿Vale? Y fijaros que me sigue dando, se pone aquí en rojito. ¿Por qué? Porque faltan parámetros, me dice aquí. ¿Vale? Faltan cosas para yo poder crear mi array o definir mi array. 14 00:02:56,909 --> 00:03:24,849 Y es que lo que vamos a hacer es poner entre corchetes, ¿vale? Vamos a poner el tamaño de la raíz, es decir, cuántas columnas queremos que tenga esa raíz, ¿vale? Pues, por ejemplo, yo quiero que tenga 5 columnas, ¿vale? Y ahí lo veis que ya me aparece mi tamaño de 5 y se queda sin rojo, ¿vale? Es decir, está bien. 15 00:03:24,849 --> 00:03:37,050 Bien, ahora, si yo le quiero dar valor o valores a este Array, tengo que acceder a cada una de las posiciones, a cada una de las columnas del Array. 16 00:03:37,229 --> 00:03:47,370 ¿Cómo hago eso? Pues pongo el nombre del Array y entre corchetes pongo la posición a la que quiero acceder, ¿vale? 17 00:03:47,370 --> 00:04:10,909 ¿Vale? Importante, los arrays siempre empiezan en la posición 0, siempre, ¿vale? Entonces ponemos un 0 y ahora ponemos igual a un valor, ¿vale? Yo voy a rellenar esta array con valores aleatorios, para rellenar con valores aleatorios, aquí a la izquierda donde pone operadores y funciones, ¿vale? 18 00:04:10,909 --> 00:04:26,790 Si os fijáis, si bajamos, veis que hay aquí una función que pone a estar. Y cuando ponemos el ratón encima, se nos abrirá una ventana, una ventana no, se nos aparecerá un texto que pone la descripción, ¿vale? 19 00:04:26,790 --> 00:04:39,329 Y la descripción os tiene que aparecer que retorna un número aleatorio entre 0 y n-1, es decir, entre el valor entre 0 y el valor que pongamos menos 1, ¿vale? 20 00:04:39,610 --> 00:04:49,139 Es decir, que si yo pongo aquí a estar 100, me va a devolver un número entre 0 y 99, ¿vale? 21 00:04:49,139 --> 00:05:11,230 Ok, pues ahora hacemos lo mismo. Vamos a hacer lo mismo para todos los valores. Mi array de 1 y pongo 100. Y me lo voy a copiar para todas las posiciones. Array de 2, de 3, de 4 y de 5. 22 00:05:11,230 --> 00:05:31,050 Y voy a ejecutar el código. Le doy a ejecutar y fijaros que me sale un error aquí abajo. ¿Vale? Veis que aparece error 302 y dice subíndice 5 fuera del rango, pero 4. 23 00:05:31,050 --> 00:05:41,310 ¿Eso por qué? Pues porque si fijáis, yo aquí arriba he dicho, y lo voy a poner con comentario, creamos un array de tamaño 5. 24 00:05:41,490 --> 00:05:48,970 Es decir, hay 5 elementos. Si el primer elemento está en 0, 0, 1, 2, 3 y 4, ¿vale? 25 00:05:49,389 --> 00:05:54,170 Esos serían nuestros 5 elementos. Por lo tanto, esta línea está mal. No haría falta ponerla, ¿vale? 26 00:05:54,170 --> 00:06:08,670 Si yo ahora le doy a ejecutar, el programa se ejecuta, ¿vale? Pero no hace nada. ¿Por qué? Pues porque nosotros simplemente lo que hemos hecho es guardar valores dentro de la variable, dentro del array, pero no lo estamos imprimiendo, ¿vale? 27 00:06:08,670 --> 00:06:28,060 Para imprimirlo lo podríamos hacer de dos formas. La forma lenta, que sería, por ejemplo, poner, escribir y copiamos el valor, ¿vale? Y esto lo hacemos para todas las posiciones del array, ¿vale? 28 00:06:28,459 --> 00:06:32,439 Escribir 1, escribir 2, escribir 3, escribir 4, ¿vale? 29 00:06:33,720 --> 00:06:38,439 Y fijaros que ahora sí se está imprimiendo los valores. 30 00:06:38,720 --> 00:06:41,600 Y de hecho, si le doy a reiniciar, veréis como los valores son nuevos, 31 00:06:41,720 --> 00:06:46,399 porque cada vez que ejecuto da un valor nuevo entre 0 y 99, ¿vale? 32 00:06:47,920 --> 00:06:52,660 Aquí tenéis otros valores, ahí tenéis otros valores, otros valores, ¿ok? 33 00:06:52,660 --> 00:07:11,009 Vale, ¿qué pasa? Que cuando nosotros tenemos Arrays es muy normal, o lo más normal, perdón, es trabajar con bucles, mezclar los Arrays con bucles, porque hace el trabajo mucho más sencillo, ¿vale? 34 00:07:11,009 --> 00:07:37,490 ¿Por qué? Porque ahora mismo esto es relativamente fácil, ¿me explico? Estamos hablando de un array que tiene tamaño 5, es decir, una tabla con una única fila y 5 columnas, pero si en vez de tener 5 columnas tengo 1000 columnas, pues ya repetir todo este código es mucho más tedioso, mucho más rollo, ¿vale? 35 00:07:38,329 --> 00:07:49,449 Entonces, vamos a hacer un ejemplo muy sencillo, muy muy muy sencillo, y es que es simplemente le vamos a decir al usuario que nos diga de qué tamaño quiere el array 36 00:07:49,449 --> 00:07:57,170 y en función del tamaño que el usuario quiera, nosotros lo rellenamos con números al azar y lo imprimimos, ¿vale? 37 00:07:58,269 --> 00:08:05,329 Entonces, vamos a borrar toda esta parte, porque no la vamos a utilizar, ¿vale? 38 00:08:05,329 --> 00:08:19,800 Y lo primero que vamos a hacer es pedirle al usuario que especifique el tamaño de esa array, ¿vale? Lo ponemos aquí a escribir, define el tamaño del array, ¿vale? 39 00:08:19,800 --> 00:08:43,980 Y vamos a leer ese tamaño que el usuario va a escribir y lo vamos a guardar en una variable que va a ser size. ¿Vale? Y a partir de ahora, en vez de definir un array de tamaño 5, crearemos un array de tamaño 6. ¿Vale? Del tamaño que el usuario defina. ¿Vale? 40 00:08:43,980 --> 00:08:56,039 Y ahora vamos a añadir nuestro bucle. Vamos a hacer un bucle para rellenar el vector, para rellenar el array y otro bucle para imprimirlo, ¿vale? 41 00:08:56,519 --> 00:09:15,899 Entonces, vamos a hacer un mientras, uy, mientras que, ¿vale? Si lo queréis hacer más rápido, recuerdo que os venís aquí a los comandos y le dais a mientras, ¿vale? 42 00:09:15,899 --> 00:09:34,820 Y aquí lo tenéis. Entonces, recuerdo que nosotros queremos ir desde la posición 0 hasta el tamaño de la raíz, ¿vale? Desde la posición 0 hasta el tamaño de la raíz. 43 00:09:34,820 --> 00:09:41,360 Entonces, vamos a crearnos una variable que lo que haga es que vaya por todas las columnas de la raíz, ¿vale? 44 00:09:41,620 --> 00:09:45,720 A esa variable, eso sería, digamos, que el índice de la columna, ¿vale? 45 00:09:46,120 --> 00:09:49,480 La primera columna será la 0, la siguiente la 1 y así consecutivamente. 46 00:09:49,740 --> 00:09:54,019 Entonces, me creo una variable índice y la inicializo a 0, ¿vale? 47 00:10:01,830 --> 00:10:04,909 Ahí, la variable índice indicará la posición de la raíz. 48 00:10:05,909 --> 00:10:06,789 Columna en una tabla. 49 00:10:08,649 --> 00:10:11,610 En una tabla de una única fila. 50 00:10:12,610 --> 00:10:13,090 ¿Vale? 51 00:10:13,210 --> 00:10:26,940 ¿Ok? Y ahora, aquí dentro, pues vamos a decirle que vaya desde que, mientras que esa variable índice sea menor que el tamaño, ¿vale? 52 00:10:27,480 --> 00:10:35,179 ¿Por qué pongo menor? Porque quiero que vaya desde 0 hasta tamaño menos 1, hasta size menos 1. 53 00:10:35,179 --> 00:10:40,399 Si pusiera menor o igual, también me cogería el size y me daría un error, ¿vale? 54 00:10:40,399 --> 00:10:52,059 Y aquí dentro, pues ponemos que mi array de índice sea igual a azar de 100, ¿vale? 55 00:10:52,440 --> 00:10:56,840 Y tenemos que incrementar el índice para que no siempre escriba en la posición 0, 56 00:10:56,919 --> 00:11:00,299 sino que empiece en la 0, luego la 1, luego la 2, así consecutivamente. 57 00:11:00,980 --> 00:11:04,740 Pues ponemos índice igual a índice más 1. 58 00:11:04,740 --> 00:11:25,210 Y ahora volvemos a poner el índice a cero, ¿vale? Y hacemos un bucle exactamente igual, pero para imprimir, ¿vale? Fijaros. 59 00:11:25,210 --> 00:11:42,909 Y ahora lo que yo hago simplemente es escribir mi array de índice, ¿vale? Y de nuevo incremento el índice, ¿vale? Porque si no siempre vamos a imprimir la misma posición, ¿vale? 60 00:11:42,909 --> 00:12:14,120 Y ejecuto. El programa se queda aquí parado esperando a que yo defina el tamaño del array, ¿vale? Yo defino, por ejemplo, 15, le doy al Enter y fijaros que me ha rellenado un array de 15 elementos aleatorios entre 0 y 99 y luego lo ha impreso, ¿vale? 61 00:12:14,120 --> 00:12:26,929 Vale, pues espero que os haya quedado claro todo el tema de Array, de todas formas iremos trabajando en clase con ella, ¿vale? Un saludo.