s1Eva2003TII_T3 Personas asignadas a proyectos

Ejercicio: 1Eva2003TII_T3 Personas asignadas a proyectos



Ingresar los datos en una matriz, de tamaño nxm, considerando en las filas a las personas y en las columnas a los proyectos. Considera asignado 1 y no asignado como 0.

    m
 Matriz123
 1010
 2100
 3.........
Personas n4.........

Para la parte b), realizar la cuenta de personas asignadas al primer proyecto. Cada resultado por columna de proyecto, se guarda como parte de un vector de participa[proyecto].

El vector de participantes es el resultado de la suma de cada columna.

Para la parte c), se requiere encontrar la carga[persona], que es la suma de cada fila. Por lo que se fija el valor de una persona, una fila, y se revisa para cada persona, todas las columnas, el valor se acumula en carga.

Se muestra solo aquellas personas que tienen carga de trabajo 0.

Tarea: Validar los datos que se ingresan a la matriz asignado[persona,proyecto]. Desarrollar la parte para c)



Algoritmo en Python

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1Eva_IIT2003_T3 Personas asignadas a proyectos
# Propuesta: edelros@espol.edu.ec
# Tarea: validar los datos de asignado

import numpy

# INGRESO
n = int(input('cuantas personas: '))
m = int(input('cuantos proyectos: '))
asignado = numpy.zeros((n+1,m+1),dtype=int)
persona = 1
while (persona<=n):
    proyecto = 1
    while (proyecto<=m):
        print('persona: '+str(persona)+
              ', proyecto: '+
              str(proyecto))
        asignado[persona,proyecto] = int(input(' /asignado (1/0): '))
        proyecto = proyecto + 1
    persona = persona+1

# PROCEDIMIENTO
# participantes por proyecto
participan = numpy.zeros(m+1,dtype=int)
proyecto = 1
while (proyecto<=m):
    s = 0
    persona = 1
    while (persona<=n):
        s = s + asignado[persona,proyecto]
        persona = persona+1
    participan[proyecto] = s
    proyecto = proyecto+1

# Carga de trabajo por persona
carga = numpy.zeros(n+1,dtype=int)
persona = 1
while (persona<=n):
    s = 0
    proyecto = 1
    while (proyecto<=m):
        s = s+asignado[persona,proyecto]
        proyecto = proyecto+1
    carga[persona] = s
    persona = persona+1

# SALIDA
print('Participantes/Proyecto:')
proyecto = 1
while (proyecto<=m):
    print(participan[proyecto])
    proyecto = proyecto+1

print('Persona sin carga de trabajo:')
persona = 1
while (persona<=n):
    if carga[persona]==0:
        print(persona)
    persona = persona+1


Diagrama de Flujo

s1eva_iit2003_t3-personas-asignadas-a-proyectos01
Diagrama de Flujo 1. Ejercicio persona asignada a proyecto
s1eva_iit2003_t3-personas-asignadas-a-proyectos02
Diagrama de Flujo 2. Ejercicio persona asignada a proyecto

Tarea: Desarrollar pregunta c)

s1eva_iit2003_t3-personas-asignadas-a-proyectos03
Diagrama de Flujo 3. Ejercicio persona asignada a proyecto