{"id":6773,"date":"2018-09-15T07:14:29","date_gmt":"2018-09-15T12:14:29","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=6773"},"modified":"2026-04-05T18:32:56","modified_gmt":"2026-04-05T23:32:56","slug":"s3eva2018ti_t2-produccion-minera-del-pais","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2018ti_t2-produccion-minera-del-pais\/","title":{"rendered":"s3Eva2018TI_T2 Producci\u00f3n minera del pa\u00eds"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2018ti_t2-produccion-minera-del-pais\/\" data-type=\"post\" data-id=\"6771\">3Eva2018TI_T2 Producci\u00f3n minera del pa\u00eds<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>Soluci\u00f3n propuesta en <strong>Python<\/strong>, el primer bloque corresponde solo a las funciones requeridas en el examen. El segundo bloque corresponde a un programa de prueba.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001-Fundamentos de Programaci\u00f3n - FIEC-ESPOL\n# 3Eva_IT2018_T2 Producci\u00f3n minera del pa\u00eds\nimport numpy as np\n\n# Literal a\ndef extraerMinerales(discurso): \n    palabras = discurso.split(' ')\n    cuales   = &#x5B;]\n\n    for unapalabra in palabras:\n        # Tarea: verificar \u00fanicos\n        if 'mral_' in unapalabra:\n            mencionados = unapalabra&#x5B;5:]\n            mencionados = mencionados.title()\n            cuales.append(mencionados)\n\n    return(cuales)\n\n# literal b\ndef calcularGanancias(P,C,T,precios):\n    produccion = np.array(P)\n    costosExtraccion = np.array(C, dtype=float)\n    costosTransporte = np.array(T)\n    \n    # precio en forma de columna\n    precios = np.transpose(&#x5B;precios])\n\n    ventas = produccion*precios\n    costo = costosTransporte + costosExtraccion\n    ganancia = ventas - costo\n    return(ganancia)\n\n# literal c\ndef gananciaTotal(ganancia, minerales):\n    ganametal = np.sum(ganancia,axis =1)\n    \n    ascendente  = np.argsort(ganametal)\n    descendente = np.argsort(-ganametal)\n\n    totalmetal  = ganametal&#x5B;descendente]\n    \n    # convierte arreglo para ascendente\n    minerales = np.array(minerales)\n    cualmetal = minerales&#x5B;descendente]\n\n    ganatotal = (totalmetal,list(cualmetal))\n\n    return(ganatotal)\n\n# literal d\ndef top8(discurso,reporte):\n    mencionados = extraerMinerales(discurso)\n    totalmetal  = reporte&#x5B;0]\n    cualmetal   = reporte&#x5B;1]\n    \n    interseccion = &#x5B;]\n    m = len(cualmetal)\n    for i in range(0,m,1):\n        if (cualmetal&#x5B;i] in mencionados):\n            interseccion.append(cualmetal&#x5B;i])\n            \n    mejoresmencionados = interseccion&#x5B;:8]\n    return (mejoresmencionados)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Programa de Prueba<\/h2>\n\n\n\n<p><strong><em>Observaci\u00f3n<\/em><\/strong>: las matrices C y T no tienen el mismo orden de magnitud a pesar de ser costos totales. Podr\u00eda ser que el costo de extracci\u00f3n C sea por gramos, sin embargo las matrices se usan tal como fueron presentadas en el examen<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001-Fundamentos de Programaci\u00f3n - FIEC-ESPOL\n\n# PROGRAMA DE PRUEBA -----\ndiscurso  = 'y el dia de ayer descubrimos en la mina mirador que la cantidad de mral_oro'\n\nminerales = &#x5B;'Oro', 'Plata', 'Cobre']\nprecios   = &#x5B;38.48,    3.43,    0.01]\n\nminas = &#x5B;'MIRADOR', 'FRUTA_DEL_NORTE', 'LOMA_LARGA', 'otra']\n\n\nP = &#x5B;&#x5B; 13524000, 121072000,  1204000,  9632000],\n     &#x5B; 28000000,    952000,  9632000, 96404000],\n     &#x5B;126980000,    896000, 92988000,  9604000]]\n\nC = &#x5B;&#x5B; 12.32, 10.23, 23.23, 19.23],\n     &#x5B;  3.13,  1.78,  2.45,  1.69],\n     &#x5B;  8.32,  5.25,  6.32,  6.89]]\n\nT = &#x5B;&#x5B; 43736616, 341786256,  5442080,  28241024],\n     &#x5B; 76244000,   1827840, 13966400, 435746080],\n     &#x5B;156439360,   1121792,300723192,  10785292]]\n            \n# PROCEDIMIENTO\nmencionados = extraerMinerales(discurso)\n\nganancias  = calcularGanancias(P,C,T,precios)\n\nganatotal  = gananciaTotal(ganancias, minerales)\ntotalmetal = ganatotal&#x5B;0]\ncualmetal  = ganatotal&#x5B;1]\n\nmejoresmencionados = top8(discurso,ganatotal)\n\n\n# SALIDA\nprint('a) los minerales mencionados son: ')\nprint(mencionados)\n\nprint('b) las ganancias totales son:')\nprint(ganancias)\n\nprint('c) ganancias totales por metal')\nprint(totalmetal)\nprint(cualmetal)\n\nprint('d) los 8 mejores mencionados: ')\nprint(mejoresmencionados)\n<\/pre><\/div>\n\n\n<p>los resultados en pantalla son :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a) los minerales mencionados son: \n&#091;'Oro']\nb) las ganancias totales son:\n&#091;&#091;  4.76666892e+08   4.31706429e+09   4.08878168e+07   3.42398317e+08]\n &#091;  1.97959969e+07   1.43751822e+06   1.90713576e+07  -1.05080362e+08]\n &#091; -1.55169568e+08  -1.11283725e+06  -2.99793318e+08  -1.06892589e+07]]\nc) ganancias totales por metal\n&#091;  5.17701732e+09  -6.47754890e+07  -4.66764983e+08]\n&#091;'Oro', 'Plata', 'Cobre']\nd) los 8 mejores mencionados: \n&#091;'Oro']\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2018TI_T2 Producci\u00f3n minera del pa\u00eds Algoritmo en Python Soluci\u00f3n propuesta en Python, el primer bloque corresponde solo a las funciones requeridas en el examen. El segundo bloque corresponde a un programa de prueba. Programa de Prueba Observaci\u00f3n: las matrices C y T no tienen el mismo orden de magnitud a pesar de ser costos [&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-6773","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\/6773","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=6773"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6773\/revisions"}],"predecessor-version":[{"id":23756,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6773\/revisions\/23756"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=6773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=6773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=6773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}