Sei sulla pagina 1di 4

Examen 1s 2018 segunda evaluación por Paúl Sánchez

Tema 1 (35 Puntos)

La ESPOL ha solicitado su ayuda como conocedor del lenguaje Python para que pueda realizar
reportes sobre los estudiantes y sus respectivos exámenes. Cuenta con un diccionario el cual
se llama estudiantes y tiene la siguiente información:
{'201616855-Alan Brito': {'Semestre1': ('Calculo de una V-AP','Biologia-RP',…),
'Semestre2': ('Fundamentos de P-AP',…), …}
'201816587-Elvis Cocho': {'Semestre1': ('Comunicación I-RP',..),…}

}
a) Escriba la función matrizEstadisticas(estudiantes,aprobados) que recibe el diccionario de
estudiantes y un parámetro aprobados el cual puede ser verdadero o falso, y retorna una
matriz cuyas filas representan a los estudiantes y como columnas 10 semestres, los valores de
celda dependen del parámetro aprobados, si el parámetro aprobado es True, las celdas
tendrán el números de materias aprobadas en determinado semestre. Si el parámetro
aprobado es False las tendrán el numero de materias reprobadas. Por defecto este parámetro
es falso.

b) Escriba la función reprobados(estudiantes) que recibe el diccionario estudiantes y deberá


usar y crear la matriz del literal anterior para crear un diccionario que tenga como clave el
semestre y como valor un conjunto de todos los estudiantes que han reprobado alguna
materia en ese semestre. Ejemplo:
{'Semestre1': {'201616855-Alan Brito', '201816587-Elvis Cocho'}, …}

c) Escriba la función aprobados(estudiantes) la cual es similar al literal anterior.

d) Escriba la función invictos(estudiantes,modo) el cual retorna un conjunto de los estudiantes


que no han reprobado materias en ningún semestre, si el modo es 'matriz' deberá obtener el
conjunto a partir de la matriz de reprobados que deberá crear. Si el modo es otro, deberá
utilizar los diccionarios de las funciones reprobados y aprobados para utilizar operaciones de
conjuntos y obtener el resultado.
Examen 1s 2018 segunda evaluación por Paúl Sánchez

Tema 2 (55 Puntos)

La agencia de viajes Tour SA ha solicitado ayuda con sus datos dados en el archivo viajes.txt, el
cual contiene la información de los clientes, el vuelo que ha realizado y el destino, además del
costo del viaje y la puntuación marcada por el cliente que comprende entre 1 a 10. Un
ejemplo de este archivo es el siguiente:

0937877723;Vuelo 55; Londres;650;7


0937877723;Vuelo 78; París;600;8
0458778552;Vuelo 40; Caracas;250;6
….
Cuenta con la lista destinos la cual contiene los nombres de todos los destinos que han visitado
los clientes y con el diccionario países el cual tiene como clave los países y como valor una
tupla con todos los lugares en los que se puede realizar un viaje.
{'Ecuador': ('Guayaquil', 'Quito', … ), 'UK': ('Londres', … ), 'Venezuela':
('Caracas', … ), … }

a) cargarDatos(nombreArchivo) recibe el archivo viajes.txt y retorna el diccionario vuelos:


{'0937877723': {'Vuelo 55': {'Destino': 'Londres' ,'Costo':650 , 'Puntuacion': 7},
'Vuelo 78': {'Destino': 'Paris' ,'Costo':600 , 'Puntuacion': 8}
},
'0458778552': {'Vuelo 40': {'Destino': 'Caracas','Costo': 250 , 'Puntuacion': 6}}
}
b) haSalido(vuelos,país,países,cliente): recibe el diccionario creado en el literal anterior y
retorna un conjunto de todos los destinos en los cuales el cliente ha viajado fuera de su país
natal.
c) mismoVuelo(vuelos) recibe el diccionario vuelos y retorna un diccionario con la clave vuelo
y el valor un conjunto de clientes los cuales hayan viajado en el mismo vuelo.
d) promedioVuelo(vuelos,vuelo) recibe el diccionario vuelos y un vuelo en especifico y retorna
el promedio de puntuación para ese vuelo.
e) matrizClientePais(vuelos,destinos) recibe el diccionario vuelos y la lista de destinos. Retorna
una matriz la cual sus filas representan a los clientes ordenados según su identificación y sus
columnas todos los destinos, sus celdas son el costo del viaje.
f) matrizVuelo(vuelos) recibe el diccionario vuelos, y retorna una matriz la cual sus filas
representan a los clientes ordenados según su identificación y sus columnas todos los vuelos
ordenados según su numeración. Las celdas son la puntuación de cada cliente.
Adicionalmente mostrar el usuario que mejor ha puntuado un vuelo (BONO)
g) TopDestinos(MCP,n, destinos,preferencia) recibe la matriz cliente país, la lista de destinos y
una preferencia la cual puede ser 'barato' o 'caro', y retorna el top n en forma de lista de
destinos costosos o baratos según lo que han recaudado todos los clientes en ese destino. Si el
usuario no elige preferencia, automáticamente se escogerá 'barato'.
h) TopPuntuacion(mvuelos,n,vuelos,preferencia) recibe la matriz vuelo, el diccionario de
vuelos y una preferencia la cual puede ser 'mejor' o 'peor' y retorna el top n en forma de lista
de vuelos con mejor o peor puntuación en promedio. Si el usuario no elige preferencia
automáticamente se escogerá 'mejor'
Examen 1s 2018 segunda evaluación por Paúl Sánchez

i) Reporte(vuelos,destinos,n,países) recibe el diccionario de vuelos, la lista de destinos, el


numero de elementos para el top, y el diccionario de países y genera un archivo llamado
reporte.exam el cual contiene la información en el siguiente orden:

Cliente: 0937877723
Vuelos realizados:
Vuelo 55, Destino: Londres, Puntuacion: 7
Vuelo 78, Destino: Paris, Puntuacion: 8

¿Ha salido del país?: SI
Cliente: 0458778552
Vuelos realizados:
Vuelo 40, Destino: Londres, Puntuacion: 7

¿Ha salido del país?: SI

Información de Vuelos:
Vuelo 55
Clientes a bordo:
0937877723

Promedio Puntuacion: 7.5
Vuelo 78
Clientes a bordo:
0937877723

Promedio Puntuacion: 6.9


Top n de destinos baratos:

..

Top n de vuelos con mejor puntuación:

..

NOTA: todos los clientes son de Ecuador


Examen 1s 2018 segunda evaluación por Paúl Sánchez

Tema 3 (10 Puntos)

Evalue el siguiente código fuente:

l=[0,0,0,0,1]
d={}
for i in range(5):
d[i]=l[i]
a=l[1:]
l[:4]=a
l[-1]="*"
print(l)
x=list(d.keys())
x.sort(reverse=True)

print("\n")
for i in x:
b=l[:4]
l[1:]=b
l[0]=d[i]
print(l)

Potrebbero piacerti anche