< Return to Video

Arrays in Processing 3 (Java)

  • 0:02 - 0:04
    Hola, éste es un video...
  • 0:04 - 0:05
    whoops!
  • 0:06 - 0:09
    ...no me lastimaré a mí mismo durante
  • 0:09 - 0:10
    el curso de éste video
  • 0:10 - 0:13
    empezaré de nuevo
  • 0:13 - 0:15
    Hola, éste es un video sobre arreglos
  • 0:15 - 0:18
    en Java/Processing
  • 0:18 - 0:22
    y voy a usar Processing 3!
  • 0:22 - 0:24
    el cual es mi nueva canción
  • 0:24 - 0:31
    mi nuevo álbum Processing 3
  • 0:31 - 0:33
    Entonces, ¿qué es un arreglo?
  • 0:33 - 0:35
    ¿Por qué querrías usar uno?
  • 0:35 - 0:37
    ¿Cómo funciona?
  • 0:37 - 0:38
    ¿Y qué clase de cosas puedes hacer con él?
  • 0:38 - 0:40
    Ese es el tópico de éste nuevo video
  • 0:40 - 0:42
    Entonces, quizás estas familiarizado
  • 0:42 - 0:44
    con la idea de las variables
  • 0:44 - 0:48
    int num = 7
  • 0:49 - 0:52
    entonces, tienes una variable cuyo nombre es "num"
  • 0:52 - 0:55
    el type es "int", entero (integer)
  • 0:55 - 0:56
    y el valor es 7
  • 0:56 - 0:59
    pero, ¿qué pasa si quieres muchos números?
  • 0:59 - 1:02
    quieres tener 1 y 2 y 3 y 4,
  • 1:02 - 1:04
    tendrías que hacer todas estas variables.
  • 1:04 - 1:07
    Bueno, un arreglo es una forma de tener
    en una sola variable
  • 1:07 - 1:09
    una lista de valores individuales
  • 1:09 - 1:11
    y esos valores pueden ser:
  • 1:11 - 1:12
    números,
  • 1:12 - 1:13
    o pedazos de textos,
  • 1:13 - 1:15
    puede ser un arreglo de imágenes.
  • 1:15 - 1:17
    Una lista de algo que sea un pedazo de dato
  • 1:17 - 1:19
    y tener una lista de ese algo.
  • 1:19 - 1:22
    Y por otro lado,
  • 1:22 - 1:23
    están los objetos...
  • 1:23 - 1:25
    Un arreglo es un objeto,
  • 1:25 - 1:26
    pero no hablaré de objetos en éste video,
  • 1:26 - 1:27
    los cuales son bastante poderosos.
  • 1:27 - 1:30
    En el link de abajo recordaré colocar
    videos sobre objetos
  • 1:30 - 1:32
    Entonces, ¿cómo se hace ésta lista?
  • 1:32 - 1:37
    Bueno, con una variable siempre
    necesitas un nombre y un type
  • 1:37 - 1:39
    Así, con un arreglo...
  • 1:39 - 1:40
    Un arreglo es una variable pero
    es una lista...
  • 1:40 - 1:44
    Yo veo las variables como valores únicos
  • 1:44 - 1:47
    y un arreglo es una lista de valores.
  • 1:47 - 1:49
    Como sea, en éste arreglo
  • 1:49 - 1:52
    el cual yo llamé "nums"
  • 1:52 - 1:56
    también necesitas ponerle un nombre:
    "nums" y un type: "int"
  • 1:56 - 1:57
    pero,
  • 1:57 - 2:01
    hay que añadir esta sintaxis:
    corchete y corchete
  • 2:01 - 2:05
    busca en tu teclado y encuentra
    los botones del corchete
  • 2:05 - 2:07
    si no los has usado antes,
    los necesitarás bastante con los arreglos
  • 2:07 - 2:10
    entonces, ahora tengo un arreglo
    de números
  • 2:10 - 2:12
    y puedo iniciarlo.
  • 2:12 - 2:15
    En vez de un solo valor,
  • 2:15 - 2:21
    puede usar llaves:
    7, 5, -32, 90
  • 2:21 - 2:23
    ahora puedes ver que tengo un arreglo
  • 2:23 - 2:26
    con 4 valores.
  • 2:26 - 2:28
    Voy a empezar un dibujo,
  • 2:29 - 2:33
    y añadir esto.
  • 2:33 - 2:43
    Voy a decir al comienzo:
    int [] nums = {30, 40, 10, 5};
  • 2:43 - 2:44
    números arbitrarios.
  • 2:44 - 2:47
    y puedes ver aquí que tenemos:
  • 2:47 - 2:48
    así es la sintaxis del arreglo.
  • 2:48 - 2:51
    Hay otras formas de iniciar un arreglo,
  • 2:51 - 2:52
    se puede usar un loop
  • 2:52 - 2:53
    pero voy a llegar a eso
    en un momento.
  • 2:53 - 2:56
    Esta es solo una forma de empezar
  • 2:56 - 2:57
    ésta lista de valores.
  • 2:57 - 3:00
    Ahora viene la pregunta:
  • 3:00 - 3:07
    por acá, si quisiera usar el valor "num",
  • 3:07 - 3:11
    para dibujar un elipse,
  • 3:11 - 3:15
    con un tamaño de "num",
  • 3:15 - 3:20
    entonces, yo quiero usar este valor,
  • 3:20 - 3:22
    para ser el tamaño de un círculo,
  • 3:22 - 3:24
    solo tomo ésta variable,
  • 3:24 - 3:26
    y la coloco en el ancho y el alto
    de la función de elipse,
  • 3:26 - 3:34
    pero, ¿qué sucede si quiero usar estos
    o algún valor de éste arreglo?
  • 3:34 - 3:41
    mmm... nums... ¿qué?
  • 3:41 - 3:41
    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!
Title:
Arrays in Processing 3 (Java)
Description:

more » « less
Video Language:
English
Duration:
16:52

Spanish subtitles

Incomplete

Revisions