Ejercicio: 1Eva2017TII_T3 Venta combustibles
Propuesta de solución en Python:
Se usan datos de prueba para probar la ejecución del algoritmo por cada literal. En el bloque de ingreso se pide solo un tipo de combustible (literal a) y una ciudad (literal b).
Se usa vector.index(dato) para ubicar la posición de un dato en el vector.
# literal a
cual = tipoGasolina.index(untipo)
cantidad = venta[cual,:]
prom_anual = np.sum(cantidad)/m
menosprom = []
for c in range(0,m,1):
if (cantidad[c]<prom_anual):
menosprom.append(gasolinera[c])
Como algunas respuestas tienen un número indeterminado de elementos se usan listas, al inicio vacías. Revise el uso de np.concatenate() para hacerlo con arreglos.
Algoritmo en Python
# CCPG1001 Fundamentos de Programación FIEC-ESPOL
# 1Eva_IIT2017_T3 Venta combustibles
import numpy as np
# INGRESO
venta = np.array([
[ 239034, 678493, 896321, 32438, 554213],
[4568321, 6745634, 9754008, 3242342, 3456123],
[ 234773, 56743, 123678, 4783, 90874],
[ 45672, 45212, 90781, 3904, 90431]])
tipoGasolina = np.array(['Regular',
'Extra',
'Super',
'Premium'])
gasolinera = np.array(['Primax Alborada',
'PS Los Ríos',
'Móbil Cumbayá',
'Lutexa Cia Ltda',
'PS Remigio Crespo'])
distrito = np.array(['distrito1',
'distrito2',
'distrito1',
'distrito2',
'distrito4'])
ciudad = np.array(['Guayaquil',
'Babahoyo',
'Quito',
'Guayaquil',
'Cuenca'])
meta = 5000000
untipo = input('un tipo de gasolina: ')
unaciudad = input('una ciudad: ')
# PROCEDIMIENTO
tipoGasolina = list(tipoGasolina)
gasolinera = list(gasolinera)
distrito = list(distrito)
ciudad = list(ciudad)
tamano = np.shape(venta)
n = tamano[0]
m = tamano[1]
# literal a
cual = tipoGasolina.index(untipo)
cantidad = venta[cual,:]
prom_anual = np.sum(cantidad)/m
menosprom = []
for c in range(0,m,1):
if (cantidad[c]<prom_anual):
menosprom.append(gasolinera[c])
# literal b
cual = ciudad.index(unaciudad)
anual = np.sum(venta, axis=0)
menosciudad = []
for c in range(0,m,1):
if (ciudad[c] == unaciudad and anual[c]<meta):
menosciudad.append(gasolinera[c])
cuantas = len(menosciudad)
# literal c
cual = tipoGasolina.index('Premium')
cantidad = venta[cual,:]
nombres = []
valores = []
for c in range(0,m,1):
if (distrito[c] == 'distrito2'):
nombres.append(ciudad[c])
valores.append(cantidad[c])
k = len(nombres)
mayor = np.argmax(np.array(valores))
mejorendistrito = nombres[mayor]
# SALIDA
print('literal a')
print('con menos ventas anuales que promedio: ')
print(menosprom)
print('literal b')
print('cantidad de estaciones de ' + unaciudad + ': ')
print(cuantas)
print('literal c')
print(nombres)
print(valores)
print(mejorendistrito)
Resultado del algoritmo
un tipo de gasolina: Regular
una ciudad: Guayaquil
literal a
con menos ventas anuales que promedio:
['Primax Alborada', 'Lutexa Cia Ltda']
literal b
cantidad de estaciones de Guayaquil:
1
literal c
['Babahoyo', 'Guayaquil']
[45212, 3904]
Babahoyo
>>>