Ejercicio: 3Eva2016TI_T1 Costo de mensaje
Propuesta de solución en Python:
se requiere los archivos y su contenido: costos.txt
10
0.2
0.5
0.3
mensaje01.txt
El cuerpo humano es el carruaje;
el yo, el hombre que lo conduce;
el pensamiento son las riendas,
y los sentimientos, los caballos.
Algoritmo en Python
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL
# 3Eva_IT2016_T1 Costo de mensaje
# Tarea: revisar si es necesario el uso de
# mayúsculas/minúsculas
# literal a)
def cargarDatos(nombreArchivo):
archivo = open(nombreArchivo, 'r')
unalinea = archivo.readline()
unalinea = unalinea.strip('\n')
m = int(unalinea)
unalinea = archivo.readline()
unalinea = unalinea.strip('\n')
corta = float(unalinea)
unalinea = archivo.readline()
unalinea = unalinea.strip('\n')
larga = float(unalinea)
unalinea = archivo.readline()
unalinea = unalinea.strip('\n')
infinitivo = float(unalinea)
archivo.close()
tarifas = {'m':m,
'corta':corta,
'larga':larga,
'infinitivo':infinitivo}
return(tarifas)
def cargarDatos2(nombreArchivo):
lista = []
archivo = open(nombreArchivo, 'r')
unalinea = archivo.readline()
while not(unalinea==''):
unalinea = unalinea.strip('\n')
lista.append(unalinea)
unalinea = archivo.readline()
archivo.close()
tarifas = {'m':int(lista[0]),
'corta':float(lista[1]),
'larga':float(lista[2]),
'infinitivo':float(lista[3])}
return(tarifas)
def calcularCostos(tarifas, nombreArchivo):
costo = 0
# Carga en una lista
lista = []
archivo = open(nombreArchivo, 'r')
unalinea = archivo.readline()
while not(unalinea==''):
unalinea = unalinea.strip('\n')
lista.append(unalinea)
unalinea = archivo.readline()
archivo.close()
#Procesar las lineas
n = len(lista)
i = 0
while not(i>=n):
linea = lista[i]
palabras = linea.split(' ')
m = len(palabras)
j = 0
while not(j>=m):
palabras[j] = palabras[j].strip(',')
palabras[j] = palabras[j].strip(';')
palabras[j] = palabras[j].strip('.')
tamano = len(palabras[j])
valor = 0
if (tamano tarifas['m']):
valor = tarifas['larga']
k = len(palabras[j])
ultimas = palabras[j][k-2]+palabras[j][k-1]
if (ultimas == 'ar' or ultimas=='er' or ultimas=='ir'):
valor = tarifas['infinitivo']
costo = costo + valor
j = j + 1
i = i + 1
return(costo)
# PROGRAMA DE PRUEBA
tarifas = cargarDatos('costos.txt')
costo = calcularCostos(tarifas, 'mensaje01.txt')
print(costo)