Ejercicio: 2Eva_IIT2014_T2 Listar multas infractores metrovía
continuación del tema 1. Propuesta de solución en Python:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 2Eva_IIT2014_T2 Listar multas infractores metrovía # Tarea: Calcular el total de multas a recaudar import numpy as np def multametrovia(veces,basico): pagar = 0 i = 1 while not(i>veces): if (i==1): pagar = basico + 0.1*basico if (i>1): pagar = pagar + 2*basico+0.1*basico i = i + 1 return(pagar) # 2Eva_IIT2014_T2 Listar multas infractores metrovía # usa la funcion anterior # INGRESO n = int(input('cuantas infracciones: ')) i = 0 codigo = [] while not(i>=n): placa = input('codigo: ') codigo.append(placa) i = i + 1 # PROCEDIMIENTO # marcar los únicos unico = np.ones(n,dtype=int) i = 0 penultimo = n-1 while not(i>=penultimo): j = i + 1 while not(j>=n): if (codigo[i]==codigo[j]): unico[j] = 0 j = j + 1 i = i + 1 # copiar en nueva lista placas únicas infractor = [] i = 0 while not(i>=n): if (unico[i]==1): infractor.append(codigo[i]) i = i + 1 # contar los repetidos vector veces m = len(infractor) veces = np.zeros(m,dtype=int) i = 0 while not(i>=n): placa = codigo[i] # busca en infractores j = 0 while not(j>=m): if (placa==infractor[j]): veces[j] = veces[j] + 1 j = j + 1 i = i + 1 # multas multas = np.zeros(m,dtype=float) j = 0 while not(j>=m): multas[j] = multametrovia(veces[j],354) j = j + 1 # Tarea: total a recaudar por multas # SALIDA print(unico) print(infractor) print('La lista de infractores y multas es:') j = 0 while not(j>=m): print(infractor[j],multas[j]) j = j + 1
resultado del algoritmo
cuantas infracciones: 4 codigo: 123 codigo: 456 codigo: 1020 codigo: 456 [1 1 1 0] ['123', '456', '1020'] La lista de infractores y multas es: 123 389.4 456 1132.8000000000002 1020 389.4 >>>