2.    Objetos definidos en DFD

DFD permite incluir los objetos básicos de programación estructurada: asignación, selección, lazos y subprogramas. Cualquier objeto que se inserte en el algoritmo puede ser editado haciendo doble clic, lo que permite definir los elementos que lo componen. Esto quiere decir que la EDICIÓN permitirá, por ejemplo, en el caso de:

·       sentencias de salida: indicar la expresión que se va a presentar en pantalla

·       sentencias de entrada: indicar los nombres de las variables donde se guardará la información

·        sentencias de asignación: indicar las expresiones y los nombres de las variables donde se guardará el resultado

·       estructuras de selección: indicar la condición

·       ...

Otra acción interesante sobre los objetos es la SELECCIÓN de los mismos (clic sobre el objeto), que permite realizar acciones como eliminarlos y cortarlos o copiarlos para posteriormente pegarlos en otro punto del algoritmo.

Veamos a continuación los aspectos más destacados a este respecto. Para mayor detalle, remitimos al menú de ayuda de DFD (tecla F1).

2.1    Sentencia de asignación

Se accede a ella con el botón

y su edición permite introducir hasta TRES asignaciones en la misma sentencia:

Para formar expresiones válidas tendremos en cuenta que DFD admite los siguientes elementos, todos ellos bien documentados en las opciones "Conceptos básicos (Tipos y conceptos de datos)" y  "Referencia de operadores y funciones" del menú de ayuda:

·       Constantes y variables

o      de tipo numérico

o      de tipo carácter (entre comillas simples)

o      de tipo lógico (valores .V. y .F.)

·       Operadores aritméticos habituales (+, -, *, /, ^), junto con otros como el operador módulo (MOD)

·        Funciones matemáticas: logaritmos y exponenciales, trigonométricas, redondeo y truncamiento número (ROUND, TRUNC), ...

·       Funciones de manejo de cadenas de caracteres: longitud de una cadena (LEN) y extracción de subcadenas (SUBSTRING)

Ejercicio:

Diseñar y ejecutar un algoritmo que pida dos números a y b al usuario y calcule su suma, resta y producto. Guardarlo con el nombre asignacion.

 

2.2    Estructura de selección

Al editar el elemento una vez insertado se puede introducir la condición que se va a evaluar, a través de la ventana siguiente:

que también permite indicar qué rama (izquierda o derecha) va a corresponder al caso CIERTO de la condición. Al pulsar ACEPTAR en esta ventana, automáticamente se incluye el punto de confluencia de ambas ramas (punto de cierre de la estructura), que será el lugar por donde progrese el flujo del algoritmo una vez ejecutada la rama correspondiente.

Las condiciones en DFD son expresiones lógicas (que o bien son ciertas o bien falsas), que admiten los operadores habituales:

·       Operadores de comparación: >, <, >=, <=, =, !=

·       Operadores lógicos: AND, OR, NOT

En cada una de las ramas se podrán insertar los objetos que se necesiten, igual que en cualquier otra parte del programa. En particular, se pueden insertar nuevas estructuras de selección para dar lugar a la estructura de selección múltiple. En todo momento DFD redibujará la estructura para mantener la legibilidad de la misma.

Ejercicios:

Diseñar y ejecutar un algoritmo que indique si un número a pedido por teclado es positivo o negativo. Guardarlo con el nombre seleccion1.

Modificar el algoritmo anterior para que considere también el caso en que a sea igual a cero. Guardarlo con el nombre seleccion2.

Modificar el algoritmo asignacion para que incluya la división, y que no produzca error de ejecución cuando b sea igual a cero.

 

2.3    Lazos

DFD permite dos tipos de lazos: el MIENTRAS y el DESDE (que en DFD se llama ciclo "para"), por lo que el lazo REPETIR-HASTA QUE debe ser diseñado a partir de los dos anteriores.

2.3.1    Lazo desde

La siguiente figura muestra el botón correspondiente al lazo DESDE, junto con su símbolo en DFD y la ventana de edición correspondiente. Cabe señalar que la representación DFD no utiliza flechas hacia atrás para indicar el final de la estructura, sino un indicador especial etiquetado como CIERRE.

Cuadro de texto:

 

 

 

 

 

 

 

La ventana de edición permite indicar en su parte izquierda el nombre de la variable del lazo, y a la derecha los valores (enteros o reales) de inicio, final e incremento deseados.

 

Ejercicio

Diseñar y ejecutar un algoritmo que calcule el factorial de un número n pedido al usuario por teclado. Guardarlo con el nombre factorial. Probarlo con valores n=‑1, 0, 1, 2 y 100.

 

2.3.2    Lazo mientras

En la figura se muestran el botón correspondiente al lazo mientras y su representación en DFD. La ventana de edición es idéntica a la de la estructura de selección, por lo que ya no la mencionamos.

 

Cuadro de texto:

 

 

 

 

 

 

 

El símbolo DFD tampoco utiliza la representación habitual de la flecha hacia atrás, como es habitual en la representación en DF, sino el símbolo de CIERRE.

Ejercicio

Modificar el algoritmo factorial. para utilizar la estructura mientras. Guardarlo con el nombre factorial2.