WEBVTT 00:00:00.981 --> 00:00:05.860 Aquí estamos, con un programa que usa una función para dibujar a Winston 4 veces. 00:00:05.860 --> 00:00:11.472 Y lo he modificado para mostrar su edad en cada momento, pronto verás por qué. 00:00:11.472 --> 00:00:16.290 Pero antes, necesito decirte algo sobre Winston: tiene una adicción a los dónuts. 00:00:16.290 --> 00:00:21.954 Toma tres cada día. Por eso probablemente su cara es tan grande y amarilla. 00:00:21.954 --> 00:00:32.120 Así, para decirle a Winston lo malos que son para él, quiero modificar este programa para mostrar el total de dónuts en cada momento. 00:00:32.120 --> 00:00:46.119 Por ejemplo, si tiene dos años, esto supone que ha comido tres veces 365 por dos, es decir, tres cada día, 365 veces, durante dos años. 00:00:46.119 --> 00:00:54.669 Lo mostraremos bajo la cabecera. Vaya! Dos mil dónuts, que es un montón para 2 años. 00:00:54.669 --> 00:01:04.272 Así, cuando tenga 14 años, veamos, habrá tomado 3 veces 365 por 14. 00:01:04.272 --> 00:01:13.455 Eso hace 15 mil dónuts. Bien. Puedo seguir calculando, pero intuyo una estructura. 00:01:13.455 --> 00:01:20.784 Estoy repitiendo mis cálculos y sólo cambio una cosa: el número de años. 00:01:20.784 --> 00:01:28.116 Siempre que veo repetirse código así, pienso si podré convertirlo en una función. 00:01:28.116 --> 00:01:33.095 Sí. por supuesto, es posible. Así que, hagámoslo ahora. 00:01:33.095 --> 00:01:41.006 Definiré aquí mi función y la llamaré calcTotalDonuts igual a function. 00:01:41.006 --> 00:01:49.239 Va a tener un parámetro, el número de años, que es lo único que cambiaremos cada vez. 00:01:49.239 --> 00:02:00.930 Y ahora dentro, hacemos el cálculo y lo guardamos en una variable. que será tres veces 365 por el número de años. 00:02:00.930 --> 00:02:12.862 Bien, ahora que tenemos la función, voy a reemplazar esta expresión por calcTotalDonuts (la llamada a la función) con el parámetro "2". 00:02:12.862 --> 00:02:17.427 Bien, pero ahora no vemos ningún resultado. 00:02:17.427 --> 00:02:26.515 ¿Qué ha ocurrido? Vale, nuestra función calculó el total, pero no le pasó el dato a nadie. 00:02:26.515 --> 00:02:33.824 Es como si un profesor te pregunta y sabes la respuesta, pero eres tan tímido que no la dices. 00:02:33.824 --> 00:02:37.638 Has hecho el trabajo, pero tu profesor nunca lo sabrá. 00:02:37.638 --> 00:02:45.971 Si queremos que la función informe a quien la llama, debe devolver el valor de forma explícita. 00:02:45.971 --> 00:02:55.221 Para que una función devuelva el resultado, escribiremos "return" y lo que debe devolver: una variable, un valor o una expresión. 00:02:55.221 --> 00:03:02.138 así que pondremos "return totalDonuts". Con lo que al llamar a esta función dará este valor. 00:03:02.138 --> 00:03:05.021 ¡Ahora se muestra nuestro resultado! 00:03:05.021 --> 00:03:10.477 Realmente podemos abreviar la función, sin siquiera usar una variable, poniendo la expresión 00:03:10.477 --> 00:03:15.418 con "return" y ya sólo es una línea. Vale. 00:03:15.418 --> 00:03:24.558 Bien, ahora podemos seguir y calcular el total de dónuts en cada momento llamando a la función y pasándole el número de años. 00:03:24.558 --> 00:03:36.426 Veamos, calcTotalDonuts(25), en la posición correcta, calcTotalDonuts(65). 00:03:36.426 --> 00:03:45.239 ¡Bien! Esto hace que a los 65 haya comido 70 000 dónuts. ¡Es un montón de dónuts! 00:03:45.239 --> 00:03:48.351 No creo que Winston lo consiga. [risas] 00:03:48.351 --> 00:03:53.325 Pero ahora que hemos creado una función, es muy fácil cambiarla. 00:03:53.325 --> 00:03:59.211 Si Winston lo ve y dice "¡Vaya! Es mucho. ¿Qué tal si sólo como uno al día?" 00:03:59.211 --> 00:04:04.432 Bien, sólo tenemos que ir aquí, cambiar este número, y ver cómo todo cambia. 00:04:04.432 --> 00:04:12.698 Ahora son 23 000. Todavía muchos. Así que Winston puede decir "¡Vale! ¿Y si sólo tomo uno por semana?". Sí, eso es razonable. 00:04:12.698 --> 00:04:17.793 Sólo tenemos que cambiar 365 por 50, ya que hay unas 50 semanas en un año, ¿vale? 00:04:17.793 --> 00:04:23.361 Bien, esto es mucho mejor. 3 000 dónuts parece razonable. 00:04:23.361 --> 00:04:27.361 Como veis, con funciones y resultados podemos ahorrar código y salvar vidas.