-
Hola, éste es un video...
-
whoops!
-
...no me lastimaré a mí mismo durante
-
el curso de éste video
-
empezaré de nuevo
-
Hola, éste es un video sobre arreglos
-
en Java/Processing
-
y voy a usar Processing 3!
-
el cual es mi nueva canción
-
mi nuevo álbum Processing 3
-
Entonces, ¿qué es un arreglo?
-
¿Por qué querrías usar uno?
-
¿Cómo funciona?
-
¿Y qué clase de cosas puedes hacer con él?
-
Ese es el tópico de éste nuevo video
-
Entonces, quizás estas familiarizado
-
con la idea de las variables
-
int num = 7
-
entonces, tienes una variable cuyo nombre es "num"
-
el type es "int", entero (integer)
-
y el valor es 7
-
pero, ¿qué pasa si quieres muchos números?
-
quieres tener 1 y 2 y 3 y 4,
-
tendrías que hacer todas estas variables.
-
Bueno, un arreglo es una forma de tener
en una sola variable
-
una lista de valores individuales
-
y esos valores pueden ser:
-
números,
-
o pedazos de textos,
-
puede ser un arreglo de imágenes.
-
Una lista de algo que sea un pedazo de dato
-
y tener una lista de ese algo.
-
Y por otro lado,
-
están los objetos...
-
Un arreglo es un objeto,
-
pero no hablaré de objetos en éste video,
-
los cuales son bastante poderosos.
-
En el link de abajo recordaré colocar
videos sobre objetos
-
Entonces, ¿cómo se hace ésta lista?
-
Bueno, con una variable siempre
necesitas un nombre y un type
-
Así, con un arreglo...
-
Un arreglo es una variable pero
es una lista...
-
Yo veo las variables como valores únicos
-
y un arreglo es una lista de valores.
-
Como sea, en éste arreglo
-
el cual yo llamé "nums"
-
también necesitas ponerle un nombre:
"nums" y un type: "int"
-
pero,
-
hay que añadir esta sintaxis:
corchete y corchete
-
busca en tu teclado y encuentra
los botones del corchete
-
si no los has usado antes,
los necesitarás bastante con los arreglos
-
entonces, ahora tengo un arreglo
de números
-
y puedo iniciarlo.
-
En vez de un solo valor,
-
puede usar llaves:
7, 5, -32, 90
-
ahora puedes ver que tengo un arreglo
-
con 4 valores.
-
Voy a empezar un dibujo,
-
y añadir esto.
-
Voy a decir al comienzo:
int [] nums = {30, 40, 10, 5};
-
números arbitrarios.
-
y puedes ver aquí que tenemos:
-
así es la sintaxis del arreglo.
-
Hay otras formas de iniciar un arreglo,
-
se puede usar un loop
-
pero voy a llegar a eso
en un momento.
-
Esta es solo una forma de empezar
-
ésta lista de valores.
-
Ahora viene la pregunta:
-
por acá, si quisiera usar el valor "num",
-
para dibujar un elipse,
-
con un tamaño de "num",
-
entonces, yo quiero usar este valor,
-
para ser el tamaño de un círculo,
-
solo tomo ésta variable,
-
y la coloco en el ancho y el alto
de la función de elipse,
-
pero, ¿qué sucede si quiero usar estos
o algún valor de éste arreglo?
-
mmm... nums... ¿qué?
-
El problema es que "num" es un valor único
-
Not Synced
En éste otro hay que señalar uno
de estos valores en particular,
-
Not Synced
y la forma en la que esto se hace
-
Not Synced
es con un index.
-
Not Synced
Un index es una dirección
dentro del arreglo
-
Not Synced
como contando el arreglo,
-
Not Synced
es como: aquí esta el número uno,
-
Not Synced
el número dos,
-
Not Synced
el número tres,
-
Not Synced
o el número cuatro.
-
Not Synced
Ahhh! Pero aquí tendría un problema...
-
Not Synced
Es decir, esto me hace muy feliz!
-
Not Synced
Pero es raro cómo se cuentan
los arreglos en la programación.
-
Not Synced
Puedes pensar que esto tiene 4 elementos,
-
Not Synced
Éste es el primer elemento
-
Not Synced
y éste el segundo
-
Not Synced
Lo que te he dicho es correcto,
-
Not Synced
sin embargo,
-
Not Synced
contando en los arreglos,
-
Not Synced
esto es técnicamente index 0,
-
Not Synced
entonces, cuando cuentes los elementos
en un arreglo
-
Not Synced
empieza con 0 y no con 1
-
Not Synced
entonces, este es el elemento 0,
-
Not Synced
este es el elemento 1,
-
Not Synced
éste es el elemento 2,
-
Not Synced
y éste es el elemento 3.
-
Not Synced
El valor de index va de 0 a 3,
-
Not Synced
con un total de 4 elementos.
-
Not Synced
Entonces, para dirigir individualmente
uno de estos,
-
Not Synced
nums index 3,
-
Not Synced
y una vez más, corchetes,
-
Not Synced
los corchetes son la sintaxis de los arreglos
-
Not Synced
Voy a tener un arreglo y luego lo dirijo,
-
Not Synced
no al tercer elemento,
-
Not Synced
sino al cuarto elemento que es index 3.
-
Not Synced
Y ahora,
-
Not Synced
si miras esto,
-
Not Synced
ésta línea de código,
-
Not Synced
dibujaría un círculo con un tamaño de 7,
-
Not Synced
y ésta línea de código,
-
Not Synced
dibujaría un círculo con un tamaño de 90,
-
Not Synced
si cambio esto a 1 obtendría 5,
-
Not Synced
si lo cambio a 0 obtengo 7.
-
Not Synced
Ahora, añadamos esto en este programa.
-
Not Synced
Entonces diré:
-
Not Synced
void setup
-
Not Synced
diré que el tamaño es 400,400,
-
Not Synced
y voy a draw y diré:
-
Not Synced
el fondo a 0 y el relleno a 255,
-
Not Synced
y luego cuando digo círculo,
-
Not Synced
añado 100, 100, nums[1], nums [1],
-
Not Synced
Le daré un zoom out aquí,
-
Not Synced
y ejecutaré éste video,
-
Not Synced
y mira el resultado,
-
Not Synced
y pueden ver aquí,
-
Not Synced
¡TADA!
-
Not Synced
Estoy como cantando hoy,
no sé por qué.
-
Not Synced
Bueno, eso no es cantar realmente,
-
Not Synced
decir "tada", pero, ¿qué importa?
-
Not Synced
El tamaño de ese círculo es, ¿qué?
-
Not Synced
¿30? ¿40?
-
Not Synced
0 es 30 y 1 es 40,
-
Not Synced
el tamaño es 40.
-
Not Synced
Veamos si cambio esto a nums index 2
-
Not Synced
Ahora mira esto, obtengo uno pequeño
-
Not Synced
Entonces, hay unas pequeñas cosas
-
Not Synced
que puedo añadirle a esto.
-
Not Synced
Bueno, no sé en qué dirección esta yendo esto,
-
Not Synced
pero voy a ir en alguna dirección.
-
Not Synced
Ésta es la dirección a la que estoy yendo ahora.
-
Not Synced
Dibujemos un círculo con todos ellos.
-
Not Synced
Entonces, hay cuatro elementos:
-
Not Synced
0, 1, 2, 3,
-
Not Synced
Ahora agreguemosle más espacio.
-
Not Synced
100, 200, 300, 400,
-
Not Synced
y haré el tamaño 500.
-
Not Synced
Ahora,
-
Not Synced
mira esto y hagamos estos números más grandes,
-
Not Synced
50, 92,
-
Not Synced
entonces, como puedes ver,
-
Not Synced
¿qué está pasando aquí?
-
Not Synced
Si acercamos un poco la pantalla
-
Not Synced
solo para ver todo esto,
-
Not Synced
tengo 4 círculos,
-
Not Synced
con valores de X diferentes:
100, 200, 300, 400
-
Not Synced
cada círculo obtiene su ancho y alto
-
Not Synced
del arreglo: index 0, 1, 2, 3,
-
Not Synced
entonces, esto esta funcionando,
-
Not Synced
esto es una buena idea,
-
Not Synced
he estado hablando de esto por 7 minutos,
-
Not Synced
pero esto funciona bien,
-
Not Synced
esto esta ayudándonos,
-
Not Synced
en vez de tener 4 variables distintas,
-
Not Synced
tengo una sola variable
-
Not Synced
con una lista de cuatro datos,
-
Not Synced
pero tenemos cuatro líneas de código,
-
Not Synced
lo cual es algo ridículo, ¿cierto?
-
Not Synced
Es decir, no es ridículo,
-
Not Synced
pero es...
-
Not Synced
El problema es que,
-
Not Synced
¿qué pasa si tengo 100 valores en un arreglo?
-
Not Synced
¿qué pasa si tengo 200 valores en un arreglo?
-
Not Synced
no quiero tener 200 líneas de código,
-
Not Synced
pero si lo notas,
-
Not Synced
hay una clase de lógica aquí,
-
Not Synced
empiezas con 0 aquí,
-
Not Synced
luego vas a 1, vas a 2, vas a 3,
-
Not Synced
esto es como una cuenta.
-
Not Synced
¿Recuerdas que hubo un momento
-
Not Synced
en el que aprendiste lo que era un for loop?
-
Not Synced
Si no lo hiciste te linkeare un video sobre
los for loops
-
Not Synced
Bueno, escribiste algo como esto
-
Not Synced
o yo he hecho esto muchas veces.
-
Not Synced
for int i es igual a cero,
-
Not Synced
i es menos que 4,
-
Not Synced
i más más.
-
Not Synced
Ahora...
-
Not Synced
¡Esto es como un terrible marcador!
-
Not Synced
...si yo pongo...
-
Not Synced
¡mucho mejor...!
-
Not Synced
...println(i);
-
Not Synced
justo aquí éste loop se ejecutariía,
-
Not Synced
y primero,
-
Not Synced
se imprimiría el valor de 0,
-
Not Synced
luego el de 1, luego el de 2,
-
Not Synced
tenemos 0, 1, 2, 3, y luego sería 4,
-
Not Synced
pero 4 no existe, entonces,
-
Not Synced
i es menor que 4, y el loop terminaría
-
Not Synced
entonces, nota que el for loop
es una estructura
-
Not Synced
que puede ser usada para contar
una variable
-
Not Synced
desde cero hasta un límito como 4.
-
Not Synced
Bueno, esta es exactamente la estructura
-
Not Synced
que necesitamos.
-
Not Synced
Entonces, si regreso a éste código,
-
Not Synced
y digo:
-
Not Synced
for int "i" es igual a cero,
-
Not Synced
"i" es menor que 4,
-
Not Synced
"i" más más
-
Not Synced
y luego, tomo esta línea de código,
-
Not Synced
y la coloco aquí,
-
Not Synced
bueno, ahora, reemplazo este index 0
con "i"
-
Not Synced
Entonces, éste loop...
-
Not Synced
me haré más espacio aquí.
-
Not Synced
... éste loop...
-
Not Synced
voy a comentar ésta área.
-
Not Synced
...éste loop está ahora haciendo el trabajo
-
Not Synced
de lo que éste código hacía antes,
-
Not Synced
en vez de escribir manualmente 0, 1, 2, 3,
-
Not Synced
éste loop le dice a "i" que use los nums
-
Not Synced
(nums 0, nums 1, nums 2, nums 3)
-
Not Synced
Ahora, ejecutemos esto y veamos qué sucede.
-
Not Synced
Bueno, funciono...
-
Not Synced
... pero se ve mal...
-
Not Synced
¿por qué se ve mal?
-
Not Synced
¡Ahhh!
-
Not Synced
Todos los valores del círculo son 100,
-
Not Synced
y yo quería que fueran 100, 200, 300, 400,
-
Not Synced
Bueno,
-
Not Synced
por aquí, recuerda que el loop está contando
-
Not Synced
"i" 0, 1, 2, 3,
-
Not Synced
¿qué pasa cuando se multiplican cada uno por 100?
-
Not Synced
me da: 0, 100, 200, 300,
-
Not Synced
ahh, pero yo quiero que sea 100, 200, 300, 400,
-
Not Synced
ya sé, ¿por qué no simplemente le sumo 100?
-
Not Synced
como puedes ver, otra cosa que podemos hacer
-
Not Synced
"i" puede ser el index en el arreglo
-
Not Synced
0, 1, 2, 3,
-
Not Synced
pero también podemos aplicar
algo de matemática
-
Not Synced
para hacer otras cosas diferentes.
-
Not Synced
Como aquí,
-
Not Synced
en vez de decir:
-
Not Synced
100,
-
Not Synced
¿qué pasaría si quisiera decir:
-
Not Synced
"i" por 100?
-
Not Synced
eso me daría 0, 100, 200 y 300
-
Not Synced
y luego si le sumo 100 a eso,
-
Not Synced
entonces tengo:
-
Not Synced
100, 200, 300, 400.
-
Not Synced
Entonces, ejecutemos esto.
-
Not Synced
Y tenemos exactamente lo que teníamos.
-
Not Synced
el ancho tendría solo estos valores.
-
Not Synced
Una cosa que debería mencionar,
-
Not Synced
Dos cosas que debería mencionar...
-
Not Synced
Voy a tratar de abarcar todo en este video.
-
Not Synced
Pero hay un par de cosas que
debo mencionar.
-
Not Synced
Una es que no me gusta tener el número 4 allí.
-
Not Synced
Esto es un valor de hard code,
-
Not Synced
¿qué tal si añado más valores al arreglo?
-
Not Synced
seguiría el loop por solo 4 de ellos.
-
Not Synced
Entonces una cosa que podrías hacer es:
-
Not Synced
nums.length
-
Not Synced
esto resuelve dinámicamente
-
Not Synced
la longitud del arreglo,
-
Not Synced
entonces, si fuera a añadir otro,
-
Not Synced
como 75,
-
Not Synced
puedes ver que añadí un número extra,
-
Not Synced
el cual me dio un círculo extra,
-
Not Synced
y ahora el loop repite todo el arreglo,
-
Not Synced
siempre usando la longitud.
-
Not Synced
También puedo acercarlos un poco.
-
Not Synced
Acerquemoslo por 50.
-
Not Synced
Ahora están más apilados.
-
Not Synced
¡Aja!
-
Not Synced
¿Qué era la otra cosa que quería mostrarte?
-
Not Synced
Bueno, esto es una forma de iniciar un arreglo,
-
Not Synced
solo le doy unos números estáticos
-
Not Synced
dentro de estas llaves,
-
Not Synced
Sin embargo,
-
Not Synced
algo que me gusta hacer más seguido,
-
Not Synced
es darle al arreglo valores iniciales
-
Not Synced
que quizás pueden ser al azar
-
Not Synced
así que digamos que hay 8 valores,
-
Not Synced
y, diré que nums "i" es igual a int random
y algo entre 10 y 100.
-
Not Synced
Entonces, éste código que está completando el arreglo
-
Not Synced
con un número al azar,
-
Not Synced
el loop empieza desde 0 hasta 8,
-
Not Synced
toma un número al azar entre 10 y 100,
-
Not Synced
y luego lo coloca en el arreglo.
-
Not Synced
Pero lo gracioso de los arreglos,
-
Not Synced
es que tienes que específicar,
-
Not Synced
desde antes,
-
Not Synced
el tamaño que quieres de ese arreglo.
-
Not Synced
Ahora, hay muchas formas de expandir
-
Not Synced
y contraer, ese arreglo.
-
Not Synced
Pero hay otros videos que cubren eso.
-
Not Synced
Pero por el propósito de esta discusión,
-
Not Synced
el arreglo tiene una longitud fija.
-
Not Synced
Como vimos,
-
Not Synced
una forma de obtener esa longitud fija
-
Not Synced
es escribiendo manualmente los valores.
-
Not Synced
Pero, ¿qué pasa si no sabes los valores?
-
Not Synced
Solo quieres saber cuántos deberían haber.
-
Not Synced
Pues la sintaxis para hacer
se ve un poco boba
-
Not Synced
pero si no lo estas llenando manualmente
-
Not Synced
lo que necesitas decir es que quieres
-
Not Synced
un nuevo int con 100 espacios en el arreglo
-
Not Synced
entonces éste es tu número.
-
Not Synced
Esto se ve muy redundante,
-
Not Synced
tengo un int con un arreglo llamado nums,
-
Not Synced
el cual es un nuevo int con un arreglo y 100 espacios.
-
Not Synced
Pero hay cosas nuevas aquí,
-
Not Synced
esto está declarando tu intención en el arreglo,
-
Not Synced
y esto está creando el arreglo
-
Not Synced
en el espacio de memoria de la computadora,
-
Not Synced
para almacenar 100 valores.
-
Not Synced
Entonces, si vuelvo para acá,
-
Not Synced
puedo cambiar este código de arriba y decir:
-
Not Synced
nuevo int con 8 espacios,
-
Not Synced
nums punto length (nums.length).
-
Not Synced
Y ahora despejemos un poco
cómo dibujamos esto
-
Not Synced
diré: noFill (sin relleno),
-
Not Synced
y el contorno a 255,
-
Not Synced
y la línea de contorno a 4,
-
Not Synced
Entonces, el punto de lo que quería mostrar
-
Not Synced
es que ahora,
-
Not Synced
puedes ver aquí,
-
Not Synced
cada vez que ejecuto este dibujo
-
Not Synced
voy a tener un nuevo resultado.
-
Not Synced
Cada vez voy a crear un arreglo con 8 espacios,
-
Not Synced
cada vez voy a completar este arreglo,
-
Not Synced
con 8 números al azar,
-
Not Synced
y luego,
-
Not Synced
siempre voy a repetir éste arreglo,
-
Not Synced
y dibujaré un círculo usando cada elemento
del arreglo.
-
Not Synced
Así que aquí vamos,
-
Not Synced
lo ejecutaremos de nuevo solo para ver
-
Not Synced
estos círculos con tamaños al azar,
-
Not Synced
lo ejecutamos de nuevo,
-
Not Synced
¡y mira a esos círculos con diferentes tamaños!
-
Not Synced
Entonces, para ti,
-
Not Synced
Puedo pensar en varios ejercicios,
-
Not Synced
1. ¿Qué pasa si tu arreglo...
-
Not Synced
en vez de tener números en él,
-
Not Synced
quizás sabes sobre las cadenas,
-
Not Synced
quizás no,
-
Not Synced
pero, ¿qué tal si haces un arreglo...
-
Not Synced
con cadenas en él?
-
Not Synced
"hola" "mi" "amigo"
-
Not Synced
éste es un arreglo con tres cadenas,
-
Not Synced
tres secuencias de caracteres,
-
Not Synced
así que podrías mostrar
-
Not Synced
cada vez que ejecutas el dibujo,
-
Not Synced
uno de estos caracteres al azar,
-
Not Synced
o puedes hacer algo al clickear el mouse,
-
Not Synced
puedes ver un mensaje a la vez,
-
Not Synced
¿cómo harías eso?
-
Not Synced
ahí habrían dos ejercicios interesantes,
-
Not Synced
intentar este escenario en particular
-
Not Synced
que yo he hecho aquí,
-
Not Synced
estoy repitiendo el arreglo entero,
-
Not Synced
pero, ¿qué tal si tú solo quieres usar
un número a la vez?
-
Not Synced
o una cadena a la vez.
-
Not Synced
La otra cosa que es crucial mencionar,
-
Not Synced
es que una razón para aprender esto
-
Not Synced
es que todas estas cosas en la ventana,
-
Not Synced
que estás viendo aquí,
-
Not Synced
es un arreglo de pixeles,
-
Not Synced
un arreglo de colores,
-
Not Synced
entonces, debajo de la cubierta,
-
Not Synced
de un dibujo de processing,
-
Not Synced
de una imagen que podrías cargar,
-
Not Synced
o una imagen que podría obtener de una cámara,
-
Not Synced
todos los colores de esta imagen
-
Not Synced
están almacenados en un arreglo gigante,
-
Not Synced
y puedes hacer un loop por todo ese arreglo,
-
Not Synced
para leer todos estos colores
-
Not Synced
y manipularlos
-
Not Synced
También añadiré un link debajo
-
Not Synced
para un tutorial online de imágenes y pixeles
-
Not Synced
para que tengas una base de eso.
-
Not Synced
Muy bien, entonces,
-
Not Synced
espero que éste video haya ayudado,
-
Not Synced
use un poco de processing 3 y unos lindos círculos,
-
Not Synced
y una camisa extraña...
-
Not Synced
¿se esta mezclando con el fondo?
-
Not Synced
Sí, mira, el fondo...
-
Not Synced
A nadie le importa eso,
-
Not Synced
pero es interesante para mí,
-
Not Synced
y diré hasta luego antes de que
esa cámara se apague.
-
Not Synced
¡Adiós!