[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.98,0:00:03.73,Default,,0000,0000,0000,,Estamos de regreso con nuestro programa que usa una función Dialogue: 0,0:00:03.73,0:00:05.58,Default,,0000,0000,0000,,para dibujar a "Winston" cuatro veces. Dialogue: 0,0:00:05.58,0:00:08.16,Default,,0000,0000,0000,,Y la he cambiado para mostrar en realidad de qué edad es Dialogue: 0,0:00:08.16,0:00:11.39,Default,,0000,0000,0000,,en cada etapa de su vida, y pronto verás por qué. Dialogue: 0,0:00:11.39,0:00:13.55,Default,,0000,0000,0000,,Pero primero necesito decirles algunas cosas sobre "Winston": Dialogue: 0,0:00:13.55,0:00:15.90,Default,,0000,0000,0000,,"Winston" tiene una adicción a las donas. Dialogue: 0,0:00:15.90,0:00:18.44,Default,,0000,0000,0000,,Se come tres al día. Dialogue: 0,0:00:18.44,0:00:21.73,Default,,0000,0000,0000,,Probablemente por eso es que tiene esa cara tan grande y amarilla. Dialogue: 0,0:00:21.73,0:00:25.31,Default,,0000,0000,0000,,Así que para advertir a "Winston" sobre lo malo que son las donas para él, Dialogue: 0,0:00:25.31,0:00:28.26,Default,,0000,0000,0000,,quiero modificar este programa para mostrar cuantas donas Dialogue: 0,0:00:28.26,0:00:32.10,Default,,0000,0000,0000,,en total se ha comido en cada etapa de su vida. Dialogue: 0,0:00:32.10,0:00:35.78,Default,,0000,0000,0000,,Por ejemplo, cuando él tenía dos años de edad, Dialogue: 0,0:00:35.87,0:00:41.60,Default,,0000,0000,0000,,eso significa que se había comido 3 por 365 por 2, Dialogue: 0,0:00:41.60,0:00:45.87,Default,,0000,0000,0000,,tres por día, por 365 días por 2 años. Dialogue: 0,0:00:45.87,0:00:50.33,Default,,0000,0000,0000,,Y sólo tendremos que mostrarlo debajo de ese encabezado, ¡wow! Dialogue: 0,0:00:50.33,0:00:53.94,Default,,0000,0000,0000,,Dos mil donas, esas son muchas donas para un niño de dos años. Dialogue: 0,0:00:53.94,0:01:02.45,Default,,0000,0000,0000,,Ahora, cuando tenía 14 años, déjenme ver, se había comido 3 por 365 por 14, Dialogue: 0,0:01:04.03,0:01:08.45,Default,,0000,0000,0000,,y esas son 15,000 donas. Muy bien. Dialogue: 0,0:01:08.45,0:01:13.19,Default,,0000,0000,0000,,Entonces podría continuar haciendo estos cálculos, pero empiezo a darme cuenta de que hay un patrón. Dialogue: 0,0:01:13.19,0:01:16.72,Default,,0000,0000,0000,,Estoy repitiendo mis cálculos aquí, Dialogue: 0,0:01:16.72,0:01:20.42,Default,,0000,0000,0000,,y sólo estoy cambiando una cosa: el número de años. Dialogue: 0,0:01:20.42,0:01:22.87,Default,,0000,0000,0000,,Cuando veo que un código se repite como éste, Dialogue: 0,0:01:22.87,0:01:28.35,Default,,0000,0000,0000,,Pienso: "Mmm, ¿podré hacer una función con esto?". Dialogue: 0,0:01:28.35,0:01:31.84,Default,,0000,0000,0000,,Sí, definitivamente, podemos. Así que hagámoslo. Dialogue: 0,0:01:32.80,0:01:34.42,Default,,0000,0000,0000,,Voy a definir mi función aquí arriba Dialogue: 0,0:01:34.42,0:01:40.38,Default,,0000,0000,0000,,y llamarla "calcTotalDonuts = function" Dialogue: 0,0:01:40.92,0:01:44.23,Default,,0000,0000,0000,,Y va a necesitar un parámetro, el número de años, Dialogue: 0,0:01:44.23,0:01:46.02,Default,,0000,0000,0000,,porque ésta es la única cosa que estamos cambiando Dialogue: 0,0:01:46.02,0:01:49.30,Default,,0000,0000,0000,,cada vez que hacemos este cálculo. Dialogue: 0,0:01:49.32,0:01:52.88,Default,,0000,0000,0000,,Y luego, dentro, haremos el cálculo, Dialogue: 0,0:01:52.88,0:02:00.68,Default,,0000,0000,0000,,y lo salvaremos en una variable, así que será 3 por 365 por "numYears" (número de años). Dialogue: 0,0:02:00.68,0:02:03.10,Default,,0000,0000,0000,,Muy bien, entonces ahora que tenemos esa función, Dialogue: 0,0:02:03.10,0:02:08.60,Default,,0000,0000,0000,,voy a reemplazar esta expresión aquí con "calcTotalDonuts", Dialogue: 0,0:02:08.60,0:02:12.55,Default,,0000,0000,0000,,la llamada a la función, y voy a pasar el parámetro "2". Dialogue: 0,0:02:12.55,0:02:17.27,Default,,0000,0000,0000,,Ok, bueno ahora no vemos ningún total. Dialogue: 0,0:02:17.27,0:02:19.09,Default,,0000,0000,0000,,Mmm, ok, ¿qué pasó? Dialogue: 0,0:02:19.09,0:02:22.62,Default,,0000,0000,0000,,Bueno, nuestra función hizo el cálculo del total, aquí, Dialogue: 0,0:02:23.10,0:02:25.64,Default,,0000,0000,0000,,pero no le dijo a nadie sobre ese total. Dialogue: 0,0:02:26.05,0:02:30.37,Default,,0000,0000,0000,,Es como si un maestro te hiciera una pregunta en clase, Dialogue: 0,0:02:30.37,0:02:31.74,Default,,0000,0000,0000,,y tú la contestas en tu mente Dialogue: 0,0:02:31.74,0:02:33.65,Default,,0000,0000,0000,,pero eres muy tímido para decir la respuesta. Dialogue: 0,0:02:33.65,0:02:36.100,Default,,0000,0000,0000,,Has hecho el trabajo, pero tu maestra nunca lo va a saber. Dialogue: 0,0:02:37.35,0:02:39.68,Default,,0000,0000,0000,,Si queremos que una función comunique un valor Dialogue: 0,0:02:39.68,0:02:45.17,Default,,0000,0000,0000,,cada que es llamada, la función tiene que regresar el valor explícitamente. Dialogue: 0,0:02:45.71,0:02:49.60,Default,,0000,0000,0000,,Así que para que una función regrese el valor necesitamos teclear "Return", Dialogue: 0,0:02:49.60,0:02:51.57,Default,,0000,0000,0000,,y lo que debe regresar. Dialogue: 0,0:02:51.57,0:02:55.14,Default,,0000,0000,0000,,Puede ser una variable, un valor o una expresión, Dialogue: 0,0:02:55.14,0:02:57.75,Default,,0000,0000,0000,,así que aquí diremos: "return totalDonuts", ¿está bien? Dialogue: 0,0:02:57.75,0:03:01.54,Default,,0000,0000,0000,,Entonces quien llamó la función tendrá esta respuesta. Dialogue: 0,0:03:01.88,0:03:04.42,Default,,0000,0000,0000,,¡Y ahora podemos ver nuestro resultado! Dialogue: 0,0:03:04.77,0:03:06.65,Default,,0000,0000,0000,,Y en realidad podemos acortar nuestra función, Dialogue: 0,0:03:06.65,0:03:08.34,Default,,0000,0000,0000,,no tenemos que almacenar todo esto en una variable, Dialogue: 0,0:03:08.34,0:03:10.05,Default,,0000,0000,0000,,podemos tomar esta expresión que tenemos aquí Dialogue: 0,0:03:10.05,0:03:14.27,Default,,0000,0000,0000,,y ponerla en el "return", y entonces la tenemos en una sola línea. Genial. Dialogue: 0,0:03:15.07,0:03:17.17,Default,,0000,0000,0000,,Muy bien, ahora podemos avanzar Dialogue: 0,0:03:17.17,0:03:20.44,Default,,0000,0000,0000,,y calcular el total de donas en cada etapa de la vida Dialogue: 0,0:03:20.44,0:03:23.45,Default,,0000,0000,0000,,sólo llamando esta función y pasándole el número de años. Dialogue: 0,0:03:24.21,0:03:28.70,Default,,0000,0000,0000,,Déjenme ver, es "calcTotalDonuts(25)", Dialogue: 0,0:03:28.70,0:03:34.06,Default,,0000,0000,0000,,la posición es correcta, "calcTotalDonuts(65)", Dialogue: 0,0:03:36.37,0:03:40.24,Default,,0000,0000,0000,,¡Muy bien! Wow, si lo sigue haciendo hasta los 65, Dialogue: 0,0:03:40.24,0:03:44.41,Default,,0000,0000,0000,,se habrá comido 70,000 donas. Son muchas donas. Dialogue: 0,0:03:45.14,0:03:48.05,Default,,0000,0000,0000,,No creo que "Winston" lo haga. Dialogue: 0,0:03:48.05,0:03:50.33,Default,,0000,0000,0000,,Pero ahora que lo hemos hecho con una función, Dialogue: 0,0:03:50.33,0:03:52.89,Default,,0000,0000,0000,,realmente es fácil cambiar alguna de las partes. Dialogue: 0,0:03:53.18,0:03:55.14,Default,,0000,0000,0000,,Si "Winston" ve esto y dice: Dialogue: 0,0:03:55.14,0:03:58.86,Default,,0000,0000,0000,,"Vaya, es mucho, ¿qué tal si sólo como una dona al día?" Dialogue: 0,0:03:58.86,0:04:02.24,Default,,0000,0000,0000,,Ok, bueno podemos ir justo aquí y cambiar este número, Dialogue: 0,0:04:02.73,0:04:04.33,Default,,0000,0000,0000,,y vemos que todo cambia. Dialogue: 0,0:04:04.33,0:04:07.97,Default,,0000,0000,0000,,Ahora son 23,000. Todavía es mucho. Así que tal vez "Winston" diga: Dialogue: 0,0:04:07.97,0:04:10.77,Default,,0000,0000,0000,,"Está bien, ¿qué tal si sólo como una a la semana?" Dialogue: 0,0:04:10.77,0:04:12.48,Default,,0000,0000,0000,,Sí, eso es razonable, ok. Dialogue: 0,0:04:12.48,0:04:15.02,Default,,0000,0000,0000,,Entonces sólo cambiamos 365 por 50, Dialogue: 0,0:04:15.02,0:04:17.83,Default,,0000,0000,0000,,porque un año tiene como 50 semanas, ¿cierto? Dialogue: 0,0:04:17.83,0:04:22.80,Default,,0000,0000,0000,,Ok, eso está mucho mejor, ¿cierto?\N3,000 donas, eso parece razonable. Dialogue: 0,0:04:22.80,0:04:26.75,Default,,0000,0000,0000,,Muy bien, así que como ves, con funciones y regresando valores, Dialogue: 0,0:04:26.75,0:04:30.63,Default,,0000,0000,0000,,podemos ahorrar código y salvar vidas.