[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]
Condicionales «if-else» múltiple o con varios casos
Referencia: Van Rossum 4.1 p19, Rodríguez 3.5 p42, Downey 5.7
Existen problemas en los que una variable puede tomar diferentes valores conforme al cumplimiento de diferentes condiciones o casos.
Un ejemplo es cuando se realizan ventas por volumen, el descuento depende de la cantidad del producto que se vende.
Cuando la variable resultado del condicional puede tener varios valores, se puede adoptar una forma simple del problema al dividirla por casos, empezando por el caso básico y se modifica la variable resultado lo modifica cuando se revisan los casos siguientes.
Para estos casos se usan estructuras de control para selección en forma anidada en forma de serie o en forma de árbol.
[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]
Condicionales múltiples en serie
Ejemplo 3. Un almacén rebaja 10% del precio de un producto si se adquieren más de 20 unidades y 5% si adquieren hasta 20 unidades pero más de 10, no hay descuento para cantidades menores o iguales a 10 unidades.
Con el precio unitario del producto y la cantidad
adquirida, realice un algoritmo para mostrar el valor a pagar
.
Desarrollo:
Para seguir una forma ordenada del problema, se dividen los casos de cantidad
en segmentos de recta numérica.
El aplicar los descuentos consiste en evaluar los intervalos de cantidad y escribirlos como casos con condicionales.
Las instrucciones de condicionales en Python se muestran como:
# Ejemplo 3.Descuentos en productos por precio y cantidad. # Ingreso valor = float(input('Valor del producto: ')) cantidad = float(input('cantidad del producto: ')) # Procedimiento descuento = 0 if (cantidad > 10 and cantidad<=20): descuento = 0.05 if(cantidad > 20): descuento = 0.10 pagar = valor*cantidad*(1-descuento) # Salida print(pagar)
[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]
Condicionales múltiples en árbol
Otra forma de resolver el problema del ejemplo anterior, consiste en generar un camino por cada caso para asignar el valor a la variable de salida.
Cada camino es parte de un condicional.
Siguiendo ésta idea, el diagrama de flujo anterior se reorganiza y muestra como:
Las instrucciones en Python sobre condicionales para el ejercicio son:
# Ejemplo 3.Descuentos en productos por precio y cantidad. # Ingreso valor = float(input('Valor del producto: ')) cantidad = float(input('cantidad del producto: ')) # Procedimiento descuento = 0 if (cantidad>10): if (cantidad<=20): descuento = 0.10 else: descuento = 0.05 else: descuento = 0.0 pagar = valor*cantidad*(1-descuento) # Salida print(pagar)
Referencia: Elementos esenciales para programación: Algoritmos y Estructuras de Datos Latin Project. Primera Edición 2014. Sección 4.1.2 p.66
[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]