2da Evaluación I Término 2016-2017. Agosto 30, 2016 /CCPG001
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