Ejercicio: 3Eva_IT2016_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:
# 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)