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)