s3Eva2015TII_T1 Mensajes en redes sociales y etiquetas

Ejercicio: 3Eva2015TII_T1 Mensajes en redes sociales y etiquetas

Propuesta de solución en Python 3ra Eva. II Término 2015 Tema 1 y 2 usando lista de listas.

literal a

Al recibir un mensaje como el del ejemplo, se revisa cada letra o caracter hasta encontrar '#'

>> mensaje='En la #ESPOL se usa aprendizaje por proyectos y entre pares, publicado #ELUNIVERSO el domingo 7 de febrero'
    i = 0
    while not(i>=n): # caracter en mensaje

        if (mensaje[i]=='#'): # encuentra etiqueta
            copia = 1  # hay etiqueta
            encontre = ''

Al encontrar una etiqueta se activa la copia de caracteres

        if (copia==1): # copiar etiqueta
            encontre = encontre + mensaje[i] #copia caracter

las etiquetas terminan al encontrar un espacio o una coma

            if (i<(n-1)): # hay caracteres
                # es última letra de palabra ' ', ','
                if (mensaje[i+1]==' ' or mensaje[i+1]==','):
                    copia = 0
                    etiqueta.append(encontre)

o cuando se acaban los caracteres del mensaje.

            if (i==(n-1)): # se acabó el mensaje
                etiqueta.append(encontre)

Para el literal b, revisar el algoritmo para encontrar valores únicos.

Algoritmo en Python

Tarea: Integrar con Tema 2

# 3Eva_IIT2015_T1 Mensajes en redes sociales y etiquetas
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# version con lazos y condicionales y caracteres
import numpy as np

# Tema 1. literal a -------------------------
def buscaetiquetas(mensaje):
    n = len(mensaje)
    etiqueta = []
    copiar = 0 # no hay etiqueta
    
    i = 0
    while not(i>=n): # caracter en mensaje

        if (mensaje[i]=='#'): # encuentra etiqueta
            copiar = 1  # hay etiqueta
            encontre = ''
        
        if (copiar==1): # copiar etiqueta
            encontre = encontre + mensaje[i] #copia caracter
            if (i<(n-1)): # hay caracteres
                # es última letra de palabra ' ', ','
                if (mensaje[i+1]==' ' or mensaje[i+1]==','):
                    copiar = 0
                    etiqueta.append(encontre)
            if (i==(n-1)): # se acabó el mensaje
                etiqueta.append(encontre)
        
        i = i + 1
    return(etiqueta)

# Tema 1. literal b
def tabulando(lista):
    n = len(lista) # usando listas
    repetido = np.zeros(n,dtype=int)
    numrepetido = 0

    # Marcando repetidos
    i = 0  # referencia
    while not(i>=(n-1)):
        j = i + 1  # compara resto de lista
        while not(j>=n):
            if (lista[i]==lista[j]):
                repetido[j]=1
                numrepetido=numrepetido+1
            j = j + 1
        i = i + 1

    # lista unicos sin contar
    unicos = []
    i = 0
    while not(i>=n):
        if (repetido[i]==0):
            unicos.append([lista[i],0])
        i = i + 1
    k = len(unicos)

    # cuenta unicos
    i = 0
    while not(i>=n):
        j = 0   # busca posicion en unicos
        while not(j>=k):
            if (lista[i]==unicos[j][0]):
                unicos[j][1] = unicos[j][1]+1
            j = j + 1  
        i = i + 1
        
    return(unicos)

Ejercicios resueltos/Ejemplos por año

Ejemplos 1ra Evaluación

1ra Eva 2020-2011

1ra Eva 2010-2001

Ejemplos 2da Evaluación

2da Eva 2020-2011

2da Eva 2010-2001

Ejemplos 3ra Evaluación

3ra Eva 2020-2011

3ra Eva 2010-2001