Programaci´on—Certamen 2 - Jueves 4 de Junio de 2015 Nombre:
1.
Rol:
[25 %] Realice el ruteo de los siguientes programas e indique qu´ que´ es lo que imprimen. Cada vez que el valor de una variable cambie, escr´ıbalo ıbalo en una nueva fila de la tabla. Recuerde que si una variable es de tipo string, debe colocar su valor entre comillas simples ’ ’. Si una variable almacena una funcion, ´ coloque el nombre de esta e´ sta como valor valor (sin comillas). Importante: La tabla tiene suficientes filas. def x(y,z={'e':2,'i':3,'l':5}):
def tf(d): f = {} for t in d:
r = {} for i in y:
if t not not in f: f[t] = 1 else: f[t] += 1 return f
if i in z: r[i [i] ] = z[i] + y[ y[i i] else: r[i] r[ i] = y[ y[i] i] return r
a = ['e','i','n','e'] print x(tf(a))
global a
tf d
f
x t
y
z
r
i
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programaci´on—Certamen 2 - Jueves 4 de Junio de 2015 Nombre:
2.
Rol:
[35 %] Cineton, una nueva cadena de cines creada por emprendedores de la USM, est a´ ingresando al mercado cinematogr cinematografico. a´ fico. Por eso necesita de su ayuda para implementar ciertas funciones en Phyton y con ellas manejar la cartelera. Para ello se cuenta con la informaci on o´ n de la cartelera de cine en una lista de tuplas como cartelera. A modo de ejemplo, en cartelera la pel´ıcula ıcula ’Gloria’ (Chilena), creada en 2013, se exhibir´a el mes de ’enero’ en las ’sala1’ y ’sala2’. cart ca rtel eler era a = [
# (mes, (mes, pais, pais, nombre_p nombre_pelic elicula, ula, anho_fil anho_filmaci macion, on, [sala1, [sala1, sala2, sala2, ...]) ...]) muelle', 1962, ['sala1', 'sala3']), ('febrero' , 'FRANCIA', 'El muelle' 'La dama dama de hono honor' r', 200 ('febrero' , 'FRANCIA', 'La 004 4, ['sala1', 'sala4']), 'Padre del soldado' soldado', 1964, ['sala3', 'sala2', 'sala4 ('abril', 'RUSIA', 'Padre ']), ('enero', 'CHILE', 'Gloria', 2013 13, , ['sala1', 'sala2']), ('mayo', 'MEXICO', 'Cumbres', 201 013 3, ['sala3', 'sala2']), ('julio', 'FRANCIA', 'Melo', 1986 86, , ['sala3', 'sala1']) ('junio', 'BELGICA', 'Rondo', 201 012 2, ['sala4', 'sala2']), 'Tiempo de Canibale Canibales' s', 2014, ['sala1', 'sala2']), ('marzo', 'ALEMANIA', 'Tiempo Kitchen' ', 200 ('marzo', 'ALEMANIA', 'Soul Kitchen 009 9, ['sala3', 'sala4']), # ... ]
Desarrolle la funci funci´on ´ pelicula_por a) Desarrolle pelicula_por_pais(ca _pais(cartelera, rtelera, pais) que recibe la lista de la cartelera y el nombre de un pa ´ıs, ıs, y que retorne la lista con las pel´ıcula ıcula realizadas realizadas en dicho pa´ıs. ıs. Cada ˜ de filmacion. ´ elemento de esta lista resultante es una tupla con el nombre de la pel´ pel´ıcula ıcula y el ano >>> pelicula_por_pai pelicula_por_pais(carte s(cartelera, lera, 'FRANCIA') 'FRANCIA') [('El [('El mu muel elle' le', , 19 1962) 62), , ('La ('La dama dama de honor' honor', , 2004) 2004), , (' ('Mel Melo', o', 19 1986) 86)] ]
Desarrolle la funci funci´on o´ n peliculas_por_sal b) Desarrolle peliculas_por_sala(cartel a(cartelera, era, sala) que reciba la lista de la cartelera y la sala donde se exhibir´ exhibiran a´ n las distintas pel´ pel´ıculas. ıculas. Esta funcion ´ debe retornar un diccionario cuya llave sea el mes y los valores sean una lista con el nombre de las pel ´ıculas ıculas que se exhibir´ exhibiran a´ n en sala. >>> pelicula_por_sal pelicula_por_sala(carte a(cartelera, lera, 'sala1') {'julio' {'julio': : ['Melo'] ['Melo'], , 'enero' 'enero': : ['Gloria ['Gloria'], '], 'marzo' 'marzo': : ['Tiempo ['Tiempo de Canibal Canibales es '], '] , 'f 'febr ebrero ero': ': ['El ['El mu muell elle' e', , 'L 'La a da dama ma de ho honor nor'] ']} }
funcion ´ mas_antigua(cartelera) que retorne el nombre de la pel´ pel´ıcula ıcula y el pa´ pa´ıs ıs c) Desarrolle la funci´ donde fue filmada la pel´ pel´ıcula ıcula m´ mas a´ s antigua. Si dos o m as a´ s pel´ pel´ıculas ıculas son las m as a´ s antiguas, seleccione cualquiera. >>> mas_antigua(cart mas_antigua(cartelera) elera) ('El muelle' muelle', , 'FRANCI 'FRANCIA') A')
The world’s largest digital library
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Programaci´on—Certamen 2 - Jueves 4 de Junio de 2015 Nombre:
3.
Rol:
[40 %] La compan˜ ´ıa ıa nacional de telecomunicaciones BTP est a´ empecinada en automatizar algunos procesos y consultas en su empresa, ya que hasta el momento eran los pobres practicantes quienes ten´ ten´ıan ıan que revisar los registros uno por uno y encontrar cierta informaci´ informacion o´ n necesaria para satisfacer las consultas hechas por los altos directivos. Los datos de los cliente, de las visitas y de los t ecnicos, e´ cnicos, para el mes de Marzo, est´an an almacenados en las siguientes estructuras: # {id_cliente:[(serv1,serv2,serv3),saldo_mensual,[can {id_cliente:[(serv1,serv2, serv3),saldo_mensual,[canalprem1,canalprem2 alprem1,canalprem2 ], Deuda]} Deuda]} clie cl ient ntes es = { 23: 23 : [('telefonia' , 'cable', 'internet'), 23 2300 000, 0, ['GameKidTV' ], False], 66: 66 : [('internet' , 'telefonia', 'cable'), 34 3400 000, 0, ['WolfSports' , ' ZDFPremium' ], True], 120:[('cable', 'internet'), 30 3000 000, 0, ['HVOPrem' ], True] # ... } #[(id_cliente, #[(id_cliente, id_tecnico, id_tecnico, fecha_visita)] fecha_visita)] visitas_ visitas_tecn tecnicas icas = [(23, [(23, 65, '30-03-2015'), (6 (66, 6, 65 65, , '31-03-2015'), (120, (1 20, 33, '28-03-2015') # . . . ] #{(id_tecnico, #{(id_tecnico, nombre)} nombre)} Cable'), (3 'Dexter Morgan' Morgan') # ...} ...} tecni tecnicos cos = {( {(65, 65, 'Guy Cable' (33, 3, 'Dexter
Se le pide crear funciones para cumplir con los siguientes requerimientos: Desarrollar la funci funci´on ´ monto_total_deuda(clientes) que reciba el diccionario clientes a) Desarrollar y retorne una tupla con el monto total adeudado por los clientes y el id del cliente con mayor deuda. >>> monto_total_deud monto_total_deuda(clien a(clientes) tes) (64000, (64000, 66)
Durante el mes de marzo marzo se tiene tiene la promoci promoci´on ´ que consiste, en que si el cliente tiene sus cuentas b) Durante al d´ıa ıa (no tiene deuda) y adem as a´ s tiene contratado contratado los 3 servicios servicios (telefon´ıa, ıa, cable e internet) se le da gratis el canal premium GameKidTV. Si el cliente ya tiene contratado el canal, se le descuentan $500 pesos de su saldo mensual. Desarrollar la funcion ´ promocion(clientes) que reciba el diccionario clientes y retorne un diccionario igual al de clientes, pero aplicando la promoci´ promocion ´ de marzo a los clientes. >>> promocion(client promocion(clientes) es) {23:[('t {23:[('telef elefonia onia', ', 'cable' 'cable', , 'intern 'internet') et'), , 22500, 22500, ['GameKi ['GameKidTV' dTV'], ], False], False], 66:[('in 66:[('intern ternet' et', , 'telefon 'telefonia', ia', 'cable') 'cable'), , 34000, 34000, ['WolfSp ['WolfSports orts', ', ' ZDFPremi ZDFPremium'] um'], , True], True], 120:[('c 120:[('cabl able', e', 'interne 'internet'), t'), 30000, 30000, ['HVOPre ['HVOPrem'], m'], True]}
quiere premiar premiar al t´ tecnico e´ cnico con mayor cantidad de visitas durante el mes de marzo. El premio c) Se quiere consiste en lo siguiente: El t ecnico e´ cnico con mayor mayor cantidad de visitas, recibe el 1 % por cada servicio (telefon´ (telefon´ıa, ıa, cable, internet) que tienen contratados los clientes a los cuales visito. ´ Ej: por visitar al cliente 66 el tecnico e´ cnico con id 65, recibe $ 1020, dado que el cliente tienen los 3 servicios contratados (1 % de $34.000 $34.000 → $340 * 3 servicios = $1020). Desarrollar la funcion ´ premio_tecnico( premio_tecnico(clientes clientes, , visitas_tecnica visitas_tecnicas, s, tecnicos) tecnicos) que reciba el diccionario clientes, la lista de visitas_tecnicas y el conjunto de tecnicos. La funci´ funcion o´ n retorna una tupla con el nombre del t´ tecnico e´ cnico y el monto total del premio al t´ tecnico e´ cnico ganador del mes de marzo. >>> premio_tecnico(c premio_tecnico(clientes lientes, , visitas_tecnica visitas_tecnicas, s, tecnicos) tecnicos) ('Guy ('Guy Cable', Cable', 1710) 1710)