Fundamentos de Programación

Ejercicios Unidad 03

EJERCICIO 1

En una biblioteca, cada libro tiene una cantidad de páginas. La administración necesita saber cuántos libros superan cierto umbral de páginas y también cuál es el libro más extenso. Para resolverlo:

  • Primero escriba una función contarLargos(lista, umbral) que devuelva cuántos libros tienen más páginas que el umbral.
  • Después, en el programa principal, pida al usuario un umbral y use la función para mostrar el resultado junto con el libro de más páginas.

RESOLUCIÓN

def contarLargos(lista, umbral):
    cantidad = 0
    for paginas in lista:
        if paginas > umbral:
            cantidad = cantidad + 1
    return cantidad

# Programa principal
libros = [120, 340, 560, 220, 890, 430]
umbral = int(input("Ingrese el número de páginas límite: "))

resultado = contarLargos(libros, umbral)

# Encontrar el libro más extenso
mayor = libros[0]
i = 1
while i < len(libros):
    if libros[i] > mayor:
        mayor = libros[i]
    i = i + 1

print("Hay", resultado, "libros con más de", umbral, "páginas")
print("El libro más extenso tiene", mayor, "páginas")

EJERCICIO 2

Una tienda online registra las compras en formato "Producto-Precio". Se necesita calcular cuánto se gastó en total en una categoría específica (por ejemplo, “Ropa”) y al final mostrar también el producto más caro. Para resolverlo:

  • Primero defina la función gastoCategoria(lista, categoria) que sume los precios de los productos cuya categoría coincida.
  • Después, en el programa principal, pida al usuario una categoría y muestre el gasto total y el producto de mayor precio.

RESOLUCIÓN

def gastoCategoria(lista, categoria):
    total = 0
    for item in lista:
        partes = item.split("-")
        nombre = partes[0]
        precio = int(partes[1])
        if nombre == categoria:
            total = total + precio
    return total

# Programa principal
compras = ["Ropa-30", "Zapatos-50", "Ropa-80", "Libros-20", "Ropa-45"]
cat = input("Ingrese la categoría que desea analizar: ")

gasto = gastoCategoria(compras, cat)

# Encontrar producto más caro
mas_caro = compras[0]
i = 1
while i < len(compras):
    partes = compras[i].split("-")
    precio = int(partes[1])
    if precio > int(mas_caro.split("-")[1]):
        mas_caro = compras[i]
    i = i + 1

print("El gasto en", cat, "fue de:", gasto)
print("El producto más caro fue:", mas_caro)

EJERCICIO 3

Un profesor de matemáticas quiere analizar las notas de sus estudiantes. Necesita saber cuántos aprobaron (nota >= 60) y también calcular el promedio de todas las notas. Para resolverlo:

  • Primero defina la función contarAprobados(lista) que devuelva cuántos estudiantes aprobaron.
  • Después, en el programa principal, use esa función y además calcule el promedio general.

RESOLUCIÓN

def contarAprobados(lista):
    aprobados = 0
    for nota in lista:
        if nota >= 60:
            aprobados = aprobados + 1
    return aprobados

# Programa principal
notas = [45, 78, 92, 60, 55, 81, 39]
aprob = contarAprobados(notas)

# Calcular promedio
suma = 0
i = 0
while i < len(notas):
    suma = suma + notas[i]
    i = i + 1
promedio = suma / len(notas)

print("Aprobaron", aprob, "estudiantes")
print("El promedio general es:", promedio)

EJERCICIO 4

En un maratón de lectura, se registra el número de páginas leídas por día. Se necesita identificar cuántos días superaron las 100 páginas y además calcular el total leído en todo el maratón. Para resolverlo:

  • Defina la función diasExigentes(lista) que cuente los días con más de 100 páginas.
  • En el programa principal, invoque la función y sume el total de páginas leídas.

RESOLUCIÓN

def diasExigentes(lista):
    contador = 0
    for paginas in lista:
        if paginas > 100:
            contador = contador + 1
    return contador

# Programa principal
lectura = [50, 120, 200, 80, 150, 30]
dias = diasExigentes(lectura)

# Calcular total
total = 0
i = 0
while i < len(lectura):
    total = total + lectura[i]
    i = i + 1

print("Hubo", dias, "días con más de 100 páginas")
print("El total leído fue de:", total, "páginas")