{"id":1939,"date":"2016-02-02T17:10:39","date_gmt":"2016-02-02T22:10:39","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=1939"},"modified":"2026-08-13T06:53:31","modified_gmt":"2026-08-13T11:53:31","slug":"s3eva2015tii_t2-gestionar-mensajes-con-etiquetas","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s3eva20\/s3eva2015tii_t2-gestionar-mensajes-con-etiquetas\/","title":{"rendered":"s3Eva2015TII_T2 Gestionar mensajes con etiquetas"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-3eva20\/3eva2015tii_t2-gestionar-mensajes-con-etiquetas\/\" data-type=\"post\" data-id=\"2689\">3Eva2015TII_T2 Gestionar mensajes con etiquetas<\/a><\/p>\n\n\n\n<p>El ejercicio requiere usar un men\u00fa y las funciones del tema 1. Las opciones del men\u00fa son las indicadas en el enunciado. <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 76; highlight: [83]; title: ; notranslate\" title=\"\">\nopcion = 0\nwhile not(opcion==4):\n    print('1. Ingresar mensaje')\n    print('2. Usuario frecuente')\n    print('3. Tendencias')\n    print('4. Salir')\n\n    opcion = int(input('cual opcion: '))\n\n    if (opcion==1):\n        print('1. Ingresar mensaje')\n        ...\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"180\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2016\/02\/etiquetas01.png\" alt=\"etiquetas con #\" class=\"wp-image-17124\" \/><\/figure>\n\n\n\n<p>La opci\u00f3n para ingresar mensaje es la mas simple de realizar, se piden los datos de <code>quien<\/code> es el mensaje y lo que <code>dice<\/code>. Los valores se a\u00f1aden a la lista correspondiente.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 85; title: ; notranslate\" title=\"\">\n    if (opcion==1):\n        print('1. Ingresar mensaje')\n        quien = input('nombre usuario: ')\n        dice  = input('mensaje: ')\n        usuario.append(quien)\n        mensaje.append(dice)\n<\/pre><\/div>\n\n\n<p>La opci\u00f3n para usuario frecuente ya requiere usar la funci\u00f3n <code>tabulando()<\/code> del tema 1, con lo que se puede usar el algoritmo de b\u00fasqueda del mayor para encontrar el usuario mas frecuente.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; first-line: 92; title: ; notranslate\" title=\"\">\n    if (opcion==2):\n        print('2. Usuario frecuente')\n        quienes = tabulando(usuario)\n        n = len(quienes)\n        mayor = 0\n        k = 1\n        while not (k&gt;=n):\n            if (quienes&#x5B;k]&#x5B;1]&gt;quienes&#x5B;mayor]&#x5B;1]):\n                mayor = k\n            k = k + 1\n        print('los usuarios:')\n        print(quienes)\n        print('el usuario mas frecuente es: ',\n                quienes&#x5B;mayor]&#x5B;0])\n<\/pre><\/div>\n\n\n<p>El resultado para las otras opciones se a\u00f1aden en la propuesta de soluci\u00f3n completa.<\/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_IIT2015_T2 Gestionar mensajes con etiquetas\n# version con lazos y condicionales.\n# tarea: simplificar con 'for'\n \nimport numpy as np\n \n# Tema 1. literal a -------------------------\ndef buscaetiquetas(mensaje):\n    n = len(mensaje)\n    etiqueta = &#x5B;]\n    copiar = 0 # no hay etiqueta\n    \n    i = 0\n    while not(i&gt;=n): # caracter en mensaje\n\n        if (mensaje&#x5B;i]=='#'): # encuentra etiqueta\n            copiar = 1  # hay etiqueta\n            encontre = ''\n        \n        if (copiar==1): # copiar etiqueta\n            encontre = encontre + mensaje&#x5B;i] #copia caracter\n            if (i&lt;(n-1)): # hay caracteres\n                # es \u00faltima letra de palabra ' ', ','\n                if (mensaje&#x5B;i+1]==' ' or mensaje&#x5B;i+1]==','):\n                    copiar = 0\n                    etiqueta.append(encontre)\n            if (i==(n-1)): # se acab\u00f3 el mensaje\n                etiqueta.append(encontre)\n        \n        i = i + 1\n    return(etiqueta)\n\n# Tema 1. literal b\ndef tabulando(lista):\n    n = len(lista) # usando listas\n    repetido = np.zeros(n,dtype=int)\n    numrepetido = 0\n\n    # Marcando repetidos\n    i = 0  # referencia\n    while not(i&gt;=(n-1)):\n        j = i + 1  # compara resto de lista\n        while not(j&gt;=n):\n            if (lista&#x5B;i]==lista&#x5B;j]):\n                repetido&#x5B;j]=1\n                numrepetido=numrepetido+1\n            j = j + 1\n        i = i + 1\n\n    # lista unicos sin contar\n    unicos = &#x5B;]\n    i = 0\n    while not(i&gt;=n):\n        if (repetido&#x5B;i]==0):\n            unicos.append(&#x5B;lista&#x5B;i],0])\n        i = i + 1\n    k = len(unicos)\n\n    # cuenta unicos\n    i = 0\n    while not(i&gt;=n):\n        j = 0   # busca posicion en unicos\n        while not(j&gt;=k):\n            if (lista&#x5B;i]==unicos&#x5B;j]&#x5B;0]):\n                unicos&#x5B;j]&#x5B;1] = unicos&#x5B;j]&#x5B;1]+1\n            j = j + 1  \n        i = i + 1\n        \n    return(unicos)\n \n# Tema 2. Administra mensajes de una red social -------------------------\n# datos de prueba\nlista = &#x5B;&#x5B;'Juan','Estamos en ex\u00e1menes en la #ESPOL'],\n         &#x5B;'Mar\u00eda','Ser\u00e9 voluntaria en #AJA'],\n         &#x5B;'Pedro','Yo estudio en #FCNM de la #ESPOL'],\n         &#x5B;'Ana','Lean el art\u00edculo de #ESPOL en #ELUNIVERSO del domingo 7 de febrero']]\nusuario = &#x5B;'Juan','Mar\u00eda','Pedro','Ana']\nmensaje = &#x5B;'Estamos en ex\u00e1menes en la #ESPOL',\n           'Ser\u00e9 voluntaria en #AJA',\n           'Yo estudio en #FCNM de la #ESPOL',\n           'Lean el art\u00edculo de #ESPOL en #ELUNIVERSO del domingo 7 de febrero']\n \nopcion = 0\nwhile not(opcion==4):\n    print('1. Ingresar mensaje')\n    print('2. Usuario frecuente')\n    print('3. Tendencias')\n    print('4. Salir')\n \n    opcion = int(input('cual opcion: '))\n \n    if (opcion==1):\n        print('1. Ingresar mensaje')\n        quien = input('nombre usuario: ')\n        dice  = input('mensaje: ')\n        usuario.append(quien)\n        mensaje.append(dice)\n \n    if (opcion==2):\n        print('2. Usuario frecuente')\n        quienes = tabulando(usuario)\n        n = len(quienes)\n        mayor = 0\n        k = 1\n        while not (k&gt;=n):\n            if (quienes&#x5B;k]&#x5B;1]&gt;quienes&#x5B;mayor]&#x5B;1]):\n                mayor = k\n            k = k + 1\n        print('los usuarios:')\n        print(quienes)\n        print('el usuario mas frecuente es: ',\n                quienes&#x5B;mayor]&#x5B;0])\n \n    if (opcion==3):\n        print('3. Tendencias')\n        n = len(mensaje)\n        todaetiqueta = &#x5B;]\n        i = 0\n        while not(i&gt;=n):\n            cuales = buscaetiquetas(mensaje&#x5B;i])\n            m = len(cuales)\n            if (m&gt;0):\n                j = 0 #a\u00f1ade cada etiqueta\n                while not(j&gt;=m):\n                    todaetiqueta.append(cuales&#x5B;j])\n                    j = j+1\n            i = i + 1\n        etiquetas = tabulando(todaetiqueta)\n        n = len(etiquetas)\n        mayor = 0\n        k = 1\n        while not (k&gt;=n):\n            if (etiquetas&#x5B;k]&#x5B;1]&gt;etiquetas&#x5B;mayor]&#x5B;1]):\n                mayor = k\n            k = k + 1\n        print(etiquetas)\n        print('La tendencia es: ',etiquetas&#x5B;mayor]&#x5B;0])\n \n    if (opcion==4):\n        print('Gracias por usar el software')\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2015TII_T2 Gestionar mensajes con etiquetas El ejercicio requiere usar un men\u00fa y las funciones del tema 1. Las opciones del men\u00fa son las indicadas en el enunciado. La opci\u00f3n para ingresar mensaje es la mas simple de realizar, se piden los datos de quien es el mensaje y lo que dice. Los valores se [&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-1939","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\/1939","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=1939"}],"version-history":[{"count":13,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1939\/revisions"}],"predecessor-version":[{"id":25407,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1939\/revisions\/25407"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}