2Eva_IT2015~T1 Función limpiar cadena

2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

Tema 1. (25 puntos) Escriba en Python la función recursiva limpiarCadena(palabra) que recibe una palabra como parámetro y retorna una nueva palabra que es el resultado de reducir a uno solo, los caracteres iguales adyacentes en la cadena recibida. Por ejemplo:

Llamada Retorno
limpiarCadena(“yyzzza”) “yza”
limpiarCadena(“abbbcdd”) “abcd”
limpiarCadena(“Hello”) “Helo”

3Eva_IIT2015~T1 etiquetas tendencia como función

3ra Evaluación II Término 2015-2016, Febrero 2016 /FIEC

Tema 1. (25 puntos) Dado un diccionario con la siguiente estructura:

{"@usuario1":["contenido tuit1 #hashtag1", 
              "contenido #hashtag2 tuit2"],
 "@usuario2":["#hashtag2 contenido tuit n #hashtag n "]

Nota: un tuit tiene uno o más hashtags y éstos pueden estar en cualquier parte del mensaje.

Elabore una función trendTopics(diccionario) que reciba un diccionario con la estructura anterior y retorne un segundo diccionario de hashtags con el número de veces que fueron utilizados en los tuits.

Luego, elabore un programa que muestre por pantalla los Hashtags y sus contadores. Asuma que existe la función crearDiccionario() que retorna un diccionario con los tuits de acuerdo a la estructura presentada arriba.

Ejemplo de salida:

#hashtag2 2
#hashtag1 1
#hashtagn 1

Referencia: 2Eva_IT2016_T1 Tendencias en Twitter

3Eva_IT2015~T3 Clasificar secuencia ADN

3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

Tema 3. (40 puntos) En un archivo se almacenan varias líneas con la siguiente información: un código genético, el nombre de la persona que lo posee y el código de la Institución a la que pertenece la persona.

Se debe implementar las siguientes funciones:

a) traducirCodigo(cadena). Esta función toma una cadena de caracteres que contiene un código genético y traduce a su cadena correspondiente, según se indica en la siguiente tabla:

AAU N
ACA T
AGA R
GACU D

Asuma que las cadenas contendrán siempre combinaciones de las subcadenas incluidas en la primera columna de la tabla dada.

Por ejemplo: ACA-GAC-AGA-AAU se traduce a TDRN

b) cargarInformación(nombreArchivo). Lee el archivo con el nombre dado y llena dos colecciones con las siguientes cadenas, que serán retornadas:

– La colección codigos contendrá las cadenas leídas y transformadas usando la función traducirCodigo.

– La colección Instituciones contiene una cadena formada como sigue: concatene los caracteres comprendidos entre la posición 2 y la posición 6 (incluidos) y los 3 últimos caracteres del código de la Institución.

Ambas colecciones deben contener elementos únicos.
Por ejemplo: ACME-PRODUCTIONS se almacenará como CME-PONS

c) escribirArchivo(codigos, instituciones, nombreArchivo). Recibe las dos colecciones retornadas en el literal anterior y escribe su contenido en un archivo cuyo nombre se da como parámetro. El formato del archivo lucirá como:

Codigos geneticos unicos:
TDRYN
...
Instituciones unicas:
CME-PNES
...

Referencia: 2Eva_IIT2013_T2 Verificar secuencia ADN

3Eva_IT2015~T2 Triunfos, empates y derrotas por Goles

3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

Tema 2. (30 puntos) En un campeonato de fútbol intervienen n equipos, siendo n un dato entero menor que 10.

Cada equipo juega contra todos los demás equipos y los goles anotados en cada encuentro han sido almacenados en una matriz nxn como se indica en la tabla ejemplo:

Goles(f,c)
1 2 3 4 5
1 0 3 1 2 1
2 1 0 3 2 3
3 0 2 0 1 1
4 1 0 2 0 1
5 3 4 1 2 0
0
El equipo 1 marco 3 goles al equipo 2,
   1 gol al equipo 3, etc.
El equipo 2 marco 1 gol al equipo 1,
    2 goles al equipo 3, etc.

Se debe implementar las siguientes funciones:

a) Una función tablaPosiciones(matrizGoles) que retorna un diccionario con el equipo como clave y una lista que representará la tabla de posiciones como valor. La lista debe contener la siguiente información: número de goles, partidos ganados, partidos empatados, y partidos perdidos .

Por ejemplo: El equipo 1 ha hecho 6 goles,
ha ganado cero partidos,
ha empatado 1 y ha perdido 2 partidos.

b) Una función ganador(diccPosiciones) que recibe el diccionario con la tabla de posiciones y retorna el ganador del campeonato, que será aquel que haya obtenido el mayor puntaje (empate 1 punto, triunfo 3 puntos, derrota 0 puntos).


Referencia: 3Eva_IT2000_T2 Matriz: puntos por goles en campeonato , 3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

3Eva_IT2015~T1 Función de aleatorios no repetidos

3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

Tema 1. (20 puntos) Implementar una función que llene una lista de N números aleatorios distintos menores que 100, el número de elementos de la lista es recibido como parámetro.

La función debe retornar la lista y el segundo valor más pequeño almacenado en ella.

Por ejemplo:

Si N es 6, la lista podría ser [52, 2, 86, 13, 15, 79]
 y el segundo valor más pequeño es 13

Referencia: 2Eva_IT2013_T2 Una Tabla de Bingo

2Eva_IIT2015_T2 funcion totalportipo(tabla)

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 2. (25 puntos). Realice una función totalportipo(tabla) para recibir una tabla de tamaño nx2 tal como se muestra en el ejemplo.

La columna tipo contiene números enteros que pueden ser repetidos y la columna cantidad tiene un número real positivo.

La función cuenta las veces que aparece cada tipo, y el acumulado de cantidades por cada tipo, entregando la matriz mostrada en el ejemplo.

Ejemplo:

tabla
tipo cantidad
921 5.4
1308 6.2
806 7.1
1308 4.3
921 2.1
921 3.1
806 2.0

>>totalportipo(tabla)

tabulado
tipo cuenta acumulado
921 3 10.6
1308 2 10.5
806 2 9.1

Nota: los encabezados de la tabla son referenciales para el ejemplo
Rúbrica: Definir la función (5 puntos), determinar únicos (5 puntos), contar tipo (5 puntos), acumular cantidades (5 puntos), algoritmo estructurado (5 puntos)

2Eva_IIT2015_T1 función lipovocal(frase)

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 1. (20 puntos). Un lipograma es un texto que se construye prescindiendo voluntariamente de alguna letra del abecedario.

Realice una función lipovocal(frase) que reciba una frase, retornando como respuesta la única vocal que falta; o la respuesta de ‘no cumple’ en caso que tenga más de una vocal faltante.

Ejemplo: 
>> frase='Con ojillos oscuros, luminosos, ambas tan blancas como dos palomas, cruzando prados y salvando lomas hoy las vi con dos pícaros gomosos.'
>> lipovocal(frase)
'e'
>> frase='murcielago'
>> lipovocal(frase)
'no cumple'

Rúbrica: Definir función (5 puntos), buscar faltante (5 puntos), validar frase (5 puntos), algoritmo estructurado (5 puntos).

2Eva_IT2015_T3 Distribuye tortugas en región

2da Evaluación I Término 2015 – 2016, Septiembre 08, 2015 /ICM00794

Tema 3 (20 puntos) La isla Santa Fe en el archipiélago de Galápagos, volverá a ser poblada por tortugas gigantes como parte del trabajo de conservación y restauración ecológica en el archipiélago.

El plan para repoblar se realizó con un total de jóvenes tortugas originarias de la isla y criadas en cautiverio.

Para medir la movilidad de las tortugas en una región de control rectangular con nxm Km se la ha dividido en cuadrículas de 1×1 Km.

Realice una función distribuye(n, m, q, total) que en una matriz de tamaño nxm distribuya q tortugas como máximo en cada casilla con posición aleatoria. La suma de los elementos de la matriz no debe ser mayor que el total de tortugas criadas en cautiverio.

>>distribuye(4,6,5,20)
matriz
0 0 0 0 0 0
0 0 1 5 0 0
2 1 4 0 0 0
5 0 2 0 0 0

Rúbrica: Definir función (5 puntos), uso de aleatorios (5 puntos), control de casillas y total (5 puntos c/u).

2Eva_IT2015_T1 kutipak() quichua-español

2da Evaluación I Término 2015 – 2016, Septiembre 08, 2015 /ICM00794

Tema 1 (15 puntos). Para traducir palabras entre español y quichua se dispone en memoria de una lista denominada diccionario.

Realice una función kutipak(palabra, modo, diccionario) para traducir una palabra. 

El tipo de traducción se indica mediante el “modo”:

(1) quichua a español y
(2) español a quichua.

En caso que la palabra no está en el diccionario se obtiene una cadena vacía.

>>> kutipak('wasi',1,diccionario)
 'casa'
 >>> kutipak('lugar',2,diccionario)
 'kuska'
 >>> kutipak('avión',2,diccionario)
 ''
diccionario
quichua español
man al
wasi casa
pak del
kuska lugar
pash y
iyayku tecnología
mañay servicio
mamallakta país
kutipak traductor

Referencia: http://kichwas.evocero.com/
Rúbrica: Definir función y parámetros (5 puntos), seleccionar modo (5 puntos), buscar equivalente (5 puntos).


listas

quichua = ['man','wasi','pak','kuska','pash','iyayku','mañay','mamallakta','kutipak']
espanol = ['al','casa','del','lugar','y','tecnología','servicio','país','traductor']

listas de listas

diccionario = [['man', 'al'],
               ['wasi', 'casa'],
               ['pak', 'del'],
               ['kuska', 'lugar'],
               ['pash','y'],
               ['iyayku', 'tecnología'],
               ['mañay', 'servicio'],
               ['mamallakta', 'país'],
               ['kutipak', 'traductor']]

colecciones

diccionario = {'man':'al',
               'wasi':'casa',
               'pak':'del',
               'kuska':'lugar',
               'pash':'y',
               'iyayku':'tecnología',
               'mañay':'servicio',
               'mamallakta':'país',
               'kutipak ':'traductor'}

3Eva_IIT2015_T4 Orientar código QR (Quick Response Code)

3ra Evaluación II Término 2015-2016, Febrero 16, 2016 /ICM00794

Tema 4 (20 puntos). El código QR (Quick Response Code) se usa para administrar inventarios en una gran variedad de industrias.
La imagen del código QR puede ser tomada en cualquier orientación, pero para interpretarla se debe poner en la forma mostrada en la imagen del primer ejemplo.

Codigo QRRealice un programa que lea una matriz de código QR desde un archivo ‘codigoQR.txt’, y usando otra matriz de un archivo ‘referenciaQR.txt’ de tamaño 8×8, realice las rotaciones necesarias para orientar correctamente el código. codigoQR_girado

Nota: Suponga que ‘códigoQR.txt‘ y ‘referenciaQR.txt‘ tienen matrices QR válidas.
Use numpy.loadtxt(‘archivo.txt’, dtype=int) para cargar el archivo, además de las funciones del tema anterior.
Use numpy.array_equal(A, B) que responde 1 para matrices iguales y 0 para diferentes.

Rúbrica: ingreso datos (5 puntos), comparar esquinas (5 puntos), determinar rotación (5 puntos), uso apropiado de funciones (5 puntos)