Codificación aprenderaprogramar.com: CU00258A
EJERCICIO CON TABLAS DE DECISIÓN: TARJETAS
Construir el esquema de decisión y el pseudocódigo asociado al siguiente planteamiento, relativo a determinar el importe a facturar a los clientes de unos grandes almacenes en base al tipo de tarjeta y modalidad de pago.
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.
La tabla de decisión queda:
El número de condiciones es 3 y el numero de casos 8, que es 23, 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:
SOLUCIÓN
Partimos de la tabla simplificada que es la siguiente:
Al no existir indiferencias, buscamos un criterio para elegir filas a partir de las que dividir la tabla basados en el conocimiento del problema y en la lógica. En este caso dividiremos la tabla en base a la condición “Paga con tarjeta oro” (C1). Por tanto C1 divide a la tabla.
Ya hemos alcanzado una tabla con una única fila variante, que es C3. Por tanto C3 divide a C1 – Sí.
C1 – Sí – C3 – Sí = Acción A
C1 – Sí – C3 – No = Acción B
Ya tenemos una rama del árbol. Volvemos al punto que tenemos abierto, que es C1 – No.
Volvemos a dividir usando C2 (“Pago con tarjeta club”). C2 divide a C1 – No.
Tenemos una tabla con una única fila variante que es C3. Por tanto C3 divide a C1 – No – C2 – Sí dando lugar a 2 acciones.
C1 – No – C2 – Sí – C3 – Sí = Acción C
C1 – No – C2 – Sí – C3 – No = Acción D
Volvemos al punto que teníamos abierto, que es C1 – No – C2 – No.
Por tanto C1 – No – C2 – No lleva a la acción E y hemos cerrado el árbol, que queda:
El número de acciones obtenidas coincide con el número de casos de la tabla origen, con lo cual cada acción se asocia con un caso, lo que hemos indicado con los números entre paréntesis. El pseudocódigo asociado sería este:
[Pseudocódigo aprenderaprogramar.com] Si C1 = “Sí” Entonces Si C3 = “Sí” Entonces Acción A SiNo Acción B FinSi SiNo Si C2 = “Sí” Entonces Si C3 = “Sí” Entonces Acción C SiNo Acción D FinSi SiNo Acción E FinSi FinSi |
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.