s2Eva_IIT2016_T1 Multas de Transito por sector

Ejercicio: 2Eva_IIT2016_T1 Multas de Transito por sector

Propuesta de solución en Python:

# 2da Evaluación II Término 2016
# Tema 1. Multas de transito
import numpy as np

def generaMatriz(listamultas,sectores):
    n=len(sectores)
    unafila=sectores[0]
    m=len(unafila)
    matriz=np.zeros(shape=(n,m),dtype=float)

    k=len(listamultas)
    i=0
    while not(i>=k):
        f = listamultas[i][0]
        c = listamultas[i][1]
        valor = listamultas[i][2]
        matriz[f,c] = matriz[f,c] + valor
        i = i+1
    return(matriz)

def sectorTop(matriz):
    # TAREA: Realizar para este y oeste
    tamano = np.shape(matriz)
    n = tamano[0]
    m = tamano[1]
    norte = matriz[0,:]
    sur = matriz[n-1,:]
    centro = matriz[1:3,2]

    rnorte=np.sum(norte)
    rsur=np.sum(sur)
    rcentro=np.sum(centro)
    
    suma=[rnorte,rsur,rcentro]
    referencia=['norte','sur','centro']
    
    cual=np.argmax(suma)
    nombre=referencia[cual]
    valor=suma[cual]
    respuesta=[nombre,valor]

    return(respuesta)


# PROGRAMA
# INGRESO
sectores = [
['Norte','Norte','Norte','Norte','Norte'],
['Oeste','Oeste','Centro','Este','Este'],
['Oeste','Oeste','Centro','Este','Este'],
['Oeste','Oeste','Centro','Este','Este'],
['Sur','Sur','Sur','Sur','Sur']]

listamultas=[
    (0, 0, 120),
    (1, 2, 330),
    (3, 4, 123),
    (4, 2, 62),
    (0, 0, 50),
    (4, 4, 89),
    (0, 3, 25),
    (2, 0, 43),
    (3, 2, 21),
    (0, 0, 120)]

# PROCEDIMIENTO
recaudar=generaMatriz(listamultas,sectores)

# SALIDA
print(sectores)
print(listamultas)
print('Hay que recaudar:')
print(recaudar)