{"id":4490,"date":"2017-03-11T11:51:21","date_gmt":"2017-03-11T16:51:21","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=4490"},"modified":"2026-04-05T17:36:21","modified_gmt":"2026-04-05T22:36:21","slug":"s1eva2016ti_t2-historial-de-visitas-web","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva20\/s1eva2016ti_t2-historial-de-visitas-web\/","title":{"rendered":"s1Eva2016TI_T2 historial de visitas web"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva20\/1eva2016ti_t2-historial-de-visitas-web\/\" data-type=\"post\" data-id=\"3934\">1Eva2016TI_T2 historial de visitas web<\/a><\/p>\n\n\n\n<p><em><strong>literal a<\/strong><\/em>. Se obtiene un <strong><code>registro<\/code> <\/strong>de los sitios <code>visitados<\/code>, para luego separar sus <strong>partes<\/strong> entre <code>empleado|<strong>sitio<\/strong>|duracion<\/code>.<\/p>\n\n\n\n<p>Para los <strong>sitio<\/strong>s que no son de <code>trabajo<\/code> se usa una lista llamada <code>ocio<\/code>. Si el <strong>sitio<\/strong> visitado no se encuentra en <code>trabajo<\/code>, se a\u00f1ade a la lista <code>ocio<\/code>. Se considera revisar que la lista no tenga elementos repetidos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># a) sitios que no son de trabajo<\/span>\nocio = &#091;]\nn = <span style=\"color: #ff00ff\">len<\/span>(visitados)\ni = 0\n<span style=\"color: #d35400\">while<\/span> <span style=\"color: #d35400\">not<\/span>(i&gt;=n):\n    registro = visitados&#091;i]\n    partes = registro.split(<span style=\"color: #008000\">'|'<\/span>)\n    sitio  = partes&#091;1]\n    <span style=\"color: #d35400\">if<\/span> <span style=\"color: #d35400\">not<\/span>(sitio <span style=\"color: #d35400\">in<\/span> trabajo):\n        <span style=\"color: #d35400\">if<\/span> <span style=\"color: #d35400\">not<\/span>(sitio <span style=\"color: #d35400\">in<\/span> ocio):\n            ocio.append(sitio)\n    i = i + 1<\/code><\/pre>\n\n\n\n<p><em><strong>literal b<\/strong><\/em>. Par contabilizar el <strong>tiempo<\/strong> por <strong>empleado<\/strong> se acumula en una lista los tiempos de navegaci\u00f3n, usando la posici\u00f3n del empleado en la lista obtenida con la instrucci\u00f3n <code>empleados.index(quien)<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># b) tiempo de internet\/empleado<\/span>\nm = <span style=\"color: #ff00ff\">len<\/span>(empleados)\ntiempo = np.zeros(m,dtype=<span style=\"color: #ff00ff\">int<\/span>)\n\nn = <span style=\"color: #ff00ff\">len<\/span>(visitados)\ni = 0\n<span style=\"color: #d35400\">while<\/span> <span style=\"color: #d35400\">not<\/span>(i&gt;=n):\n    registro = visitados&#091;i]\n    partes = registro.split(<span style=\"color: #008000\">'|'<\/span>)\n    quien  = partes&#091;0]\n    indice = empleados.index(quien)\n    cuanto = <span style=\"color: #ff00ff\">int<\/span>(partes&#091;2])\n    tiempo&#091;indice] = tiempo&#091;indice] + cuanto\n    i = i + 1<\/code><\/pre>\n\n\n\n<p>Se procede de forma semejante para obtener una <strong>tabla<\/strong> de tiempos por sitio.<\/p>\n\n\n\n<p>Una respuesta que se pude obtener de la <strong>tabla<\/strong> anterior es la b\u00fasqueda del empleado m\u00e1s ocioso, el que ha usado m\u00e1s tiempo en sitios de <code>ocio<\/code>. (tema 3, literal f)<\/p>\n\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<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001 Fundamentos de Programaci\u00f3n FIEC-ESPOL\n# 1Eva_IT2016_T2 historial de visitas web\nimport numpy as np\n\n# INGRESO\nvisitados = &#x5B; 'maria2|www.facebook.com|160',\n              'xavi7|www.eluniverso.com|50',\n              'jose15|www.sri.gob.ec|30',\n              'maria2|www.twitter.com|30',\n              'xavi7|www.inec.gob.ec|10',\n              'maria2|www.espol.edu.ec|50',\n              'jose15|www.sri.gob.ec|120',\n              'xavi7|www.sri.gob.ec|20',\n              'maria2|www.twitter.com|20',]\nempleados = &#x5B;'maria2',\n             'jose15',\n             'xavi7']\ntrabajo = &#x5B;'www.espol.edu.ec',\n           'www.inec.gob.ec',\n           'www.sri.gob.ec']\n\n# PROCEDIMIENTO\n\n# a) sitios que no son de trabajo\nocio = &#x5B;]\nn = len(visitados)\ni = 0\nwhile not(i&gt;=n):\n    registro = visitados&#x5B;i]\n    partes = registro.split('|')\n    sitio  = partes&#x5B;1]\n    if not(sitio in trabajo):\n        if not(sitio in ocio):\n            ocio.append(sitio)\n    i = i + 1\n\n# b) tiempo de internet\/empleado\nm = len(empleados)\ntiempo = np.zeros(m,dtype=int)\n\nn = len(visitados)\ni = 0\nwhile not(i&gt;=n):\n    registro = visitados&#x5B;i]\n    partes = registro.split('|')\n    quien  = partes&#x5B;0]\n    indice = empleados.index(quien)\n    cuanto = int(partes&#x5B;2])\n    tiempo&#x5B;indice] = tiempo&#x5B;indice] + cuanto\n    i = i + 1\n\n# b) tiempo de internet por empleado\/sitio. matrices\nk = len(visitados)\nn = len(empleados)\ntodositio = trabajo + ocio\nm = len(todositio)\ntabla = np.zeros(shape=(n,m), dtype=int)\n\ni = 0\nwhile not(i&gt;=k):\n    registro = visitados&#x5B;i]\n    partes = registro.split('|')\n    quien  = partes&#x5B;0]\n    fila   = empleados.index(quien)\n    donde  = partes&#x5B;1]\n    columna = todositio.index(donde)\n    cuanto = int(partes&#x5B;2])\n    tabla&#x5B;fila,columna] = tabla&#x5B;fila,columna] + cuanto\n    i = i+1\n\n# Tema 3. f)\n# empleado es mas ocioso\nparte = tabla&#x5B;:,len(trabajo):]\nocioempleado = np.sum(parte, axis =1)\nmasocioso = np.argmax(ocioempleado)\nquien = empleados&#x5B;masocioso]\n\n# SALIDA\nprint('sitios de ocio: ')\nprint(ocio)\nprint('tiempos por empleado: ')\nprint(tiempo)\nprint('tabla de tiempos: ')\nprint(tabla)\nprint('empleado mas ocioso: ', quien) \n<\/pre><\/div>\n\n\n<p>resultado del algoritmo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sitios de ocio: \n&#091;'www.facebook.com', 'www.eluniverso.com', 'www.twitter.com']\ntiempos por empleado: \n&#091;260 150  80]\ntabla de tiempos: \n&#091;&#091; 50   0   0 160   0  50]\n &#091;  0   0 150   0   0   0]\n &#091;  0  10  20   0  50   0]]\nempleado mas ocioso:  maria2\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2016TI_T2 historial de visitas web literal a. Se obtiene un registro de los sitios visitados, para luego separar sus partes entre empleado|sitio|duracion. Para los sitios que no son de trabajo se usa una lista llamada ocio. Si el sitio visitado no se encuentra en trabajo, se a\u00f1ade a la lista ocio. Se considera revisar [&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-4490","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\/4490","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=4490"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4490\/revisions"}],"predecessor-version":[{"id":23609,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4490\/revisions\/23609"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}