3.2.1 Condicionales «if-else» múltiple o con varios casos

[ 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

condicionales multiples en serieExisten 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

condicionales en serieEjemplo 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

condicionales en árbol, estructuras de controlOtra 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:

condicionales en árbol, estructuras de control

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 ]