{"id":4234,"date":"2015-01-03T11:47:01","date_gmt":"2015-01-03T16:47:01","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=4234"},"modified":"2026-09-27T07:31:15","modified_gmt":"2026-09-27T12:31:15","slug":"s3eva2015ti_t4-bomberos-para-incendios-forestales","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2015ti_t4-bomberos-para-incendios-forestales\/","title":{"rendered":"s3Eva2015TI_T4 Bomberos para incendios forestales"},"content":{"rendered":"\n<p><em><strong>Ejercicios<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2015ti_t4-bomberos-para-incendios-forestales\/\" data-type=\"post\" data-id=\"2685\">3Eva2015TI_T4 Bomberos para incendios forestales<\/a><\/p>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Men\u00fa opci\u00f3n 1<\/h2>\n\n\n\n<p>Al inicio del d\u00eda se registrar\u00e1 cada bombero en orden de llegada en la siguiente tabla:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>c\u00e9dula<\/th><th>nombre<\/th><th>bombero<\/th><th>provincia<\/th><\/tr><\/thead><tbody><tr><td>1234567890<\/td><td>Juan P\u00e9rez<\/td><td>234<\/td><td>17 (Pichincha)<\/td><\/tr><tr><td>2345678901<\/td><td>Pedro L\u00f3pez<\/td><td>91<\/td><td>9 (Guayas)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Por facilidad, la provincia usa un c\u00f3digo num\u00e9rico.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"450\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2016\/02\/incendiosForestales01.jpg\" alt=\"https:\/\/www.asoteca.org.ec\/5-000-bomberos-continuan-combatiendo-10-incendios-forestales-en-california\/\" class=\"wp-image-25995\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Para el registro en la tabla, se obtiene el n\u00famero de bombero a ser a\u00f1adido y se muestra en pantalla:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 55; title: ; notranslate\" title=\"\">\n    if (opcion ==1):\n        i = len(presentados) + 1\n        print('voluntario: ',i)\n<\/pre><\/div>\n\n\n<p>luego se ingresan los datos de cada columna en variables simples<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 59; title: ; notranslate\" title=\"\">\n        ced  = input('cedula: ')\n        nom  = input('nombre: ')\n        nbom = int(input('numero bombero: '))\n        prv  = int(input('provincia: '))\n<\/pre><\/div>\n\n\n<p>Para el valor de provincia se valida que el n\u00famero de provincia se encuentre en el intervalo [1,24]<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 63; title: ; notranslate\" title=\"\">\n        while not(prv&gt;=1 and prv&lt;=24):\n            prv = int(input('provincia &#x5B;1,24]: '))\n<\/pre><\/div>\n\n\n<p>Se a\u00f1aden los datos al diccionario con el nombre de <code><strong>unbombero<\/strong><\/code>, para luego a\u00f1adirlo a la lista <code><strong>presentados<\/strong><\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 66; title: ; notranslate\" title=\"\">\n        unbombero = {'cedula':ced,\n                     'nombre': nom,\n                     'nbombero':nbom,\n                     'provincia':prv}\n        presentados.append(unbombero)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Men\u00fa opci\u00f3n 2<\/h2>\n\n\n\n<p>Para asignar grupos se requiere conocer el n\u00famero de grupos y la localidad\/provincia a ser atendida.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 72; title: ; notranslate\" title=\"\">\n    if (opcion==2):\n        print('asigna grupos.....')\n        m = int(input('cuantos grupos\/incendios: '))\n        local = int(input('ayudar a provincia: '))\n<\/pre><\/div>\n\n\n<p>Las combinaciones entre el bombero y provincia se almacenan en la lista <strong><code>registrados<\/code><\/strong>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 76; title: ; notranslate\" title=\"\">\n        n = len(presentados)\n        registrados =&#x5B;]\n        i = 0\n        while not(i&gt;=n):\n            nbom = presentados&#x5B;i]&#x5B;'nbombero']\n            prv = presentados&#x5B;i]&#x5B;'provincia']\n            registrados.append(&#x5B;nbom,prv])\n            i = i + 1\n        tabla = grupobombero(registrados, m, local)\n        print(tabla)\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><strong>Tarea<\/strong>: Desarrollar la opci\u00f3n 3<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 3Eva_IT2015_T4 Bomberos para incendios forestales\nimport numpy as np\n\ndef grupobombero(registrados, m, local):\n    n = len(registrados)\n    filas = n\/\/m\n    if (n%m&gt;0):\n        filas = filas+1\n    tabla = np.zeros(shape=(filas,m),dtype = int)\n    # Solo bomberos de provincia local\n    f = 0\n    c = 0\n    i = 0\n    while not(i&gt;=n):\n        cual = registrados&#x5B;i,1]\n        quien = registrados&#x5B;i,0]\n        if (cual == local):\n            tabla&#x5B;f,c] = quien\n            c = c+1\n            if (c&gt;=m):\n                c = 0\n                f = f + 1\n        i = i + 1\n    # los demas bomberos\n    i = 0\n    while not(i&gt;=n):\n        cual = registrados&#x5B;i,1]\n        quien = registrados&#x5B;i,0]\n        if not(cual == local):\n            tabla&#x5B;f,c] = quien\n            c = c + 1\n            if (c&gt;=m):\n                c = 0\n                f = f + 1\n        i = i + 1\n    tabla = np.array(tabla)\n    return(tabla)\n\n# 3ra Evaluaci\u00f3n I T\u00e9rmino 2015\n# Tema 4. Bomberos para incendios forestales\npresentados = &#x5B;]\ntabla  = np.zeros(shape=(1,2),dtype=int)\nopcion = -1\ni = 1\nwhile not(opcion==6):\n    print('1. Registrar bombero')\n    print('2. Asignar grupos')\n    print('3. Mostrar nombres de un grupo')\n    print('4. Guardar datos')\n    print('5. Leer datos')\n    print('6. Salir')\n    opcion = int(input(' opcion: '))\n\n    if (opcion ==1):\n        i = len(presentados) + 1\n        print('voluntario: ',i)\n        \n        ced  = input('cedula: ')\n        nom  = input('nombre: ')\n        nbom = int(input('numero bombero: '))\n        prv  = int(input('provincia: '))\n        while not(prv&gt;=1 and prv&lt;=24):\n            prv = int(input('provincia &#x5B;1,24]: '))\n            \n        unbombero = {'cedula':ced,\n                     'nombre': nom,\n                     'nbombero':nbom,\n                     'provincia':prv}\n        presentados.append(unbombero)\n\n    if (opcion==2):\n        print('asigna grupos.....')\n        m = int(input('cuantos grupos\/incendios: '))\n        local = int(input('ayudar a provincia: '))\n        n = len(presentados)\n        registrados =&#x5B;]\n        i = 0\n        while not(i&gt;=n):\n            nbom = presentados&#x5B;i]&#x5B;'nbombero']\n            prv = presentados&#x5B;i]&#x5B;'provincia']\n            registrados.append(&#x5B;nbom,prv])\n            i = i + 1\n        tabla = grupobombero(registrados, m, local)\n        print(tabla)\n        \n    if (opcion==3):\n        print('....3. Mostrar nombres de un grupo')\n        # Tarea por desarrollar\n            \n    if (opcion==4):\n        narchivo = 'bomberos.txt'\n        archivo = open(narchivo,'w')\n        n = len(presentados)\n        j =0\n        while not(j&gt;=n):\n            ced = presentados&#x5B;j]&#x5B;'cedula']\n            nom = presentados&#x5B;j]&#x5B;'nombre']\n            nbom = presentados&#x5B;j]&#x5B;'nbombero']\n            prv = presentados&#x5B;j]&#x5B;'provincia']\n            linea = ced + ',' +nom + ',' + str(nbom) + ',' +str(prv) +'\\n'\n            archivo.write(linea)\n            j = j+1\n        archivo.close()\n        print('.... registros guardados: ', n)\n        \n    if (opcion == 5):\n        presentados = &#x5B;]\n        narchivo = 'bomberos.txt'\n        \n        archivo = open(narchivo,'r')\n        linea = archivo.readline()\n        while not(linea==''):\n            linea  = linea.strip('\\n')\n            partes = linea.split(',')\n            ced  = partes&#x5B;0]\n            nom  = partes&#x5B;1]\n            nbom = int(partes&#x5B;2])\n            prv  = int(partes&#x5B;3])\n            \n            unbombero = {'cedula':ced,\n                         'nombre': nom,\n                         'nbombero':nbom,\n                         'provincia':prv}\n            presentados.append(unbombero)\n            linea = archivo.readline()\n\n        n = len(presentados)\n        print('.... registros leidos: ', n)\n        archivo.close()\n\n    if (opcion==6):\n        print(' Saliendo del programa ....')\n        print(' ccpg1001 Fundamentos de computaci\u00f3n .....')\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicios: 3Eva2015TI_T4 Bomberos para incendios forestales Men\u00fa opci\u00f3n 1 Al inicio del d\u00eda se registrar\u00e1 cada bombero en orden de llegada en la siguiente tabla: c\u00e9dula nombre bombero provincia 1234567890 Juan P\u00e9rez 234 17 (Pichincha) 2345678901 Pedro L\u00f3pez 91 9 (Guayas) Por facilidad, la provincia usa un c\u00f3digo num\u00e9rico. Para el registro en la tabla, [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[58,157],"class_list":["post-4234","post","type-post","status-publish","format-standard","hentry","category-fp-s3eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=4234"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4234\/revisions"}],"predecessor-version":[{"id":26042,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4234\/revisions\/26042"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}