{"id":5385,"date":"2018-07-02T10:00:57","date_gmt":"2018-07-02T15:00:57","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=5385"},"modified":"2026-10-09T11:34:12","modified_gmt":"2026-10-09T16:34:12","slug":"s1eva2018ti_t2-desempeno-de-jugadores-mundial-futbol","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva20\/s1eva2018ti_t2-desempeno-de-jugadores-mundial-futbol\/","title":{"rendered":"s1Eva2018TI_T2 Desempe\u00f1o de jugadores mundial futbol"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva20\/1eva2018ti_t2-desempeno-de-jugadores-mundial-futbol\/\" data-type=\"post\" data-id=\"5362\">1Eva2018TI_T2 Desempe\u00f1o de jugadores mundial futbol<\/a><\/p>\n\n\n\n<p>Revisar las sugerencias en el enunciado, dividir el problema y simplificar las tablas para las pruebas de algoritmos, con lo que que se obtiene:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a) el pa\u00eds con mas goles promedio:  Argentina\nb) los jugadores efectivos de:  Brasil 0\nc) jugadores amarrabalon:  &#091;'Lionel Messi']\nd) jugador con m\u00e1s pases acertados:  Lionel Messi\ne) promedios mundiales:  &#091;  33.66666667   88.33333333   64.          179.33333333]\nf) : Lionel Messi no est\u00e1 por encima del promedio mundial\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>Para desarrollar el tema se puede realizar una tabla para ubicar la columna del pa\u00eds y los jugadores:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; first-line: 23; title: ; notranslate\" title=\"\">\ntamano = np.shape(desempeno)\ntdf    = tamano&#x5B;0]\ntdc    = tamano&#x5B;1]\ntp     = len(paises)\n\n# tabla ubicapais&#x5B;unpais] = &#x5B;desde,hasta,cuantos]\nubicapais = np.zeros(shape=(tp,3),dtype=int)\ndesde  = 0\nunpais = 0\nwhile not(unpais&gt;=tp):\n    jugadores = pais_jugadores&#x5B;unpais]\n    cuantos   = len(jugadores)\n    hasta     = desde + cuantos\n    ubicapais&#x5B;unpais,0] = desde\n    ubicapais&#x5B;unpais,1] = hasta\n    ubicapais&#x5B;unpais,2] = cuantos\n    desde  = hasta\n    unpais = unpais + 1\n<\/pre><\/div>\n\n\n<p>con lo que se simplifica la ubicaci\u00f3n de los \u00edndices de columna para la revisi\u00f3n de los detalles en cada literal<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\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<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"591\" height=\"312\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2018\/07\/DesempenoJugadorFutbol01.png\" alt=\"Desempe\u00f1o Jugador Futbol\" class=\"wp-image-16660\" \/><\/figure>\n\n\n\n<p>visualizar la tabla de paises_jugadores es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; pais_jugadores\n&#091;&#091;'Cristiano Ronaldo'], \n &#091;'Neymar Jr.'], \n &#091;'Lionel Messi']]<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Determinar el pa\u00eds con el promedio de goles m\u00e1s alto.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\text{promedio de goles} =\\frac{\\text{goles anotados del pa\u00eds}}{\\text{numero de jugadores del pa\u00eds}}<\/span>\n\n\n\n<p>Los goles anotados corresponden a la primera fila de la tabla, por lo  que se extrae los datos de desempe\u00f1o en una lista <code>golesanotados<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 55; title: ; notranslate\" title=\"\">\nfila = 0 # fila goles anotados\ngolesanotados = desempeno&#x5B;fila]\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<p>Se recorren todos los pa\u00edses para obtener los datos de <code>golesanotados<\/code><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 57; title: ; notranslate\" title=\"\">\nprmGolAnota = np.zeros(tp,dtype = float)\nunpais = 0\nwhile not(unpais&gt;=tp):\n    desde   = ubicapais&#x5B;unpais,0]\n    hasta   = ubicapais&#x5B;unpais,1]\n    cuantos = ubicapais&#x5B;unpais,2]\n    \n    golpais = golesanotados&#x5B;desde:hasta]\n    prmGolAnota&#x5B;unpais] = np.sum(golpais)\/cuantos\n    \n    unpais = unpais + 1\n<\/pre><\/div>\n\n\n<p>y obtener el valor del mayor como <code>goleador<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; first-line: 69; title: ; notranslate\" title=\"\">\ngoleador = np.argmax(prmGolAnota)\nnombregoleador = paises&#x5B;goleador]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Contar cu\u00e1ntos jugadores espa\u00f1oles tienen una efectividad mayor que la <strong>efectividad<\/strong> promedio de Espa\u00f1a.<\/p>\n\n\n\n<p>El desarrollo se realiza por partes, primero se busca el pa\u00eds a analizar, obteniendo el \u00edndice \"<code><strong>donde<\/strong><\/code>\" de la tabla <code><strong>paises<\/strong><\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 75; title: ; notranslate\" title=\"\">\ndonde  = -1\nunpais = 0\nwhile not(unpais&gt;=tp or donde&gt;=0):\n    if (paises&#x5B;unpais] == analizapais):\n        donde = unpais\n    unpais = unpais + 1\n<\/pre><\/div>\n\n\n<p>Luego se extraen los datos de la tabla de goles anotados y tiros directos para ser aplicados en la f\u00f3rmula proporcionada.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\text{efectividad} = \\frac{\\text{goles anotados}}{\\text{Tiros directo al arco}} <\/span>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 82; title: ; notranslate\" title=\"\">\n# efectividad del pais analizado\nfila = tdf-1 # tiros al arco (\u00faltima de desempeno)\ntirosdirectos = desempeno&#x5B;fila]\n\ndesde = ubicapais&#x5B;donde,0]\nhasta = ubicapais&#x5B;donde,1]\n\nanotados = golesanotados&#x5B;desde:hasta]\ndirectos = tirosdirectos&#x5B;desde:hasta]\nefectivopais = np.sum(anotados)\/np.sum(directos)\n<\/pre><\/div>\n\n\n<p>Luego se analiza la efectividad de cada pa\u00eds<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; first-line: 93; title: ; notranslate\" title=\"\">\n#jugadores efectivos del pais analizado\ncuentaefectivos = 0\nquien = desde\nwhile not(quien&gt;=hasta):\n    unaefectividad = golesanotados&#x5B;quien]\/tirosdirectos&#x5B;quien]\n    if (unaefectividad &gt; efectivopais):\n        cuentaefectivos = cuentaefectivos+1\n    quien = quien + 1\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n\n<p>las instrucciones desarrolladas por literal son:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001 Fundamentos de Programaci\u00f3n FIEC-ESPOL\n# 1Eva_IT2018_T2 Desempe\u00f1o de jugadores mundial futbol\nimport numpy as np\n\n# INGRESO\ndesempeno = np.array(&#x5B;&#x5B; 32, 24, 45],\n                      &#x5B; 90, 84, 91],\n                      &#x5B; 54, 60, 78],\n                      &#x5B;187,239,112]])\n\npaises = &#x5B;'Portugal', 'Brasil', 'Argentina']\nprtgl  = &#x5B;'Cristiano Ronaldo']\nbrsl   = &#x5B;'Neymar Jr.' ]\nargntn = &#x5B;'Lionel Messi']\n\npais_jugadores = &#x5B;prtgl, brsl, argntn]\n\nanalizapais = 'Brasil'\nanalizaposeebalon = 76\nanalizajugador = 'Lionel Messi'\n\n# PROCEDIMIENTO\ntamano = np.shape(desempeno)\ntdf    = tamano&#x5B;0]\ntdc    = tamano&#x5B;1]\ntp     = len(paises)\n\n# tabla ubicapais&#x5B;unpais] = &#x5B;desde,hasta,cuantos]\nubicapais = np.zeros(shape=(tp,3),dtype=int)\ndesde  = 0\nunpais = 0\nwhile not(unpais&gt;=tp):\n    jugadores = pais_jugadores&#x5B;unpais]\n    cuantos   = len(jugadores)\n    hasta     = desde + cuantos\n    ubicapais&#x5B;unpais,0] = desde\n    ubicapais&#x5B;unpais,1] = hasta\n    ubicapais&#x5B;unpais,2] = cuantos\n    desde  = hasta\n    unpais = unpais + 1\n    \n# Agrupa jugadores\ntodosjugadores = &#x5B;]\nunpais =  0\nwhile not(unpais&gt;=tp):\n    jugadores = pais_jugadores&#x5B;unpais]\n    cuantos   = len(jugadores)\n    quien = 0\n    while not(quien&gt;=cuantos):\n        todosjugadores.append(jugadores&#x5B;quien])\n        quien = quien + 1\n    unpais = unpais +1\n\n# literal a. pais con mas goles promedio\nfila = 0 # fila goles anotados\ngolesanotados = desempeno&#x5B;fila]\nprmGolAnota = np.zeros(tp,dtype = float)\nunpais = 0\nwhile not(unpais&gt;=tp):\n    desde   = ubicapais&#x5B;unpais,0]\n    hasta   = ubicapais&#x5B;unpais,1]\n    cuantos = ubicapais&#x5B;unpais,2]\n    \n    golpais = golesanotados&#x5B;desde:hasta]\n    prmGolAnota&#x5B;unpais] = np.sum(golpais)\/cuantos\n    \n    unpais = unpais + 1\n    \ngoleador = np.argmax(prmGolAnota)\nnombregoleador = paises&#x5B;goleador]\n\n# literal b. Contar jugadores con mayor efectividad\n# al promedio de analizapais\n# donde = paises.index(buscapais)\ndonde  = -1\nunpais = 0\nwhile not(unpais&gt;=tp or donde&gt;=0):\n    if (paises&#x5B;unpais] == analizapais):\n        donde = unpais\n    unpais = unpais + 1\n\n# efectividad del pais analizado\nfila = tdf-1 # tiros al arco (\u00faltima de desempeno)\ntirosdirectos = desempeno&#x5B;fila]\n\ndesde = ubicapais&#x5B;donde,0]\nhasta = ubicapais&#x5B;donde,1]\n\nanotados = golesanotados&#x5B;desde:hasta]\ndirectos = tirosdirectos&#x5B;desde:hasta]\nefectivopais = np.sum(anotados)\/np.sum(directos)\n\n#jugadores efectivos del pais analizado\ncuentaefectivos = 0\nquien = desde\nwhile not(quien&gt;=hasta):\n    unaefectividad = golesanotados&#x5B;quien]\/tirosdirectos&#x5B;quien]\n    if (unaefectividad &gt; efectivopais):\n        cuentaefectivos = cuentaefectivos+1\n    quien = quien + 1\n\n# literal c. posesion bal\u00f3n\nfila = 2 # fila de posesi\u00f3n de bal\u00f3n\nposeebalon = desempeno&#x5B;fila]\namarrabalon = &#x5B;]\nquien = 0\nwhile not(quien&gt;=tdc):\n    if (poseebalon&#x5B;quien]&gt;analizaposeebalon):\n        amarrabalon.append(todosjugadores&#x5B;quien])\n    quien = quien +1\n    \n# literal d. jugador con m\u00e1s pases acertados\nfila = tdf-2\npasesacertados = desempeno&#x5B;fila]\nquienacierta   = np.argmax(pasesacertados)\nnombreacierta  = todosjugadores&#x5B;quienacierta]\n\n# literal e. promedios mundiales\npromediomundial = np.sum(desempeno,axis =1)\/tdc\n\n# literal f. jugadores superior a promedio mundial\n# donde = todosjugadores.index(analizajugador)\ndonde = -1\nquien = 0\nwhile not(unpais&gt;=tp or donde&gt;=0):\n    if (todosjugadores&#x5B;quien] == analizajugador):\n        donde = unpais\n    quien = quien + 1\n\n# verifica cumplimiento de par\u00e1metros\ncumple = ' est\u00e1 '\nfila = 0\nwhile not(fila&gt;=tdf):\n    caracteristica = desempeno&#x5B;fila,donde]\n    if (caracteristica&lt; promediomundial&#x5B;fila]):\n        cumple = ' no est\u00e1 '\n    fila = fila+1\nmensaje = analizajugador + cumple + 'por encima del promedio mundial'\n\n# SALIDA\nprint('a) pais con mas goles promedio: ', nombregoleador)\nprint('b) jugadores efectivos de: ', analizapais, cuentaefectivos)\nprint('c) jugadores amarrabalon: ', amarrabalon)\nprint('d) jugador con m\u00e1s pases acertados: ', nombreacierta)\nprint('e) promedios mundiales: ', promediomundial)\nprint('f) :', mensaje)\n<\/pre><\/div>\n\n\n<p><strong>Tarea<\/strong>: Realice las modificaciones necesarias para realizar las funciones para las secciones de:<\/p>\n\n\n\n<p>- crear tabla <em><strong>ubicapais<\/strong><\/em>(<em>paises_jugadores<\/em>)<\/p>\n\n\n\n<p>- <em><strong>agrupajugadores<\/strong><\/em>(<em>paises_jugadores<\/em>)<\/p>\n\n\n\n<p>use las funciones realizadas en el programa.<\/p>\n\n\n\n<p>Considerar cuando la respuesta de los algoritmos de b\u00fasqueda es -1, no se encontr\u00f3 el elemento en el conjunto. En la propuesta no se valida \u00e9sta situaci\u00f3n, por ejemplo, si se pone 'espana' y no se encuentra en la tabla.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2018TI_T2 Desempe\u00f1o de jugadores mundial futbol Revisar las sugerencias en el enunciado, dividir el problema y simplificar las tablas para las pruebas de algoritmos, con lo que que se obtiene: Para desarrollar el tema se puede realizar una tabla para ubicar la columna del pa\u00eds y los jugadores: con lo que se simplifica la [&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":[130],"tags":[58,157],"class_list":["post-5385","post","type-post","status-publish","format-standard","hentry","category-fp-s1eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5385","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=5385"}],"version-history":[{"count":8,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5385\/revisions"}],"predecessor-version":[{"id":26173,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5385\/revisions\/26173"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}