Resumen: Entrega nº12 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00113A
Ejemplo: Se quiere determinar el importe a facturar a los clientes de unos grandes almacenes según estos criterios:
· Si pagan con tarjeta oro tendrán un 15% de descuento.
· Si pagan con tarjeta club tendrán un 5% de descuento.
· Si la tarjeta (oro o club) es modalidad joven, tendrán un 5% de descuento.
· Los descuentos son acumulables.
Procedemos a construir la tabla de decisión asociada a este planteamiento.
La tabla de decisión queda:
El número de condiciones es 3 y el numero de casos 8, que es 2 3, por lo que en principio todo está correcto. En la hipótesis de que haya un mecanismo de bloqueo que impidiera que se dieran los casos inviables (1, 2 y 5) podríamos eliminarlos y simplificar la tabla de decisión, que quedaría:
Ejemplo: Se quiere determinar la nómina de los empleados de una empresa de acuerdo con estos criterios:
· Si el empleado es altamente productivo tendrá en nómina un plus de productividad.
· Si el empleado es encargado de su grupo tendrá en nómina un plus de encargado.
· Si el empleado ha cometido una infracción grave durante ese mes le será eliminado cualquier plus que pudiera tener.
La tabla de decisión queda:
Los casos 1, 3, 4 y 5 dan lugar al mismo resultado, por lo que vamos a tratar de simplificar la tabla. Para ello sumaremos casos de dos en dos, agrupando aquellos cuyo cumplimiento de condiciones coincida en todos menos en un parámetro. Dicho parámetro se transformará en un -- , equivalente a indiferente o Sí / No.
Ejemplos: (sólo aplicables en casos que puedan dar lugar al mismo resultado).
(***) En algunas ocasiones puede ser interesante analizar las peculiaridades que se produzcan. Téngase en cuenta que una indiferencia equivale a dos casos, dos indiferencias a cuatro casos, tres indiferencias a ocho casos, etc. Para introducir una segunda indiferencia hemos, por lo tanto, de estudiar cuatro casos.
En el análisis del apartado f vemos que se trata de cuatro condiciones, de las cuales la primera y la tercera están fijadas en sí. Así pues nos quedamos con las dos condiciones variantes que suponen estos cuatro casos:
Analizamos qué ocurre en función del resultado del caso 4:
a) Si el Resultado del caso 4 fuera el Resultado A. ¿Qué ocurriría?
b) Si el Resultado del caso 4 fuera el Resultado B. ¿Qué ocurriría? No se podría simplificar y nos quedaríamos con:
Se trataría de una situación en que dos casos llevan a las mismas acciones por imposibilidad de simplificar.
c) Si el caso 4 es imposible y se puede eliminar de la tabla. Situación similar a la anterior en la que no podemos simplificar.
En el ejemplo que venimos viendo relativo a nómina de empleados:
Eliminamos también la linea de inviable pues en ningún caso es útil. El resultado sería la siguiente tabla.
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.