Académique Documents
Professionnel Documents
Culture Documents
PEP N2
1. (30 puntos) Un ndice invertido es una estructura utilizada en la informtica para optimizar el
funcionamiento de los motores de bsqueda como google, bing o yahoo , el objetivo de estas
estructuras es permitir que el buscador conozca en qu documentos se encuentran las
palabras que usualmente buscamos. Normalmente se construyen a partir de un ndice en el
cul se indican las palabras que se encuentran en el documento.
Suponiendo que tenemos un archivo indice.txt el cul tiene los documentos con sus
respectivas palabras, se desea construir un archivo indiceInvertido.txt que contenga el
resultado de la construccin del ndice invertido a partir de los datos del ndice.
indice.txt
Documento 1; el perro no come chocolate
Documento 2; la vaca come pasto
Documento 3; el perro come carne
Documento 4; la vaca no come carne
indiceInvertido.txt
carne; Documento 3, Documento 4
chocolate; Documento 1
come; Documento 1, Documento 2, Documento 3, Documento 4
el; Documento 1, Documento 3
la; Documento 2, Documento 4
3 de diciembre de 2016
Considere que:
Las funciones prepararEscritura() y escribirArchivo() existen y funcionan
correctamente.
Las listas anteriores representan ejemplos y que el programa debe funcionar para
todos los casos que respondan a las reglas anteriores.
Es posible definir funciones auxiliares siempre y cuando stas no alteren la
abstraccin dada.
#############################################################
#
# ITEM A
#
#############################################################
3
3 de diciembre de 2016
#############################################################
#
# ITEM B
#
#############################################################
# Funcin que encuentra los documentos en los que se encuentra una palabra
# ENTRADAS: palabra a buscar (string), indice (lista de strings)
# SALIDA: lista de documentos (lista de strings)
def encontrarDocumentos(palabra, indice):
# Se crea una lista vaca para almacenar los documentos
documentos = []
# Para cada elemento en el ndice
for elemento in indice :
# Si la palabra est en la lista de palabras
if palabra in elemento[1]:
# Se aade el nombre del documento a la lista de documentos
documentos.append(elemento[0])
# Se retorna la lista de documentos
return documentos
#############################################################
#
# ITEM C
#
#############################################################
# BLOQUE PRINCIPAL
# ENTRADA
# Se invoca a la funcin leerArchivo
contenidoEntrada = leerArchivo("ndice.txt")
# PROCESAMIENTO
# Se procesa el contenido para obtener la lista de listas
contenidoProcesado = procesarContenido(contenidoEntrada)
# Se genera el indice invertido
indiceInvertido = contruirIndiceInvertido(contenidoProcesado)
# Se genera el string de salida
contenidoSalida = prepararEscritura(indiceInvertido)
# SALIDA
# Se escribe el contenido en el archivo
exito = escribirArchivo("indiceInvertido.txt", contenidoSalida)
# Si el contenido se escribe
if exito :
print "El archivo fue escrito exitosamente"
2. (15 puntos) Para dibujar una circunferencia de radio r, podemos expresar sus coordenadas
cartesianas mediante la ecuacin:
( )2 + ( )2 = 2
Dnde las coordenadas a, b representan el centro de la circunferencia y el radio consiste en
todos los puntos x, y que satisfacen la ecuacin.
5
3 de diciembre de 2016
= ( | 2 ( )2 | +
A partir de esta informacin, construya un programa en Python que dibuje el grfico de una
circunferencia (en color azul) para valores de r, a y b dados por teclado. Considere que numpy
posee la funcin abs(array) para el clculo del valor absoluto y sqrt(array) para el clculo
de la raz cuadrada.
# BLOQUE DE DEFINICIONES
# IMPORTACIN DE MDULOS
import matplotlib.pyplot as graficador
import numpy as numpy
# BLOQUE PRINCIPAL
# ENTRADA
# PROCESAMIENTO
# SALIDA
6
3 de diciembre de 2016
graficador.xlabel("EJE X")
graficador.ylabel("EJE Y")
# Se le determina un ttulo al grfico
titulo = "Circunferencia de radio " + str(r) + " con centro en (" +str(a) \
+", " +str(b) +")"
# Se identifica el ttulo del grfico
graficador.title(titulo)
# Se muestra el grfico
graficador.show()