2da Evaluación I Término 2016-2017. Agosto 30, 2016 /CCPG001
(Editado para tarea, se manteniene el objetivo de aprendizaje)
TEMA 2. (60 PUNTOS) Las distancias entre ciudades del Ecuador conectadas directamente por una carretera están almacenadas en el archivo ‘Ecuador_Distancias.txt‘ con el siguiente formato:
Ciudad_de_Partida|Ciudad,Distancia|Ciudad,Distancia|...|Ciudad,Distancia Por ejemplo: Ambato|Azogues,280|Babahoyo,212|Pedernales,318 Azogues|Pedernales,555|Babahoyo,125 Pedernales|Ambato,318|Azogues,555 Babahoyo|Ambato,250 ...
Implemente las siguientes funciones:
a) cargarDatos(nombreArchivo) que recibe el nombre del archivo como string y retorna el diccionario distancias con el siguiente formato:
distancias = { 'Ambato':{'Azogues':280,'Babahoyo':212,'Pedernales':318}, 'Azogues':{'Pedernales':555,'Babahoyo':125}, 'Babahoyo':{'Ambato':250} }
b) ciudadesCercanas(distancias, km) donde distancias es el diccionario generado en el literal a) y km es un valor entero positivo . La función retorna una lista de tuplas con todos los pares de ciudades conectadas directamente por una carretera que estén a una distancia menor o igual que el valor de km.
La tupla incluye los valores de ‘ciudad1’, ‘ciudad2’, ‘distancia’ que las separa. Por ejemplo:
>>> ciudadesCercanas(distancias,300) retorna: [('Ambato','Azogues',280), ('Ambato','Babahoyo',212), ('Azogues','Babahoyo',125), ('Babahoyo','Ambato',250)]
c) guardarCiudadesCercanas(distancias, listaKms) que recibe el diccionario de distancias y una lista con varias distancias en kilómetros, para generar un archivo con las ciudades separadas a máximo dicha distancia. Por ejemplo:
>>>guardarCiudadesCercanas(distancias, [300, 100, 250]) genera los siguientes tres archivos: ciudades300.txt, ciudades100.txt, ciudades250.txt.
El archivo ‘ciudades300.txt’ tendría el siguiente contenido:
Ambato,Azogues,280 Ambato,Babahoyo,212 Azogues,Babahoyo,125 Babahoyo,Ambato,250