Ejercicios: 3Eva_IT2015_T4 Bomberos para incendios forestales
Propuesta de solución en Python:
Tarea: Desarrollar la opcion 3
# 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 .....')