Skip to main content

Funciones

A veces en nuestros programas existen acciones que hemos de realizar varias veces a lo largo de los mismos, y que nos resultaría farragoso si tuviéramos que volver a copiar el código una y otra vez. De igual forma, cualquier modificación en algún elemento tendría que buscarse y repetirse todas las veces que ese código saliera. Para todo ello cumpliendo el principio DRY de programación nos ayudan las funcionesfunciones..

Las funciones, también llamados métodos o procedimientos, empaquetan y ‘aíslan’ del resto del programa una parte de código que realiza alguna tarea específica de forma que nos sea muy sencillo de manipular y reutilizar. Se definen al principio como pequeños subprogramas y después se "invocan" desde el algoritmo principal cuando se necesitan.

Las funciones pueden ser con o sin parámetros, y también pueden devolver o no un resultado.resultado y también ser con o sin parámetros.

  • Funciones que devuelven resultado o no:
    • Si la función no devuelve resultado en ocasiones se denomina procedimiento y es un conjunto de código con algo de relación que se invoca en el algoritmo principal de forma autónoma. Por ejemplo, la función Dibujar_cuadrado (lado) puede realizar todas las operaciones necesarias para dibujar un cuadrado dado su lado. En el algoritmo principal escribiríamos.
    • Dibujar_cuadrado(5);
    • Si la función devuelve resultado se comportará como un valor y siempre habrá que almacenar dicho resultado en una variable, por lo que se habrá de invocar dentro de una asignación y no de forma autónoma. Por ejemplo, la función Area_cuadrado(lado) calcula la superficie de un cuadrado dada la longitud de su lado, pero en el programa principal deberá aparecer asignándose a una variable u ocupando el lugar de ella.
    • Resultado=area_cuadrado(5);
  • Parámetros de una función: valores que necesita la función para poder ejecutarse. Por ejemplo una función que calcule el área dedibuja un cuadrado necesita que le pasen el valor del lado para realizarlo.calcularlo. Sin embargo una función que realice una cuenta atrás del 10 al 1 no necesita ningún parámetro.En ese caso se escribe el paréntesis pero vacío.
    • Dibujar_cuadrado(10);
    • FuncionesCuenta_atras_10a1();
    • que
    devuelven
  • resultado
o

Se no:podría Siparametrizar la función noCuenta_atrás devuelve(n) resultadoindicándole a la función el número a partir del que realizar la cuenta atrás. Te invitamos a explorar cómo sería.

Por ejemplo, imaginemos un programa que calcula el área de una figura geométrica plana compuesta como la de la figura.

image-1663266791752.png

Pasos 1 y 2: Análisis y diagrama de flujo del programa Area compuesta

Los elementos serían:

  • Inicio y fin del algoritmo.
  • Salida: pedir las medidas del lado del cuadrado inferior incluyendo unidades.
  • Entrada: longitud del lado (que coincide con diámetro del círculo)
  • Almacenamiento de datos: lado, area_semicirculo, area_cuadrado, area_totalarea_total.
  • OperacionesProcesamiento: suma, multiplicación, concatenaciónn.

Diagrama de flujo (sin funciones):

image-1663267727042.png


SienSin embargo otra forma de  abordar su solución  sería  predefinir unas funciones que nos calcularan por ejemplo el área de un rectángulo y el área de un círculo.  Veamos como quedaría el diagrama de flujo en ese caso.

image-1663267932446.png

Y habría que realizar de forma independiente los diagramas de flujos de esascada funcionesuna serían:de las funciones.

image-1663267985074.pngimage-1663268025862.png

Las funciones necesarias en este caso devuelven un resultado, y tienen parámetros. Como se puede deducir fácilmente, esto tienetendría mucho más sentido en programas donde va a serfuera necesario calcular áreas de diferentes figuras de forma repetida, y solamenterepetida.