6.    Subprogramas

El tipo de subprograma que admite DFD es la función. Debe notarse que en DFD los argumentos se pasan por REFERENCIA cuando son nombres de variables (tanto variables escalares como vectores o matrices), y se pasan por VALOR cuando son expresiones. Dentro de la opción OBJETOS del menú de ayuda, las opciones LLAMADA y SUBPROGRAMAS profundizan en estos aspectos. Igualmente, las funciones DFD no disponen de la sentencia DEVOLVER, por lo que los valores que deba retornar la función deberán almacenarse en los correspondientes argumentos de salida.

El código correspondiente a las funciones incluidas en un algoritmo debe añadirse al mismo utilizando el botón NUEVO SUBPROGRAMA

que abre una nueva pantalla similar a la de inicial de un algoritmo, en la cual cambia el símbolo INICIO por la cabecera de la función. Editando dicha cabecera se establecerá el nombre de la función, los parámetros (ficticios) correspondientes y, si se desea, una breve descripción de dicha función (documentación de la misma).

Cuadro de texto:

 

 

 

 

 

 

 

 

 

La inserción, borrado y edición de objetos en una función es idéntica a como se describió para el algoritmo principal.

La llamada a una función desde otro módulo tiene también un símbolo especial en DFD

 

Cuadro de texto:   cuya edición permite introducir el nombre y los parámetros verdaderos de la función:

 

 

 

 

 

 

 

Los restantes botones del menú subprogramas permiten moverse entre las distintas ventanas de subprogramas o eliminar el subprograma actual:

Por último, señalar que las operaciones de COPIAR, CORTAR, PEGAR y  ELIMINAR pueden realizarse entre subprogramas de un mismo algoritmo y entre algoritmos que se abran en una misma sesión de DFD.

Esta última posibilidad puede aprovecharse para reutilizar funciones previamente construidas sin necesidad de volver a construirlas manualmente en el nuevo algoritmo. Dado que desafortunadamente DFD no permite copiar y pegar un algoritmo o función completa, es preciso recurrir a un pequeño artificio para poder realizar esta tarea de forma fácil.

El artificio consiste en encerrar las funciones que diseñemos con DFD en una sentencia que englobe totalmente a la función (salvo la cabecera), y que no añada nada a la ejecución de la misma (por ejemplo, un lazo desde que se ejecute una sóla vez). De esta manera sí es posible copiar dicho lazo desde (y por tanto, la función completa), y pegarla en otro algoritmo donde vayamos a utilizar la función. Lo único que habrá que completar manualmente será la cabecera, que como ya hemos mencionado no puede copiarse.