MyLeoNes™

Funciones: miniprogramas con nombre — Informática, 7–10 años

Aprende cómo un programa puede poner nombre a un grupo útil de pasos y volver a usarlo cuando haga falta.

Un nombre, muchos pasos

Una función es un conjunto de instrucciones con nombre que realiza una tarea útil. En vez de escribir los mismos pasos cada vez, un programa puede llamar a la función por su nombre. Por ejemplo, «dibujarCuadrado» podría dibujar cuatro lados iguales cuando el programa lo pida.

¿Por qué poner nombre a los pasos?

El problema es la repetición: un programa grande puede necesitar la misma acción útil en diez lugares distintos. Copiarla diez veces hace que el programa sea más largo y crea diez sitios donde se puede olvidar un cambio. Las funciones surgieron para organizar programas cada vez mayores en piezas claras y reutilizables que las personas pudieran manejar.

Una función para un cuadrado

Creamos una función llamada «dibujarCuadrado» con estos pasos: avanzar 40 centímetros, girar 90 grados a la derecha y repetir ese par cuatro veces. El programa guarda esos pasos con el nombre «dibujarCuadrado». Después, llamar a «dibujarCuadrado» en las posiciones (1,1) y (5,3) dibuja dos cuadrados sin reescribir las instrucciones.

El error tentador

Un error comprensible es pensar que poner nombre a unos pasos hace que se ejecuten inmediatamente. Normalmente, una función es solo una receta que espera ser llamada; no hace nada cuando se crea. Si se define «dibujarCuadrado» pero nunca se llama, no aparece ningún cuadrado. El nombre organiza el trabajo, pero la llamada lo pone en marcha.

Dónde se usan las funciones

Las funciones están detrás de acciones conocidas como «reproducir un sonido», «enviar un mensaje» o «mostrar el siguiente nivel». Una aplicación del tiempo puede usar una función para convertir una temperatura en un color en muchos lugares. Cambiar esa función puede mejorar todos los sitios que la llaman; por eso los programadores eligen cuidadosamente los nombres de las tareas.

Sigue explorando

Otros idiomas

Cargando MyLeoNes™…