5.2 Funciones – Algoritmo del mayor, menor, ¿dónde?, ¿cuánto?

[ algoritmo ] [ función ]

De compras en el mercado de víveres, se puede consultar en precio en varios puestos y decidir dónde comprar al final de un recorrido. Si el único factor a considerar es el precio, desde luego que compraremos en el local mas barato.

mercado viveres 01Se obtiene la lista de precios por vendedor de 1 Kg de manzanas y se requiere determinar el local con el precio más barato y en qué posición se encuentra. Considere usar el índice local empezando en cero

local 0 1 2 3
precio 2.25 3.00 2.10 2.50
precio = [2.25,3,2.10,2.50]

Al inicio y sin mas datos, se supone que el mejor precio lo ofrece el primer vendedor.  Siendo el tamaño del vector n=4

n = len(precio)
donde = 0

Sin embargo la decisión se debe tomar considerando los demás locales, por lo que se compara su precio con los demás. La comparación empieza con el siguiente en la lista.

local = donde + 1 
while local<n:
    if (precio[local]<precio[donde]):
        donde = local
    local = local + 1

¿Cuánto? es el precio menor, se obtiene al revisar el valor del vector en la posición de ¿donde?

cuanto = precio[donde]

Tarea: Algoritmo del mayor. ¿Qué pasaría si alguien nos pregunta dónde lo venden más caro? Analice los cambios en el algoritmo.

[ algoritmo ] [ función ]
..


Algoritmo en Python

# algoritmo del menor

# INGRESO:
precio = [2.25,3,2.10,2.50]

# PROCEDIMIENTO
n = len(precio)
donde = 0
local = donde + 1 
while local<n:
    if (precio[local]<precio[donde]):
        donde = local
    local = local + 1

cuanto = precio[donde]

# SALIDA
print('El menor precio:')
print('donde:',donde)
print('cuanto:',cuanto)

[ algoritmo ] [ función ]
..


Función en Python

El bloque de procedimiento  se convierte a una función denominada menor, con variable de entrada vector y variable de salida donde.

# algoritmo del menor
def menor_donde(vector):
    n = len(vector)
    donde = 0
    i = donde + 1 
    while i<n:
        if (vector[i]<vector[donde]):
            donde = i
        i = i + 1
    return(donde)

# INGRESO:
precio = [2.25,3,2.10,2.50]

# PROCEDIMIENTO
donde = menor_donde(precio)
cuanto = precio[donde]

# SALIDA
print('El menor precio:')
print('donde:',donde)
print('cuanto:',cuanto)

[ algoritmo ] [ función ]


Ejercicios de mayor y menor

1Eva_IT2003_T4 Lado mayor de un polígono

1Eva_IIT2008_T3 Tiempos de recorrido en metrovia

1Eva_IT2007_T3 Elección de diputados provinciales

2Eva_IT2003_T1 Funciones promedio, mayor y menor

3Eva_IIT2008_T3 Funciones más caro y más barato