0:00:00.981,0:00:03.728 Estamos de regreso con nuestro programa que usa una función 0:00:03.728,0:00:05.575 para dibujar a "Winston" cuatro veces. 0:00:05.575,0:00:08.156 Y la he cambiado para mostrar en realidad de qué edad es 0:00:08.156,0:00:11.387 en cada etapa de su vida, y pronto verás por qué. 0:00:11.387,0:00:13.549 Pero primero necesito decirles algunas cosas sobre "Winston": 0:00:13.549,0:00:15.901 "Winston" tiene una adicción a las donas. 0:00:15.901,0:00:18.437 Se come tres al día. 0:00:18.437,0:00:21.733 Probablemente por eso es que tiene esa cara tan grande y amarilla. 0:00:21.733,0:00:25.311 Así que para advertir a "Winston" sobre lo malo que son las donas para él, 0:00:25.311,0:00:28.263 quiero modificar este programa para mostrar cuantas donas 0:00:28.263,0:00:32.095 en total se ha comido en cada etapa de su vida. 0:00:32.095,0:00:35.783 Por ejemplo, cuando él tenía dos años de edad, 0:00:35.873,0:00:41.598 eso significa que se había comido 3 por 365 por 2, 0:00:41.598,0:00:45.873 tres por día, por 365 días por 2 años. 0:00:45.873,0:00:50.330 Y sólo tendremos que mostrarlo debajo de ese encabezado, ¡wow! 0:00:50.330,0:00:53.945 Dos mil donas, esas son muchas donas para un niño de dos años. 0:00:53.945,0:01:02.452 Ahora, cuando tenía 14 años, déjenme ver, se había comido 3 por 365 por 14, 0:01:04.032,0:01:08.446 y esas son 15,000 donas. Muy bien. 0:01:08.446,0:01:13.190 Entonces podría continuar haciendo estos cálculos, pero empiezo a darme cuenta de que hay un patrón. 0:01:13.190,0:01:16.718 Estoy repitiendo mis cálculos aquí, 0:01:16.718,0:01:20.416 y sólo estoy cambiando una cosa: el número de años. 0:01:20.416,0:01:22.872 Cuando veo que un código se repite como éste, 0:01:22.872,0:01:28.348 Pienso: "Mmm, ¿podré hacer una función con esto?". 0:01:28.348,0:01:31.835 Sí, definitivamente, podemos. Así que hagámoslo. 0:01:32.795,0:01:34.416 Voy a definir mi función aquí arriba 0:01:34.416,0:01:40.377 y llamarla "calcTotalDonuts = function" 0:01:40.917,0:01:44.228 Y va a necesitar un parámetro, el número de años, 0:01:44.228,0:01:46.022 porque ésta es la única cosa que estamos cambiando 0:01:46.022,0:01:49.296 cada vez que hacemos este cálculo. 0:01:49.316,0:01:52.878 Y luego, dentro, haremos el cálculo, 0:01:52.878,0:02:00.680 y lo salvaremos en una variable, así que será 3 por 365 por "numYears" (número de años). 0:02:00.680,0:02:03.099 Muy bien, entonces ahora que tenemos esa función, 0:02:03.099,0:02:08.598 voy a reemplazar esta expresión aquí con "calcTotalDonuts", 0:02:08.598,0:02:12.548 la llamada a la función, y voy a pasar el parámetro "2". 0:02:12.548,0:02:17.267 Ok, bueno ahora no vemos ningún total. 0:02:17.267,0:02:19.092 Mmm, ok, ¿qué pasó? 0:02:19.092,0:02:22.616 Bueno, nuestra función hizo el cálculo del total, aquí, 0:02:23.096,0:02:25.640 pero no le dijo a nadie sobre ese total. 0:02:26.050,0:02:30.367 Es como si un maestro te hiciera una pregunta en clase, 0:02:30.367,0:02:31.744 y tú la contestas en tu mente 0:02:31.744,0:02:33.652 pero eres muy tímido para decir la respuesta. 0:02:33.652,0:02:36.998 Has hecho el trabajo, pero tu maestra nunca lo va a saber. 0:02:37.348,0:02:39.679 Si queremos que una función comunique un valor 0:02:39.679,0:02:45.170 cada que es llamada, la función tiene que regresar el valor explícitamente. 0:02:45.710,0:02:49.599 Así que para que una función regrese el valor necesitamos teclear "Return", 0:02:49.599,0:02:51.568 y lo que debe regresar. 0:02:51.568,0:02:55.138 Puede ser una variable, un valor o una expresión, 0:02:55.138,0:02:57.749 así que aquí diremos: "return totalDonuts", ¿está bien? 0:02:57.749,0:03:01.540 Entonces quien llamó la función tendrá esta respuesta. 0:03:01.880,0:03:04.421 ¡Y ahora podemos ver nuestro resultado! 0:03:04.771,0:03:06.651 Y en realidad podemos acortar nuestra función, 0:03:06.651,0:03:08.341 no tenemos que almacenar todo esto en una variable, 0:03:08.341,0:03:10.051 podemos tomar esta expresión que tenemos aquí 0:03:10.051,0:03:14.268 y ponerla en el "return", y entonces la tenemos en una sola línea. Genial. 0:03:15.068,0:03:17.166 Muy bien, ahora podemos avanzar 0:03:17.166,0:03:20.444 y calcular el total de donas en cada etapa de la vida 0:03:20.444,0:03:23.452 sólo llamando esta función y pasándole el número de años. 0:03:24.212,0:03:28.704 Déjenme ver, es "calcTotalDonuts(25)", 0:03:28.704,0:03:34.056 la posición es correcta, "calcTotalDonuts(65)", 0:03:36.366,0:03:40.241 ¡Muy bien! Wow, si lo sigue haciendo hasta los 65, 0:03:40.241,0:03:44.406 se habrá comido 70,000 donas. Son muchas donas. 0:03:45.136,0:03:48.051 No creo que "Winston" lo haga. 0:03:48.051,0:03:50.331 Pero ahora que lo hemos hecho con una función, 0:03:50.331,0:03:52.891 realmente es fácil cambiar alguna de las partes. 0:03:53.181,0:03:55.138 Si "Winston" ve esto y dice: 0:03:55.138,0:03:58.865 "Vaya, es mucho, ¿qué tal si sólo como una dona al día?" 0:03:58.865,0:04:02.242 Ok, bueno podemos ir justo aquí y cambiar este número, 0:04:02.732,0:04:04.329 y vemos que todo cambia. 0:04:04.329,0:04:07.971 Ahora son 23,000. Todavía es mucho. Así que tal vez "Winston" diga: 0:04:07.971,0:04:10.773 "Está bien, ¿qué tal si sólo como una a la semana?" 0:04:10.773,0:04:12.477 Sí, eso es razonable, ok. 0:04:12.477,0:04:15.025 Entonces sólo cambiamos 365 por 50, 0:04:15.025,0:04:17.833 porque un año tiene como 50 semanas, ¿cierto? 0:04:17.833,0:04:22.802 Ok, eso está mucho mejor, ¿cierto?[br]3,000 donas, eso parece razonable. 0:04:22.802,0:04:26.751 Muy bien, así que como ves, con funciones y regresando valores, 0:04:26.751,0:04:30.631 podemos ahorrar código y salvar vidas.