-
Aquí estamos, con un programa que usa una
función para dibujar a Winston 4 veces.
-
Y lo he modificado para mostrar su edad
en cada momento, pronto verás por qué.
-
Pero antes, necesito decirte algo sobre
Winston: tiene una adicción a los dónuts.
-
Toma tres cada día. Por eso probablemente
su cara es tan grande y amarilla.
-
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.
-
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.
-
Lo mostraremos bajo la cabecera. Vaya! Dos
mil dónuts, que es un montón para 2 años.
-
Así, cuando tenga 14 años, veamos, habrá
tomado 3 veces 365 por 14.
-
Eso hace 15 mil dónuts. Bien. Puedo seguir
calculando, pero intuyo una estructura.
-
Estoy repitiendo mis cálculos y sólo
cambio una cosa: el número de años.
-
Siempre que veo repetirse código así,
pienso si podré convertirlo en una función.
-
Sí. por supuesto, es posible. Así que,
hagámoslo ahora.
-
Definiré aquí mi función y la llamaré
calcTotalDonuts igual a function.
-
Va a tener un parámetro, el número de años,
que es lo único que cambiaremos cada vez.
-
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.
-
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".
-
Bien, pero ahora no vemos ningún resultado.
-
¿Qué ha ocurrido? Vale, nuestra función calculó
el total, pero no le pasó el dato a nadie.
-
Es como si un profesor te pregunta y sabes
la respuesta, pero eres tan tímido que no la dices.
-
Has hecho el trabajo, pero tu profesor
nunca lo sabrá.
-
Si queremos que la función informe a quien la
llama, debe devolver el valor de forma explícita.
-
Para que una función devuelva el resultado,
escribiremos "return" y lo que debe devolver:
una variable, un valor o una expresión.
-
así que pondremos "return totalDonuts". Con
lo que al llamar a esta función dará este valor.
-
¡Ahora se muestra nuestro resultado!
-
Realmente podemos abreviar la función, sin
siquiera usar una variable, poniendo la expresión
-
con "return" y ya sólo es una línea. Vale.
-
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.
-
Veamos, calcTotalDonuts(25), en la posición
correcta, calcTotalDonuts(65).
-
¡Bien! Esto hace que a los 65 haya comido
70 000 dónuts. ¡Es un montón de dónuts!
-
No creo que Winston lo consiga. [risas]
-
Pero ahora que hemos creado una función,
es muy fácil cambiarla.
-
Si Winston lo ve y dice "¡Vaya! Es mucho.
¿Qué tal si sólo como uno al día?"
-
Bien, sólo tenemos que ir aquí, cambiar
este número, y ver cómo todo cambia.
-
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.
-
Sólo tenemos que cambiar 365 por 50, ya
que hay unas 50 semanas en un año, ¿vale?
-
Bien, esto es mucho mejor. 3 000 dónuts
parece razonable.
-
Como veis, con funciones y resultados
podemos ahorrar código y salvar vidas.