[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.98,0:00:05.86,Default,,0000,0000,0000,,Aquí estamos, con un programa que usa una\Nfunción para dibujar a Winston 4 veces. Dialogue: 0,0:00:05.86,0:00:11.47,Default,,0000,0000,0000,,Y lo he modificado para mostrar su edad \Nen cada momento, pronto verás por qué. Dialogue: 0,0:00:11.47,0:00:16.29,Default,,0000,0000,0000,,Pero antes, necesito decirte algo sobre \NWinston: tiene una adicción a los dónuts. Dialogue: 0,0:00:16.29,0:00:21.95,Default,,0000,0000,0000,,Toma tres cada día. Por eso probablemente\Nsu cara es tan grande y amarilla. Dialogue: 0,0:00:21.95,0:00:32.12,Default,,0000,0000,0000,,Así, para decirle a Winston lo malos que son\Npara él, quiero modificar este programa para\Nmostrar el total de dónuts en cada momento. Dialogue: 0,0:00:32.12,0:00:46.12,Default,,0000,0000,0000,,Por ejemplo, si tiene dos años, esto supone que\Nha comido tres veces 365 por dos, es decir, \Ntres cada día, 365 veces, durante dos años. Dialogue: 0,0:00:46.12,0:00:54.67,Default,,0000,0000,0000,,Lo mostraremos bajo la cabecera. Vaya! Dos\Nmil dónuts, que es un montón para 2 años. Dialogue: 0,0:00:54.67,0:01:04.27,Default,,0000,0000,0000,,Así, cuando tenga 14 años, veamos, habrá \Ntomado 3 veces 365 por 14. Dialogue: 0,0:01:04.27,0:01:13.46,Default,,0000,0000,0000,,Eso hace 15 mil dónuts. Bien. Puedo seguir\Ncalculando, pero intuyo una estructura. Dialogue: 0,0:01:13.46,0:01:20.78,Default,,0000,0000,0000,,Estoy repitiendo mis cálculos y sólo \Ncambio una cosa: el número de años. Dialogue: 0,0:01:20.78,0:01:28.12,Default,,0000,0000,0000,,Siempre que veo repetirse código así,\Npienso si podré convertirlo en una función. Dialogue: 0,0:01:28.12,0:01:33.10,Default,,0000,0000,0000,,Sí. por supuesto, es posible. Así que,\Nhagámoslo ahora. Dialogue: 0,0:01:33.10,0:01:41.01,Default,,0000,0000,0000,,Definiré aquí mi función y la llamaré \NcalcTotalDonuts igual a function. Dialogue: 0,0:01:41.01,0:01:49.24,Default,,0000,0000,0000,,Va a tener un parámetro, el número de años,\Nque es lo único que cambiaremos cada vez. Dialogue: 0,0:01:49.24,0:02:00.93,Default,,0000,0000,0000,,Y ahora dentro, hacemos el cálculo y lo\Nguardamos en una variable. que será tres veces\N365 por el número de años. Dialogue: 0,0:02:00.93,0:02:12.86,Default,,0000,0000,0000,,Bien, ahora que tenemos la función, voy a\Nreemplazar esta expresión por calcTotalDonuts (la\Nllamada a la función) con el parámetro "2". Dialogue: 0,0:02:12.86,0:02:17.43,Default,,0000,0000,0000,,Bien, pero ahora no vemos ningún resultado. Dialogue: 0,0:02:17.43,0:02:26.52,Default,,0000,0000,0000,,¿Qué ha ocurrido? Vale, nuestra función calculó\Nel total, pero no le pasó el dato a nadie. Dialogue: 0,0:02:26.52,0:02:33.82,Default,,0000,0000,0000,,Es como si un profesor te pregunta y sabes\Nla respuesta, pero eres tan tímido que no la dices. Dialogue: 0,0:02:33.82,0:02:37.64,Default,,0000,0000,0000,,Has hecho el trabajo, pero tu profesor\Nnunca lo sabrá. Dialogue: 0,0:02:37.64,0:02:45.97,Default,,0000,0000,0000,,Si queremos que la función informe a quien la\Nllama, debe devolver el valor de forma explícita. Dialogue: 0,0:02:45.97,0:02:55.22,Default,,0000,0000,0000,,Para que una función devuelva el resultado,\Nescribiremos "return" y lo que debe devolver:\Nuna variable, un valor o una expresión. Dialogue: 0,0:02:55.22,0:03:02.14,Default,,0000,0000,0000,,así que pondremos "return totalDonuts". Con\Nlo que al llamar a esta función dará este valor. Dialogue: 0,0:03:02.14,0:03:05.02,Default,,0000,0000,0000,,¡Ahora se muestra nuestro resultado! Dialogue: 0,0:03:05.02,0:03:10.48,Default,,0000,0000,0000,,Realmente podemos abreviar la función, sin\Nsiquiera usar una variable, poniendo la expresión Dialogue: 0,0:03:10.48,0:03:15.42,Default,,0000,0000,0000,,con "return" y ya sólo es una línea. Vale. Dialogue: 0,0:03:15.42,0:03:24.56,Default,,0000,0000,0000,,Bien, ahora podemos seguir y calcular el\Ntotal de dónuts en cada momento llamando a\Nla función y pasándole el número de años. Dialogue: 0,0:03:24.56,0:03:36.43,Default,,0000,0000,0000,,Veamos, calcTotalDonuts(25), en la posición\Ncorrecta, calcTotalDonuts(65). Dialogue: 0,0:03:36.43,0:03:45.24,Default,,0000,0000,0000,,¡Bien! Esto hace que a los 65 haya comido\N70 000 dónuts. ¡Es un montón de dónuts! Dialogue: 0,0:03:45.24,0:03:48.35,Default,,0000,0000,0000,,No creo que Winston lo consiga. [risas] Dialogue: 0,0:03:48.35,0:03:53.32,Default,,0000,0000,0000,,Pero ahora que hemos creado una función,\Nes muy fácil cambiarla. Dialogue: 0,0:03:53.32,0:03:59.21,Default,,0000,0000,0000,,Si Winston lo ve y dice "¡Vaya! Es mucho.\N¿Qué tal si sólo como uno al día?" Dialogue: 0,0:03:59.21,0:04:04.43,Default,,0000,0000,0000,,Bien, sólo tenemos que ir aquí, cambiar\Neste número, y ver cómo todo cambia. Dialogue: 0,0:04:04.43,0:04:12.70,Default,,0000,0000,0000,,Ahora son 23 000. Todavía muchos. Así que\NWinston puede decir "¡Vale! ¿Y si sólo tomo \Nuno por semana?". Sí, eso es razonable. Dialogue: 0,0:04:12.70,0:04:17.79,Default,,0000,0000,0000,,Sólo tenemos que cambiar 365 por 50, ya\Nque hay unas 50 semanas en un año, ¿vale? Dialogue: 0,0:04:17.79,0:04:23.36,Default,,0000,0000,0000,,Bien, esto es mucho mejor. 3 000 dónuts\Nparece razonable. Dialogue: 0,0:04:23.36,0:04:27.36,Default,,0000,0000,0000,,Como veis, con funciones y resultados\Npodemos ahorrar código y salvar vidas.