
Funciones con valores de retorno (programación)

Actualiza para más contenido
¿Verdadero o falso? Se le da un nombre a la función para poder llamarla dentro del programa.
Lina ha juntado dos mini programas para el robot dentro de uno más grande... ...usando funciones. Ha convertido dos secciones de su código en dos funciones... ... y la parte del programa que usa dichas funciones, su programa principal, tiene este aspecto: La primera orden es llamar a la función Start. Luego dos personas distintas introducen su nombre y edad. El programa calcula la diferencia de edad y el robot comunica el resultado.
Por último, en el programa principal se llama a la función "End". Lina comprueba si el programa funciona. El robot lleva a cabo las instrucciones que están dentro de "Start": Abrir los ojos Hacer girar la antena y encender la pantalla. A continuación el programa vuelve a la función Start del programa principal. Lee la línea que le sigue justo a la llamada de la función Start.
El robot le pide a Lina que introduzca su nombre... ... y edad. Luego viene la instrucción "Pedir al usuario que introduzca su nombre" ¡Pero si ya hemos ejecutado esa orden! Estas cinco líneas son casi iguales que ... estas cinco de aquí, ...
excepto que primero se usan las variables "nombre-uno" y "edad-uno" y luego, las variables "nombre-dos" y "edad-dos". Cuando el código se repite, Lina puede usar una función, ¡eso ya sabe hacerlo! Lo que pasa es que el código no es idéntico en los dos sitios. Los nombres de las variables son diferentes. ¿Seguirá funcionando con una función? Pues, la verdad es que sí.
Fíjate. Las instrucciones para la función ya existen: ¡Aquí! Lina copia las líneas y las coloca en la parte de arriba del programa principal. Lo que necesita es que esta función sirva para todos los nombres y edades y no solo para nombre-uno y edad-uno o nombre-dos y edad-dos. ¿Qué tiene que hacer? Cambia la etiqueta de las variables a simplemente "nombre" y "edad" - quita los números.
Estos se añadirán cuando la función responda a la llamada del programa. Y al final de la función Lina escribe la orden "Retorno nombre y edad". La función lo que hace es devolver, retornar, el valor de las variables "nombre" y "edad" al programa principal. La nueva función recibe el nombre "Hola" entre paréntesis. Lina le echa un vistazo al programa principal.
El programa debería comparar las edades de las dos personas. Por eso llama dos veces a la función Hola. Así. Y aquí también. La primera vez que se llama a la función tendrá que guardar "nombre" y "edad" en las variables "nombre"-uno y "edad-uno".
Por eso escribe esto. "nombre-uno y edad-uno llamar Hola" Le asigna los valores a las variables con un signo igual. Y se guarda el nombre y la edad de la otra persona bajo "nombre-dos" y "edad-dos". ¿Te das cuenta de lo que ha hecho? Ha usado una sola función para guardar los valores bajo variables distintas. Lena vuelve a comprobar el código. El programa empieza llamando a la función "Start".
El robot se pone en marcha. El programa regresa a la línea que le sigue a la llamada. Ahora llama a la función "Hola". Y el robot le pregunta a Lina su nombre. Se guarda "Lina" bajo la variable "nombre". - Hola Lina El robot le pregunta a Lina su edad y ella contesta 16.
Se guarda "16" bajo la variable "edad". Los valores anotados bajo las variables "nombre" y "edad" se devuelven a la línea que ha llamado a la función. Se guarda "Lina" en "nombre-uno" y "16" en "edad-uno". La siguiente línea del programa principal vuelve a llamar a "Hola". El robot le pregunta a María su nombre.
Se guarda "María" bajo la variable "nombre". - Hola María. El robot le pregunta por su edad y ella contesta 15. Se guarda "15" bajo la variable "edad". Los valores anotados en las variables "nombre" y "edad" son devueltos al programa principal. Y AHORA se ha guardado "María" en la variable "nombre-dos" y "15" en la de "edad-dos".
La línea siguiente del programa principal guarda el resultado de "edad-uno" menos "edad-dos". Y entonces el robot dice: - Lena es uno año mayor que María. ¡El programa funciona! La función "Hola" puede devolver valores diferentes almacenados bajo variables distintas usando los valores de retorno.