Ejercicios: 3Eva2015TI_T4 Bomberos para incendios forestales
Menú opción 1
Al inicio del día se registrará cada bombero en orden de llegada en la siguiente tabla:
| cédula | nombre | bombero | provincia |
|---|---|---|---|
| 1234567890 | Juan Pérez | 234 | 17 (Pichincha) |
| 2345678901 | Pedro López | 91 | 9 (Guayas) |
Por facilidad, la provincia usa un código numérico.

Para el registro en la tabla, se obtiene el número de bombero a ser añadido y se muestra en pantalla:
if (opcion ==1):
i = len(presentados) + 1
print('voluntario: ',i)
luego se ingresan los datos de cada columna en variables simples
ced = input('cedula: ')
nom = input('nombre: ')
nbom = int(input('numero bombero: '))
prv = int(input('provincia: '))
Para el valor de provincia se valida que el número de provincia se encuentre en el intervalo [1,24]
while not(prv>=1 and prv<=24):
prv = int(input('provincia [1,24]: '))
Se añaden los datos al diccionario con el nombre de unbombero, para luego añadirlo a la lista presentados.
unbombero = {'cedula':ced,
'nombre': nom,
'nbombero':nbom,
'provincia':prv}
presentados.append(unbombero)
Menú opción 2
Para asignar grupos se requiere conocer el número de grupos y la localidad/provincia a ser atendida.
if (opcion==2):
print('asigna grupos.....')
m = int(input('cuantos grupos/incendios: '))
local = int(input('ayudar a provincia: '))
Las combinaciones entre el bombero y provincia se almacenan en la lista registrados.
n = len(presentados)
registrados =[]
i = 0
while not(i>=n):
nbom = presentados[i]['nbombero']
prv = presentados[i]['provincia']
registrados.append([nbom,prv])
i = i + 1
tabla = grupobombero(registrados, m, local)
print(tabla)
Tarea: Desarrollar la opción 3
Algoritmo en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IT2015_T4 Bomberos para incendios forestales
import numpy as np
def grupobombero(registrados, m, local):
n = len(registrados)
filas = n//m
if (n%m>0):
filas = filas+1
tabla = np.zeros(shape=(filas,m),dtype = int)
# Solo bomberos de provincia local
f = 0
c = 0
i = 0
while not(i>=n):
cual = registrados[i,1]
quien = registrados[i,0]
if (cual == local):
tabla[f,c] = quien
c = c+1
if (c>=m):
c = 0
f = f + 1
i = i + 1
# los demas bomberos
i = 0
while not(i>=n):
cual = registrados[i,1]
quien = registrados[i,0]
if not(cual == local):
tabla[f,c] = quien
c = c + 1
if (c>=m):
c = 0
f = f + 1
i = i + 1
tabla = np.array(tabla)
return(tabla)
# 3ra Evaluación I Término 2015
# Tema 4. Bomberos para incendios forestales
presentados = []
tabla = np.zeros(shape=(1,2),dtype=int)
opcion = -1
i = 1
while not(opcion==6):
print('1. Registrar bombero')
print('2. Asignar grupos')
print('3. Mostrar nombres de un grupo')
print('4. Guardar datos')
print('5. Leer datos')
print('6. Salir')
opcion = int(input(' opcion: '))
if (opcion ==1):
i = len(presentados) + 1
print('voluntario: ',i)
ced = input('cedula: ')
nom = input('nombre: ')
nbom = int(input('numero bombero: '))
prv = int(input('provincia: '))
while not(prv>=1 and prv<=24):
prv = int(input('provincia [1,24]: '))
unbombero = {'cedula':ced,
'nombre': nom,
'nbombero':nbom,
'provincia':prv}
presentados.append(unbombero)
if (opcion==2):
print('asigna grupos.....')
m = int(input('cuantos grupos/incendios: '))
local = int(input('ayudar a provincia: '))
n = len(presentados)
registrados =[]
i = 0
while not(i>=n):
nbom = presentados[i]['nbombero']
prv = presentados[i]['provincia']
registrados.append([nbom,prv])
i = i + 1
tabla = grupobombero(registrados, m, local)
print(tabla)
if (opcion==3):
print('....3. Mostrar nombres de un grupo')
# Tarea por desarrollar
if (opcion==4):
narchivo = 'bomberos.txt'
archivo = open(narchivo,'w')
n = len(presentados)
j =0
while not(j>=n):
ced = presentados[j]['cedula']
nom = presentados[j]['nombre']
nbom = presentados[j]['nbombero']
prv = presentados[j]['provincia']
linea = ced + ',' +nom + ',' + str(nbom) + ',' +str(prv) +'\n'
archivo.write(linea)
j = j+1
archivo.close()
print('.... registros guardados: ', n)
if (opcion == 5):
presentados = []
narchivo = 'bomberos.txt'
archivo = open(narchivo,'r')
linea = archivo.readline()
while not(linea==''):
linea = linea.strip('\n')
partes = linea.split(',')
ced = partes[0]
nom = partes[1]
nbom = int(partes[2])
prv = int(partes[3])
unbombero = {'cedula':ced,
'nombre': nom,
'nbombero':nbom,
'provincia':prv}
presentados.append(unbombero)
linea = archivo.readline()
n = len(presentados)
print('.... registros leidos: ', n)
archivo.close()
if (opcion==6):
print(' Saliendo del programa ....')
print(' ccpg1001 Fundamentos de computación .....')