1 00:00:00,981 --> 00:00:05,860 Aquí estamos, con un programa que usa una función para dibujar a Winston 4 veces. 2 00:00:05,860 --> 00:00:11,472 Y lo he modificado para mostrar su edad en cada momento, pronto verás por qué. 3 00:00:11,472 --> 00:00:16,290 Pero antes, necesito decirte algo sobre Winston: tiene una adicción a los dónuts. 4 00:00:16,290 --> 00:00:21,954 Toma tres cada día. Por eso probablemente su cara es tan grande y amarilla. 5 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. 6 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. 7 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. 8 00:00:54,669 --> 00:01:04,272 Así, cuando tenga 14 años, veamos, habrá tomado 3 veces 365 por 14. 9 00:01:04,272 --> 00:01:13,455 Eso hace 15 mil dónuts. Bien. Puedo seguir calculando, pero intuyo una estructura. 10 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. 11 00:01:20,784 --> 00:01:28,116 Siempre que veo repetirse código así, pienso si podré convertirlo en una función. 12 00:01:28,116 --> 00:01:33,095 Sí. por supuesto, es posible. Así que, hagámoslo ahora. 13 00:01:33,095 --> 00:01:41,006 Definiré aquí mi función y la llamaré calcTotalDonuts igual a function. 14 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. 15 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. 16 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". 17 00:02:12,862 --> 00:02:17,427 Bien, pero ahora no vemos ningún resultado. 18 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. 19 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. 20 00:02:33,824 --> 00:02:37,638 Has hecho el trabajo, pero tu profesor nunca lo sabrá. 21 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. 22 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. 23 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. 24 00:03:02,138 --> 00:03:05,021 ¡Ahora se muestra nuestro resultado! 25 00:03:05,021 --> 00:03:10,477 Realmente podemos abreviar la función, sin siquiera usar una variable, poniendo la expresión 26 00:03:10,477 --> 00:03:15,418 con "return" y ya sólo es una línea. Vale. 27 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. 28 00:03:24,558 --> 00:03:36,426 Veamos, calcTotalDonuts(25), en la posición correcta, calcTotalDonuts(65). 29 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! 30 00:03:45,239 --> 00:03:48,351 No creo que Winston lo consiga. [risas] 31 00:03:48,351 --> 00:03:53,325 Pero ahora que hemos creado una función, es muy fácil cambiarla. 32 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?" 33 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. 34 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. 35 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? 36 00:04:17,793 --> 00:04:23,361 Bien, esto es mucho mejor. 3 000 dónuts parece razonable. 37 00:04:23,361 --> 00:04:27,361 Como veis, con funciones y resultados podemos ahorrar código y salvar vidas.