Return to Video

Expressions (14 mins)

  • 0:00 - 0:05
    En esta sección, vamos a agregar lo que se denominan expresiones al código que tenemos
  • 0:05 - 0:10
    disponible. Y eso es como la última pieza que necesitábamos para comenzar a escribir, tú sabes,
  • 0:10 - 0:14
    código de manipulación de imagen un poco realista.
    Y, en particular por el final de esta
  • 0:14 - 0:19
    sección jugaremos con rompecabezas que se basan en imágenes así que, eso será un poco divertido.
  • 0:19 - 0:24
    Así que, hemos escrito código como esto muchas veces. Entonces, aquí dice . Nosotros
  • 0:24 - 0:28
    tenemos un número, 40 o 100 o 250 o lo que sea y está en el código.
  • 0:28 - 0:33
    Resulta que en su lugar puedes escribir de esta manera. Entonces aquí dice . Y el
  • 0:33 - 0:37
    11 + 31 aquí, eso se llama una expresión. Y básicamente, en lugar de un
  • 0:37 - 0:43
    número fijo que se conoce de antemano, podemos poner una pequeña, una pequeña
  • 0:45 - 0:48
    expresión aritmética. Así que en este caso,11 + 31, es un pequeño problema. La forma en que esto funciona
  • 0:48 - 0:53
    es que, cuando el computador se ejecuta, cuando llega a esta línea. Lo primero que
  • 0:53 - 0:57
    va a hacer, es, se dice que va a evaluar la expresión.
    Por lo que sólo escoge la
  • 0:57 - 1:01
    expresión, y dice bien. Bien, tengo que averiguar qué número se trata. En
  • 1:01 - 1:05
    este caso, sólo hace la adición, por lo tanto, 11 + 3, es 42. Así que una vez la
  • 1:05 - 1:09
    expresión ha sido evaluada a un número 42, el código puede continuar,
  • 1:09 - 1:14
    y sólo tiene que utilizar ese número. Así pues, en efecto, esto sólo imprime 42. Y así en cualquier lugar
  • 1:14 - 1:18
    del código donde habríamos tenido un número,
    como 0 o 255 o 100 o algo
  • 1:18 - 1:23
    en su lugar vamos a ser capaces de poner pequeñas expresiones aritméticas a efectos de incorporar un
  • 1:23 - 1:28
    poco de computación para calcular qué número queremos que utilice. Eso nos
  • 1:28 - 1:33
    va a permitir resolver mejor los problemas. Bien, no hemos hablado de eso por ahora, pero
  • 1:33 - 1:39
    el píxel tiene estas tres funciones adicionales.
    Está y lo que
  • 1:39 - 1:44
    hace es, es una especie de reverso de .
    Recupera el número del
  • 1:44 - 1:49
    píxel. Así que hay algún valor rojo; 0 o 100 o algo.
    Esto lo recupera.
  • 1:49 - 1:54
    Y están también y .
    Así que va a ser muy
  • 1:54 - 1:59
    natural utilizar estos en expresiones para meterse con los valores RGB de un píxel. Así que
  • 1:59 - 2:04
    supongamos que lo que quiero hacer es doblar el valor rojo de un píxel, por lo que si es 50 quisiera
  • 2:04 - 2:09
    hacerlo un 100 y si es un 100 quiero hacerla un 200 o lo que sea. Así que aquí hay algo de código
  • 2:09 - 2:13
    que hace eso por lo que voy a pasar esto y esta idea de hacer un relativo
  • 2:13 - 2:18
    cambio a un píxel es cambio que usted sabe lo triple o algo parecido
  • 2:18 - 2:22
    ese,que va a ser una forma mucho más realista para hacer frente a los valores RGB
  • 2:22 - 2:27
    de los pixeles. Ahora veamos lo que hace este código. Entonces esta cita es correcta.
  • 2:27 - 2:32
    Dobla el valor rojo de un píxel. Así que lo que la primera línea hace, es, llama a .
  • 2:32 - 2:36
    Así se va a recuperar el número fuera.
    Y vamos a decir, en este
  • 2:36 - 2:41
    caso, que el valor rojo es 50. Así, , va a recuperar el 50.
  • 2:41 - 2:45
    Y entonces, aquí, estamos utilizando el signo igual de la manera que hacíamos antes, para
  • 2:45 - 2:49
    almacenar ese número en una variable. Voy a, voy a llamarla "old" (viejo), por el, el antiguo
  • 2:49 - 2:54
    valor. Así que, básicamente, esto sólo almacena 50 en "old". Así entonces, la siguiente línea dice
  • 2:54 - 2:58
    . Así que aquí, estoy usando la expresión. Y recuerda, la
  • 2:58 - 3:03
    manera en que funciona es, cuando llega a esta línea, la primer cosa que va a hacer
  • 3:03 - 3:07
    es evaluar la expresión. Por lo que va a mirar "old" multiplicado por dos. "Old", recuerda tiene
  • 3:07 - 3:11
    almacenado 50. Así que, básicamente, esto dice 50 veces dos, se va a evaluar eso, devolverá 100.
  • 3:11 - 3:15
    Por lo tanto evalúa la expresión para llegar a 100.
    Y ahora que tiene
  • 3:15 - 3:19
    ese valor, entonces puede seguir adelante y ejecutar el código. Y eso es lo que dice ,
  • 3:19 - 3:24
    esencialmente 100. Así que si piensas a través de toda la secuencia, básicamente esto
  • 3:24 - 3:29
    saca el 50, multiplica por dos para obtener 100 y almacena eso de nuevo.
  • 3:29 - 3:35
    Entonces en efecto, se multiplica por dos. Ahora. En realidad esta es la manera en que vamos a escribirlo.
  • 3:35 - 3:39
    Todo esto se puede condensar a sólo una línea porque, realmente esa,
  • 3:39 - 3:43
    esa variable "old" de ahí, no estaba añadiendo mucho.
    Sólo fue como una
  • 3:43 - 3:47
    cosa temporal. Y así que imaginemos ese mismo caso de píxel donde el
  • 3:47 - 3:51
    valor rojo es 50, y yo sólo voy a ejecutar esto.
    Sólo lo he condensado a una línea.
  • 3:51 - 3:56
    Así, imaginemos este código ejecutándose.
    Entonces, tengo un píxel realmente, aquí lo
  • 3:56 - 3:59
    tengo. Píxel con rojo de 50 y voy a ejecutar esta línea.
    Así que la primera cosa
  • 3:59 - 4:04
    que va a hacer es darse cuenta que hay una expresión aquí,
  • 4:04 - 4:08
    dos veces. Así, se va a evaluar esa expresión. Así que
  • 4:08 - 4:13
    vas a ir a buscar lo que es actualmente el valor rojo. Digamos 50. Por lo que dirá,
  • 4:13 - 4:17
    es el misma matemáticas que teníamos antes, 50 veces 2. Eso es 100. Y entonces con
  • 4:17 - 4:22
    ese valor 100, esencialmente va a llamar de 100 para poner eso de nuevo.
  • 4:22 - 4:27
    Así que funciona como la misma dinámica por la que pasamos. Por lo que obtiene el
  • 4:27 - 4:32
    valor, multiplica por dos y lo pone de nuevo.
    O, en efecto
  • 4:32 - 4:37
    se duplica el valor rojo. Así que voy a hacer un montón de ejemplos que siguen, con este patrón.
  • 4:37 - 4:44
    Así que lo vamos a ver. Como voy a empezar a usar esto dentro de bucles
  • 4:44 - 4:51
    como anteriormente habíamos hecho le sabemos decir cero o 250 tuvimos algunos número fijo pero ahora
  • 4:51 - 4:57
    vamos a escribir código y éste es el ejemplo que acabo de hacer. Código como este donde
  • 4:57 - 5:02
    vamos a cambiar el valor rojo basado en lo que era el valor rojo antes. Y entonces
  • 5:02 - 5:08
    la dinámica es, vamos a tener, ya sabes, muy a menudo vamos a decir y entonces
  • 5:08 - 5:14
    en el paréntesis vamos a llamar a y luego cierta aritmética. Por lo tanto
  • 5:14 - 5:19
    en este caso, esta línea duplica el valor rojo, o en última instancia, esta línea llama a
  • 5:19 - 5:24
    de 0.5 veces. Entonces está tomando el valor viejo
  • 5:24 - 5:28
    y multiplicarlo 0.5 veces o esencialmente dividir por dos,
    por eso va a
  • 5:28 - 5:33
    hacerlo más pequeño y, a continuación, colocarlo de nuevo.
    Así,eso es todo, seguiremos
  • 5:33 - 5:38
    ese patrón, un montón de veces. Así que permítanme llegar a un ejemplo real, aquí. Supongamos que yo,
  • 5:38 - 5:43
    yo voy a tomar la imagen de la flor.
    Y digamos que quiero que se vea
  • 5:43 - 5:48
    más naranja. Por lo mi estrategia va a ser, bueno, vamos a cambiar el valor de verde. Vamos a
  • 5:48 - 5:52
    apenas bajar el verde. Y así, matemáticamente, voy a decir, vamos a
  • 5:52 - 5:56
    cambiar el verde para que este al 75% de lo que era. Ahora, en este ejemplo,
  • 5:56 - 6:01
    realmente he comenzado la página con ningún código en ella. Por lo que voy a escribirlo ahora.
  • 6:01 - 6:05
    Así digo píxel, por lo tanto,
    si quiero cambiar el verde al 75% de
  • 6:05 - 6:10
    lo que era. Y esto es, sabes, alguno
    del ejemplo que mostré. Diré
  • 6:10 - 6:14
    . También puedes escribir esto fuera [inaudible] entones, quiero llamar a
  • 6:14 - 6:19
    y quiero poner aquí algún tipo de expresión, la quiero
  • 6:19 - 6:24
    para calcular un número que quiero devolver para el valor verde. Por lo que el patrón
  • 6:24 - 6:28
    que voy a usar aquí es , voy a obtener el valor antiguo y
  • 6:28 - 6:33
    entonces puedo, tú sabes, multiplicar tantas veces.
    En este caso multiplicar 0.75
  • 6:33 - 6:38
    veces. Así voy cambiarlo a tres cuartas partes de lo que era. Así que vamos
  • 6:38 - 6:43
    a probar eso. Ah, vale. Entonces hace que sea, si recuerdan era
  • 6:43 - 6:49
    como amarillo. Realmente si pongo 1.0 aquí,
    no podemos hacer ningún cambio. Bueno, eso era
  • 6:49 - 6:54
    cuando era agradable y amarillo. Entonces aquí esta tu 0.75 de nuevo.
  • 6:54 - 6:58
    Entonces tenemos un poco más de naranja.
    Debo decir, para estos ejemplos voy a,
  • 6:58 - 7:02
    sólo voy a tomar el tiempo para escribir el código. Y puedes hacerlo si lo deseas
  • 7:02 - 7:06
    al volver sobre esto mismo. Hay un pequeño botón de "mostrar solución" aquí abajo. Por lo tanto,
  • 7:06 - 7:10
    si vienes a la revisión posterior, el código de la solución está disponible. Pero, solo
  • 7:10 - 7:14
    sentía como practicar propósitos. Es mejor comenzar con una pantalla en blanco. Y entonces
  • 7:14 - 7:18
    realmente pasar por el proceso de escribir el código. Por lo tanto, todos estos ejemplos seguirán
  • 7:18 - 7:23
    ese patrón. Vamos a intentar algo un poco más difícil. Entonces esto dice
  • 7:23 - 7:30
    poner el rojo, verde y azul cada uno a 0.75 de sus valores originales y, a continuación, intentaremos
  • 7:30 - 7:37
    con 0.5 y 0.25. ¿Qué voy a hacer?. Una GRAN tradición de ciencias de la computación, es en lugar
  • 7:37 - 7:43
    de escribir el código absolutamente desde el principio, yo voy a copiarlo, el que hice
  • 7:43 - 7:50
    antes y sólo voy a pegarlo. Voy a hacer tres copias del mismo, y luego lo arreglamos
  • 7:50 - 7:56
    para hacer lo que quiera aquí. Está bien, así que normalmente siempre voy en orden, rojo, verde, azul.
  • 7:56 - 8:02
    Así que voy a decir para y, lo que hice decir a 0.75. Bueno, por lo que
  • 8:02 - 8:08
    eso, eso es una buena. Y, a continuación, decimos para obtener verde 0.75 veces.
  • 8:08 - 8:14
    Y entonces, haremos azul al final. Así , . Puedes ver una especie de
  • 8:14 - 8:19
    patrón aquí del y siendo combinados.
    Eso está muy bien. Es un muy
  • 8:19 - 8:24
    factible patrón. Así que voy a ejecutarlo así.
    Sí, es un poco sutil pero lo
  • 8:24 - 8:29
    que ha hecho, es tomar la imagen original y hacerla un poco más oscura. Porque si
  • 8:29 - 8:33
    piensas sobre eso, multiplicar por 0.75 estamos como moviendo todo hacia
  • 8:33 - 8:38
    cero y evidentemente cero, cero es negro puro, por lo que nosotros estamos como comprimiendo así.
  • 8:38 - 8:43
    Así que vamos a intentar hacerlo un poco extremo. Así, podrá multiplicarse 0.5 veces y
  • 8:43 - 8:48
    voy a ejecutar eso. Oh, es un poco más oscuro.
    Y si casi por 0.25 tan sólo un cuarto de
  • 8:48 - 8:54
    los valores originales. Ah, entonces sí, entonces se está haciendo bastante oscuro. Por lo tanto, esto demuestra
  • 8:54 - 8:59
    un realista e interesante uso de este tipo de idea de escala de usar
  • 8:59 - 9:05
    combinado con y multiplicarlo tantas veces para jugar
  • 9:05 - 9:10
    con los valores. Escalar hacia arriba o escalar hacia abajo. Muy bien. Así que hay un,
  • 9:10 - 9:14
    un tercer problema aquí, yo voy a saltarlo. Este es sólo para práctica extra,
  • 9:14 - 9:18
    si quieres ven y prueba este y tiene un, tiene un código de solución
  • 9:18 - 9:22
    también. Así que lo que realmente quiero hacer,
    es trabajar uno de estos 5-10-20
  • 9:22 - 9:28
    puzzles(rompecabezas). Así que la idea con el rompecabezas 5-10-20 es que hubo alguna
  • 9:28 - 9:33
    imagen de una flor, pieza de fruta o algo y se ha modificado
  • 9:33 - 9:39
    y se ha modificado de manera que los valores rojos, verdes y azules han sido todos divididos por
  • 9:39 - 9:45
    cinco, diez o veinte. Por lo que los valores son mucho más pequeños, las imágenes podrían ser
  • 9:45 - 9:50
    realmente oscuras y el desafío, es multiplicar los valores rojos, verdes y azules
  • 9:50 - 9:55
    por cinco, diez o veinte.
    Esencialmente "deshacer" el oscurecimiento
  • 9:55 - 10:01
    para de algún modo regresar la imagen. Y así. Así como esto solo [inaudible] sólo desciende a algunos
  • 10:01 - 10:06
    experimentando y jugando un poco para tratar de averiguar cómo obtener la
  • 10:06 - 10:10
    imagen de nuevo. Entonces el número cinco se utiliza una vez, el número diez una vez y el
  • 10:10 - 10:15
    número veinte se utiliza una vez, así que básicamente sólo tienes que averiguar cuál
  • 10:15 - 10:19
    va con qué color. Y debo decir, sabes hay sólo seis posibles formas de
  • 10:19 - 10:24
    tener cinco diez y veinte por lo que no hay realmente mucho por lo que pasar. La
  • 10:24 - 10:29
    forma en que pienso es bueno quizas puedes imaginar los cinco primero es rojo y
  • 10:29 - 10:33
    así está bien, cinco es la primera y entonces es bien cinco, diez, veinte. O
  • 10:33 - 10:37
    cinco, veinte, diez. Así que si cinco es la primera hay sólo dos posibilidades y entonces
  • 10:37 - 10:41
    Asimismo si diez primeros hay sólo dos posibilidades y si veinte es la primera
  • 10:41 - 10:44
    hay es sólo dos posibilidades, así que es una forma puede tipo de organización
  • 10:44 - 10:49
    mientras tu buscas a través de este, bien permítanme permítanme volver aquí. Como ya he dicho
  • 10:49 - 10:56
    antes y agarrar, una copia de mi código así no empezamos con nada. Bueno, en
  • 10:56 - 11:01
    este caso lo que tenemos es un, un plátano.
    En realidad, aquí, voy a, voy a comentar estas]
  • 11:01 - 11:06
    líneas fuera por un segundo, por lo que sólo podemos ver lo que ve la imagen con nada. Por lo tanto
  • 11:06 - 11:11
    existe la imagen de rompecabezas. Y lo que muestra-, te voy a decir. Hay una banana
  • 11:11 - 11:16
    amarilla y está sobre un fondo de ladrillo rojo oscuro. Y entre los ladrillos rojos,
  • 11:16 - 11:21
    hay un poco de musgo verde que se puede ver. Así que si se fija la imagen, nos
  • 11:21 - 11:26
    debería poder ver todas esas cosas.
    Para corregir la imagen. Lo que quiero hacer aquí
  • 11:26 - 11:31
    es multiplicar. Permite, sólo me va a... Voy a empezar sólo con cinco, diez, veinte como
  • 11:31 - 11:36
    estos. Así que vamos a decir, bien vamos a adivinar que el rojo debe ser multiplicado por cinco,
  • 11:36 - 11:41
    necesita ser multiplicado por diez el verde y el azul tiene que ser multiplicado por
  • 11:41 - 11:46
    veinte. Su sólo una suposición. Por tanto, si hago eso. Mm-hm, bien, bien, que
  • 11:46 - 11:50
    claramente equivocada, verdad? El banano no se ve muy bien. Y los ladrillos tienen esto
  • 11:50 - 11:55
    elenco de azul, por lo no es bueno. Así que voy, me quedo con la suposición de que
  • 11:55 - 12:00
    los cinco es el primero, aunque. Y voy a tratar otra permutación. Muy bien, así que, bien
  • 12:00 - 12:06
    tal vez es cinco, veinte, diez.
    Así lo probaré así. Ah, y eso es peor.
  • 12:06 - 12:11
    [risa] >> Bien. Por lo tanto, no creo que los cinco es el primero. Cuando traté de las dos maneras
  • 12:11 - 12:21
    con los cinco primeros. Así que vamos a tratar de los diez primeros, así que voy a tratar de diez. 520. Bien, por lo que
  • 12:21 - 12:26
    Sólo estoy escala estos. Ew, hm. ¿Bueno, quiero decir que creo que estamos recibiendo, derecho? Quiero
  • 12:26 - 12:31
    decir el plátano parece bastante bueno, pero obviamente son los ladrillos, que sabemos no es
  • 12:31 - 12:36
    purpura. [risa] Se supone que es rojo. Así que permítanme intentar, estoy
  • 12:36 - 12:42
    va a intentar dejando los cinco en el medio y sólo poniendo el 20 primero. Veinte,
  • 12:42 - 12:48
    cinco, diez, vamos a intentar que. Allí lo tenemos. Existe la banana, se ve bonita y
  • 12:48 - 12:53
    amarilla. Puede ver los ladrillos tienen este color rojo oscuro. Y, a continuación, incluso un poco
  • 12:53 - 12:58
    de musgo verde aquí. Eso es tranquilizador. Así que voy a acercar esto,
  • 12:58 - 13:04
    para poder mostrarte. [inaudible] algunas, algunas de las cualidades de la misma. Entonces parcialmente esta,
  • 13:04 - 13:08
    esta el ladrillo. Y el musgo y los plátanos se ven bien. Sólo hay una
  • 13:08 - 13:13
    cosa menor, pero usted verá hay tipo de un, consulte hay una especie de este banding horizontal
  • 13:13 - 13:17
    en el plátano y está bien es que es el aspecto de la solución
  • 13:17 - 13:23
    cuando tu la haces rápidamente. Eso está sucediendo porque cuando el rojo, verde y azul cuando
  • 13:23 - 13:28
    fueron divididos por este número por diez o quizás veinte todos aquellos valores que
  • 13:28 - 13:33
    normalmente van a cero a cincuenta cinco que se comprimen hasta que quizás sólo van
  • 13:33 - 13:38
    cero a cero a veinte cuatro o doce. Y como resultado... Porque eran
  • 13:38 - 13:42
    comprimido a ese rango, hubo pocos matices de amarillo disponible,
  • 13:42 - 13:46
    Cuando se fue comprimida abajo como ese. Y aun cuando ampliamos lo copia de seguridad, estamos
  • 13:46 - 13:50
    sigue atascado con sólo esos pocos matices. Eso es lo que estamos viendo en estos
  • 13:50 - 13:54
    banda horizontal, existe, hubo pocos tonos diferentes
  • 13:54 - 13:58
    amarillo. Y eso no se ha podido capturar.
    Voy a ampliar un poco. Es incapaz de
  • 13:58 - 14:03
    captura. Estudios gradaciones reales, los que se desee. Y eso es sólo una especie de,
  • 14:03 - 14:07
    un artefacto de la forma, el que trabaja este ejercicio. Muy bien. Así, los ejercicios que
  • 14:07 - 14:12
    siguen en esta sección son realmente poco más de estos cinco, diez, veinte puzzles. Por lo tanto,
  • 14:12 - 14:14
    es algo que debes chequear.
Title:
Expressions (14 mins)
Video Language:
English
Luis edited Spanish subtitles for Expressions
Luis edited Spanish subtitles for Expressions
Luis edited Spanish subtitles for Expressions
diegoruizuniminuto edited Spanish subtitles for Expressions
diegoruizuniminuto edited Spanish subtitles for Expressions
diegoruizuniminuto added a translation

Spanish subtitles

Revisions