Decisiones en DFD

La clase de la semana pasada fue un poco accidentada en el sentido que hice un quiz y nos gastamos un buen rato resolviendolo, contestandolo, calificandolo y finalmente practicando sobre algunos temas que no se habían visto bien o no se comprendían del todo bien. Así que acá les dejo el resto del tema visto. Disfrútenlo.

Funciones

Antes de hablar sobre el tema grueso (decisiones), hay que tener claro qué es una función. Una función generalmente es un conjunto de instrucciones que se ejecutan juntas bajo un sólo nombre. Las funciones reciben uno o varios valores con los cuales se lleva a cabo la operación que se desea y, una vez que se ejecutan, se convierten o retornan algún valor. Estructuralmente, una función consiste en un nombre seguido por un par de paréntesis que encierran los parámetros o argumentos de la función separados por comas, por ésta razón las funciones cuando se mencionan se les llama con su nombre seguido de paréntesis, por ejemplo la función sen() es la función seno, si se desea obtener el seno del valor 1.5, se llama mediante la instrucción sen(1.5), es decir, la función seno evaluada en el valor 1.5, cuando ésta se ejecuta se convierte en el valor 0.026. Otra función matemática que ya hemos usado es la función sqrt() la cual obtiene la raíz cuadrada de un número o una variable numérica, por ejemplo sqrt(4) se convierte en el valor 2, dado que la raíz cuadrada de 4 es 2 o sqrt(hipotenusa) retorna la raíz cuadrada del valor numérico que contenga la variable hipotenusa. Una función no siempre tiene sólo un argumento, hay algunas más complejas que requieren varios argumentos y hacen cosas más sofisticadas, por ejemplo, la función substring(), retorna una parte de una cadena, por ejemplo substring(‘cesar’,1,1) toma la cadena de letras ‘cesar’ y saca 1 letra (segundo argumento) a partir de la letra nro. 1 (primer argumento), es decir, retorna ‘c’. Por otro lado la función substring(‘cesar’,2,3) retorna ‘esa’, es decir 3 letras a partir de la 2. Finalmente, la última función que usamos fue len(), que retorna la cantidad de letras cuando se le pasa como argumento una cadena de texto o una variable cuyo contenido es una cadena, por ejemplo len(‘cesar’) retorna 5 y si la variable nombre contiene el valor ‘angelica’, la instrucción len(nombre) retornaría el valor 8.

Decisiones

Una decisión es una instrucción especial de los lenguajes de programación clásicos, que permite que el programa ejecute, de entre una serie de alternativas, un grupo particular de instrucciones, reaccionando de esa manera a los contenidos o estado de las variables. Por ejemplo, un programador puede prever que un algoritmo debe distinguir entre mayores de edad y menores de edad para ejecutar instrucciones diferentes en cada caso. Para que el programa pueda hacer lo descrito, tiene que saber la edad (estará en alguna variable cuyo valor se obtuvo pidiendoselo al usuario o sacandolo del entorno), también tiene que comparar ésta edad con un valor de particular interés, 18 para nuestro caso. Si el programa, por ejemplo, cuenta chistes, deberá saber que para un menor de edad los chistes no pueden tener contenido sexista, por otro lado para un mayor de edad no hay problema, entonces la variable que contiene la edad del usuario deberá ser comparada contra el valor 18 para saber si éste es menor o mayor de edad y según el caso ejecutar las instrucciones del programa que cuentan el chiste apropiado.

Una decisión es entonces, una instrucción que permite que el programa elija un curso de acción entre varios posibles según los valores que tengan las variables. Las decisiones están vinculadas a condiciones, es decir, a preguntas que el programa hace autónomanente sobre el estado de las variables. Una condición es una expresión que se evalúa como verdadera o falsa. Continuando con el ejemplo anterior, si en la variable edad_usuario está el valor 21, solicitado previamente al usuario, la condición edad_usuario>18 se evaluará como verdadera, dado que 21>18 es una afirmación verdadera, por otro lado si el usuario es menor de edad, digamos de 12 años (la variable contiene el valor 12), la condición edad_usuario>18 se evaluará como falsa dado que 12>18 es falso. Como vemos, una condición es una forma de reducir la incertidumbre sobre lo que contienen las variables, no sabemos qué contienen una vez que el programa está en ejecución, pero podemos prever qué hacer según los posibles valores que tengan. Las condiciones se asocian a operadores relacionales, es decir, ( > ) mayor que, ( < ) menor que, ( = ) igual a, ( <= ) menor o igual, ( >= ) mayor o igual, en ellos un lado es incierto (una variable) y el otro es un valor concreto (por ejemplo el número 18, la letra ‘a’, etc).

En DFD, una condición se ilustra con el ícono de un rombo y dentro de éste una condición. Como ya sabemos, los diagramas de flujo o programas de DFD consisten en una línea que une el inicio con el fin del programa y cada ícono que el programa se encuentra en éste camino lo va ejecutando, generando cambios en la memoria (creando variables, modificando contenidos, etc.). Cuando en un programa se incluye una decisión, el programa ya contiene varias rutas para llegar a su fin y en cada una de ellas hay unas instrucciones a ejecutar secuencialmente: cada ícono que se euncuentre en la secuencia hasta llegar al final será ejecutado implicando cambios en las variables existentes o valores de las mismas. En realidad, el programa sigue usando un sólo camino, por lo tanto sólo ejecuta ciertas partes del programa y no todas, por ejemplo, si el programa incluye sólo una decisión, existirán un conjunto de instrucciones que se ejecutarán si la condición asociada se evalúa a verdadero y otro conjunto que se ejecutarán si se evalúa a falso.

¿En qué puedo usar condiciones?

Las condiciones en general son la forma en que un programador prevé situaciones en el programa, sin embargo, en la práctica las aplicaciones más simples de éstas son:

  • Validar datos: Asegurarse de que el contenido de una variable está en un rango válido de valores, por ejemplo, si una variable contiene una nota, su valor debe estar entre 0 y 5.
  • Permitir opciones: Si el programa puede servir para varias cosas, el programador puede ofrecer éstas «cosas» como opciones al usuario y éste definir qué quiere que el programa haga para él. En éste caso, las decisiones son las que permiten que el programa haga una cosa u otra según lo que haya ingresado el usuario.
  • Prever situaciones: Finalmente, el programa puede hacer un cálculo cuyo resultado determine un curso de acción particular, por ejemplo, si el programa tiene acceso al de nacimiento del usuario y de éste se deduce que es menor de edad.

Ejemplos

Si un programa convierte temperaturas de °C a °F, no es válido que una temperatura sea menor a -273 (es físicamente imposible), por lo tanto, el programa no debería calcular nada si el valor en °C es menor a -273. Este es un ejemplo de validación de datos. En este caso, la variable en la cual se recibió la temperatura digitada por el usuario se pondría en comparación contra el valor -273 (p. ej.: t<-273), dando lugar a dos cursos de acción: si t es menor que -273 el programa no debería calcular nada, si t no es menor (osea que es mayor o igual), se calcula la temperatura.

Si un programa permite convertir medidas en pulgadas a centímetros o temperaturas en °C a °F, debería ofrecer éstas opciones, de tal manera que si el usuario digita 1 haga la conversión de medidas y si digita cualquier otro número haría la conversión de temperaturas. El programa en algún momento debe pedir al usuario la opción que desea, guardándola en una variable (p. ej.: opcion) y ésta se compara con 1 (p. ej.: opcion=1), si la opción es igual a 1 se hace la conversión de pulgadas a centímetros y si no es 1 se hace la de temperaturas.

Esta entrada ha sido publicada en clase y etiquetada como . Guarda el enlace permanente.

Una respuesta en “Decisiones en DFD

  1. andrea dijo:

    m nknta estas clases..pero siigo sin entender el unso de la funcion len ayudenme

Deja una respuesta