1 00:00:00,981 --> 00:00:03,728 Estamos de regreso con nuestro programa que usa una función 2 00:00:03,728 --> 00:00:05,575 para dibujar a "Winston" cuatro veces. 3 00:00:05,575 --> 00:00:08,156 Y la he cambiado para mostrar en realidad de qué edad es 4 00:00:08,156 --> 00:00:11,387 en cada etapa de su vida, y pronto verás por qué. 5 00:00:11,387 --> 00:00:13,549 Pero primero necesito decirles algunas cosas sobre "Winston": 6 00:00:13,549 --> 00:00:15,901 "Winston" tiene una adicción a las donas. 7 00:00:15,901 --> 00:00:18,437 Se come tres al día. 8 00:00:18,437 --> 00:00:21,733 Probablemente por eso es que tiene esa cara tan grande y amarilla. 9 00:00:21,733 --> 00:00:25,311 Así que para advertir a "Winston" sobre lo malo que son las donas para él, 10 00:00:25,311 --> 00:00:28,263 quiero modificar este programa para mostrar cuantas donas 11 00:00:28,263 --> 00:00:32,095 en total se ha comido en cada etapa de su vida. 12 00:00:32,095 --> 00:00:35,783 Por ejemplo, cuando él tenía dos años de edad, 13 00:00:35,873 --> 00:00:41,598 eso significa que se había comido 3 por 365 por 2, 14 00:00:41,598 --> 00:00:45,873 tres por día, por 365 días por 2 años. 15 00:00:45,873 --> 00:00:50,330 Y sólo tendremos que mostrarlo debajo de ese encabezado, ¡wow! 16 00:00:50,330 --> 00:00:53,945 Dos mil donas, esas son muchas donas para un niño de dos años. 17 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, 18 00:01:04,032 --> 00:01:08,446 y esas son 15,000 donas. Muy bien. 19 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. 20 00:01:13,190 --> 00:01:16,718 Estoy repitiendo mis cálculos aquí, 21 00:01:16,718 --> 00:01:20,416 y sólo estoy cambiando una cosa: el número de años. 22 00:01:20,416 --> 00:01:22,872 Cuando veo que un código se repite como éste, 23 00:01:22,872 --> 00:01:28,348 Pienso: "Mmm, ¿podré hacer una función con esto?". 24 00:01:28,348 --> 00:01:31,835 Sí, definitivamente, podemos. Así que hagámoslo. 25 00:01:32,795 --> 00:01:34,416 Voy a definir mi función aquí arriba 26 00:01:34,416 --> 00:01:40,377 y llamarla "calcTotalDonuts = function" 27 00:01:40,917 --> 00:01:44,228 Y va a necesitar un parámetro, el número de años, 28 00:01:44,228 --> 00:01:46,022 porque ésta es la única cosa que estamos cambiando 29 00:01:46,022 --> 00:01:49,296 cada vez que hacemos este cálculo. 30 00:01:49,316 --> 00:01:52,878 Y luego, dentro, haremos el cálculo, 31 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). 32 00:02:00,680 --> 00:02:03,099 Muy bien, entonces ahora que tenemos esa función, 33 00:02:03,099 --> 00:02:08,598 voy a reemplazar esta expresión aquí con "calcTotalDonuts", 34 00:02:08,598 --> 00:02:12,548 la llamada a la función, y voy a pasar el parámetro "2". 35 00:02:12,548 --> 00:02:17,267 Ok, bueno ahora no vemos ningún total. 36 00:02:17,267 --> 00:02:19,092 Mmm, ok, ¿qué pasó? 37 00:02:19,092 --> 00:02:22,616 Bueno, nuestra función hizo el cálculo del total, aquí, 38 00:02:23,096 --> 00:02:25,640 pero no le dijo a nadie sobre ese total. 39 00:02:26,050 --> 00:02:30,367 Es como si un maestro te hiciera una pregunta en clase, 40 00:02:30,367 --> 00:02:31,744 y tú la contestas en tu mente 41 00:02:31,744 --> 00:02:33,652 pero eres muy tímido para decir la respuesta. 42 00:02:33,652 --> 00:02:36,998 Has hecho el trabajo, pero tu maestra nunca lo va a saber. 43 00:02:37,348 --> 00:02:39,679 Si queremos que una función comunique un valor 44 00:02:39,679 --> 00:02:45,170 cada que es llamada, la función tiene que regresar el valor explícitamente. 45 00:02:45,710 --> 00:02:49,599 Así que para que una función regrese el valor necesitamos teclear "Return", 46 00:02:49,599 --> 00:02:51,568 y lo que debe regresar. 47 00:02:51,568 --> 00:02:55,138 Puede ser una variable, un valor o una expresión, 48 00:02:55,138 --> 00:02:57,749 así que aquí diremos: "return totalDonuts", ¿está bien? 49 00:02:57,749 --> 00:03:01,540 Entonces quien llamó la función tendrá esta respuesta. 50 00:03:01,880 --> 00:03:04,421 ¡Y ahora podemos ver nuestro resultado! 51 00:03:04,771 --> 00:03:06,651 Y en realidad podemos acortar nuestra función, 52 00:03:06,651 --> 00:03:08,341 no tenemos que almacenar todo esto en una variable, 53 00:03:08,341 --> 00:03:10,051 podemos tomar esta expresión que tenemos aquí 54 00:03:10,051 --> 00:03:14,268 y ponerla en el "return", y entonces la tenemos en una sola línea. Genial. 55 00:03:15,068 --> 00:03:17,166 Muy bien, ahora podemos avanzar 56 00:03:17,166 --> 00:03:20,444 y calcular el total de donas en cada etapa de la vida 57 00:03:20,444 --> 00:03:23,452 sólo llamando esta función y pasándole el número de años. 58 00:03:24,212 --> 00:03:28,704 Déjenme ver, es "calcTotalDonuts(25)", 59 00:03:28,704 --> 00:03:34,056 la posición es correcta, "calcTotalDonuts(65)", 60 00:03:36,366 --> 00:03:40,241 ¡Muy bien! Wow, si lo sigue haciendo hasta los 65, 61 00:03:40,241 --> 00:03:44,406 se habrá comido 70,000 donas. Son muchas donas. 62 00:03:45,136 --> 00:03:48,051 No creo que "Winston" lo haga. 63 00:03:48,051 --> 00:03:50,331 Pero ahora que lo hemos hecho con una función, 64 00:03:50,331 --> 00:03:52,891 realmente es fácil cambiar alguna de las partes. 65 00:03:53,181 --> 00:03:55,138 Si "Winston" ve esto y dice: 66 00:03:55,138 --> 00:03:58,865 "Vaya, es mucho, ¿qué tal si sólo como una dona al día?" 67 00:03:58,865 --> 00:04:02,242 Ok, bueno podemos ir justo aquí y cambiar este número, 68 00:04:02,732 --> 00:04:04,329 y vemos que todo cambia. 69 00:04:04,329 --> 00:04:07,971 Ahora son 23,000. Todavía es mucho. Así que tal vez "Winston" diga: 70 00:04:07,971 --> 00:04:10,773 "Está bien, ¿qué tal si sólo como una a la semana?" 71 00:04:10,773 --> 00:04:12,477 Sí, eso es razonable, ok. 72 00:04:12,477 --> 00:04:15,025 Entonces sólo cambiamos 365 por 50, 73 00:04:15,025 --> 00:04:17,833 porque un año tiene como 50 semanas, ¿cierto? 74 00:04:17,833 --> 00:04:22,802 Ok, eso está mucho mejor, ¿cierto? 3,000 donas, eso parece razonable. 75 00:04:22,802 --> 00:04:26,751 Muy bien, así que como ves, con funciones y regresando valores, 76 00:04:26,751 --> 00:04:30,631 podemos ahorrar código y salvar vidas.