Ejemplos de problemas resueltos usando una tabla de decisión I. Simplificar tablas de decisión (CU00113A)

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.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

MARZO - ABRIL 2017

1. Java / J2EE
2. Entornos Oracle
3. JavaScript, jQuery
4. .NET, C#
5. Entornos SQL Server
6. HTML, CSS
7. Php, MySql
8. Android, iOS


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación