#La empresa "Banquetas SA" se dedica a la fabricacién y venta de banquetas de
diferentes modelos: "REDONDA", "ALTA" y "BAJA".
# La empresa realiza un seguimiento de sus ventas a través de un sistema que
almacena 1a fecha, cantidad vendida, modelo de banqueta y
# el cliente que realiz6 la compra.
#Se necesita un sistema que permita cargar las ventas de la enpresa y realizar
diversas consultas y estadisticas a partir de los datos cargados.
Hla carga de datos finaliza cuando se ingresa un cliente con valor @.
#Las consultas y estadisticas que se deben realizar son las siguientes:
#Mostrar todos los datos de las ventas en forma de cuadro.
#Buscar las ventas realizadas en una fecha especifica e imprimir los detalles
de esas ventas.
#Calcular el promedio de la cantidad de banquetas vendidas del modelo "BAJA".
wEncontrar 1a venta con 1a menor cantidad de banquetas y mostrar los detalles
de esa venta.
#Encontrar el cliente que mas banquetas compré y mostrar la cantidad total de
banquetas compradas por ese cliente.
#Mostrar la cantidad total de banquetas vendidas de cada modelo.
Mostrar todos los datos de las ventas ordenados por fecha.
WEL sistema debe validar que las fechas ingresadas estén en el rango de 1 a
30, las cantidades estén en el rango de 1 a 9999,
# y los modelos ingresados sean Unicamente "REDONDA", "ALTA" o "BAJA".
def valida_rango(leyenda, desde, hasta)
numero = int(input (leyenda))
while numero < desde or numero > hasta
numero = int(input (‘Re*+leyenda) )
return numero
def
gar(vec_fecha, vec_cant, vec_mod, vec_cli)
cliente = vali ngrese client @, 3)
while cliente I= @
fecha = valida_rango("Ingrese fech 30)
cantidad = valida rango("Ingrese cantidad: ", 1,
("Ingrese modelo: "). upper()
while nodelo != 'REDONDA' and modelo = 'ALTA' and modelo |= "BAIA"
mnodelo = input (*Re-ingrese modelo: “) .upper()
vec_fecha.append (fecha)
vec_cant.append(cantidad)
vec_cli.append( cliente)
vec_nod. append(modelo
cliente = valida_pango("Ingrese cliente: ",
def mostrar(vec_fecha, vec_cant, vec_nod, vec_cli)
print ("Fecha\tModelo\tCliente\ tCant idad” )
modelo = inputfor i in range(ien(vec_nod)):
print(#'{vec_fecha[i]}\t{vec_mod[i]}\t{vec_cli[i] \t{vec_cant[i]}")
def buscar(a_buscar, vec):
ise
while i < len(vec) and a_buscar != vec[i]:
ita
return i < len(vec)
def mostrar_fecha(a_dia, vec_fecha, vec_cant, vec_mod, vec_cli’
print ("Fecha\tModelo\tCliente\tCantidad" )
for i in range(len(vec_mod))
Lf a_dia => vec_fecha[i]:
print(#*{vec_fecha[i]}\t{vec_mod[i]}\t{vec_cli[i]}\t{vec_cant[i]}*)
def pronedio(modelo, vec_modelos, vec_cant):
acum = @
cont = @
for i in range(len(vec_cant))
Af modelo == vec_modelos[i]:
acun += vec_cant[i]
cont +21
return acum/cont
def buscar_ninino(vec):
min_pos = @
for i in range(len(vec)):
if vec{min_pos] >vec[i}:
min_pos = i
return min_pos
def buscar_naxino(vec):
max_pos = @
for i in range(ien(vec)):
if vec{max_pos] < vec[i]:
max_pos = i
return max_pos
def cantidades_mod(modelo, vec_mod, vec_cant):
cant = @
for i in range(len(vec_cant))
if modelo == vec_mod{i]:
cant += vec_cant[i]
return cant
def ordenar(criterio, vecl, vec2, vec3):
for i in range(@, len(criterio)-1):for j in range(itt, len(criterio)):
Af criterio[i] > criterio[j]:
swap(criterio, i, 3)
swap(vect, 1, 3)
swap(vec2, i, 5)
swap(vec3, i, 5)
def swap(vec, 1, J):
aux = vec[i]
vec[i] = vecli]
vec[j] = aux
# Se termina la carga con cliente = @
fechas = []
cantidades = []
modelos = []
clientes = []
cargar(fechas, cantidades, modelos, clientes)
if len(fechas) t= @:
mostrar(fechas, cantidades, modelos, clientes)
fecha_a_buscar = valida rango("Ingrese fecha a buscar: ", 1, 30)
if buscar(fecha_a_buscar, fechas):
mostrar_fecha(fecha_a_buscar, fechas, cantidades, modelos, clientes)
else:
print ("No hay ventas en ese dia”)
modelo_a_buscar = "BAJA"
if buscar(modelo_a_buscar, modelos):
print(F'El promedio de las banquetas bajas {pronedio(modelo_a_buscar,
cantidades)}")
else:
print ("No hay ventas de banqueta baja")
pos_min = buscar_minino(cantidades)
print(f""'La minima cantidad pedida fue
{fechas[pos_min] }\t{ cantidades [pos_min]}\t{clientes[pos_min]}\t{nodelos[pos_mi
ny")
pos_max = buscar_maximo(cantidades)
print(f'El cliente que mas pidio fue {clientes[pos_max]}")
print ("Del modelo Redondo se vendieron {cantidades mod ("REDONDA”,
modelos, cantidades)}")
print(#'Del modelo Baja se vendieron {cantidades_nod("BAIA", modelos,
cantidades)}")
print(#'Del modelo Alta se vendieron {cantidades_mod(*ALTA", modelos,
cantidades)}")
ordenar(fechas, cantidades, modelos, clientes)
mostrar(fechas, cantidades, modelos, clientes)
else:print ("No hay datos”)