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