Codificación aprenderaprogramar.com: CU00167A
SEÑALEROS (CENTINELAS) PARA TOMA DE DECISIONES
Es habitual el uso de variables para ser portadoras de información de cara a la toma de decisiones a lo largo del programa. Las posibilidades son tan variadas como imaginación podamos tener. Indicaremos algunos usos posibles:
· La variable adquiere valor a partir de un menú inicial de múltiples alternativas y a partir de ahí guía la toma de decisiones del programa.
· Existe un menú inicial y diversos menús u opciones a lo largo del programa, por lo que un grupo de señaleros van tomando valor y guiando la toma de decisiones.
· La variable adquiere valor a partir de un cálculo interno del programa y sirve de guía para la toma de decisiones.
· La variable va asociada a cada uno de los datos o serie de datos indicando su terminación.
· La variable va asociada a un dato o serie de datos a los que aporta información relativa a su origen, calidad, contenido, etc.
Consideremos los siguientes ejemplos:
Ejemplo 1 aprenderaprogramar.com: Un programa de una fábrica para el cálculo de salarios tiene un menú inicial que pide el tipo de trabajador con las opciones de: 1. Turno de mañana, 2. Turno de tarde, 3. Turno de noche, 4. Trabajador en prácticas. La elección queda almacenada en la variable Tipo. Un primer enfoque de organización del programa nos daría alternativas como:
En el primer esquema, en base al valor que tenga el señalero se siguen distintos procesos. En el segundo, hay unos procesos comunes independientemente del valor del señalero, y otros procesos específicos en función del valor de la variable. Poner en común todo lo que se pueda nos permite ahorrar código, pero si es posible o no habrá que estudiarlo para cada caso particular.
Ejemplo 2 aprenderaprogramar.com: En el programa anterior se decide dividir a los trabajadores según su antigüedad en 1. Menos de un año de antigüedad, 2. Entre uno y cinco años de antigüedad, 3. Más de cinco años de antigüedad. La elección queda almacenada en la variable Ant. Por otro lado, la variable Tipo almacena el tipo de trabajador.
La estructura del programa habría que estudiarla con el fin de optimizarla. Una posible sería del tipo que muestra el siguiente esquema.
Ejemplo 3 aprenderaprogramar.com: Un programa pide dos parámetros z y h que sirven para calcular el valor de la variable Omt. En función de que el contenido de Omt sea igual, mayor o menor que cero el señalero Ref toma tres valores posibles. El esquema podría ser algo así:
El programa continuará usando el señalero Ref para la toma de decisiones. ¿Por qué no seguir tomando decisiones en base a la variable Omt? Por un lado puede que nos interese usar un señalero que aporte claridad de interpretación. También es posible que Omt cambie de valor en los siguientes pasos del programa y el señalero nos sirve para recordar algo que ha ocurrido pero que ya no ocurre.
Ejemplo 4 aprenderaprogramar.com: Un archivo contiene los datos laborales relativos a un mes de trabajo en una empresa, organizados de la siguiente manera:
Dato(1) = [Número de trabajador] |
Dato(2) = [Días trabajados en el mes a jornada normal] |
Dato(3) = [Horas extras realizadas en el mes] |
Dato(4) = [Señalero – 99] |
Dato(5) = [Número de trabajador] |
Dato(6) = ... etc. |
En base a ello podemos tomar decisiones. Por ejemplo, si después de un Dato(x) que debe contener el señalero éste no se encuentra, puede significar que ha habido un error o problema al guardar los datos del trabajador número x – 3. Así, podríamos programar:
Si Dato(x) = - 99 Entonces Mostrar “Se han leído los datos del trabajador nº”, x - 3 SiNo Mostrar “Existe un error al leer los datos del trabajador nº”, x – 3 FinSi |
Ejemplo 5 aprenderaprogramar.com: Un archivo contiene los datos laborales relativos a un mes de trabajo en una empresa, organizados de la siguiente manera:
Dato(1) = [Número de trabajador] |
Dato(2) = [Horas totales trabajadas en el mes] |
Dato(3) = [Señalero – 66: indica turno de mañana] |
Dato(4) = [Número de trabajador] |
Dato(5) = ... etc. |
El señalero puede adoptar los valores:
- 66 para turno de mañana |
- 50 para turno de tarde |
- 33 para turno de noche |
Obsérvese que el hecho de que sea negativo le confiere un doble significado: un significado a través del signo que puede ser “último dato del trabajador” y otro a través del valor que informa si el turno es de mañana, de tarde o de noche.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.