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~T4 Prueba de escritorio, diccionario

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

Tema 4. (10 puntos) Analice el código fuente de los programas que se muestran a continuación. Seleccione la respuesta correcta y justifique brevemente su respuesta.

a. ¿Cuál será la salida del siguiente programa?

foo = {1:'1', 2:'2', 3:'3'}
del foo[1]
foo[1] = '10'
del foo[2]
print(len(foo))

A. 1
B. 2
C. 3
D. 4

b. ¿Cuál será la salida del siguiente programa?

x = True
y = False
z = False

if (not(x) or y):
    print(1)
elif (not(x) or not(y) and z):
    print(2)
elif (not(x) or y or not(y) and x):
    print(3)
else:
    print(4)

A. 1
B. 2
C. 3
D. 4

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

1Eva_IIT2015_T4 Conjetura débil de Goldbach

1ra Evaluación II Término 2015-2016. Diciembre 8, 2015 /ICM00794

Tema 4. (25 puntos) La llamada “Conjetura débil de Goldbach” propuesta en el año 1742 afirma que todo número impar mayor a 5 se puede expresar como la suma de tres números primos.

Probar la conjetura para todos los números impares hasta el infinito era muy complejo, pero el matemático peruano Harald Helfgott al demostrarla ganó el premio “Cátedra Humboldt” por US$3,9 millones.

Escriba un programa que reciba un número impar mayor a 5 y encuentre tres números primos cuya suma es igual al número impar dado.

Ejemplo: 
Número impar:31
vector de primos hasta impar/2 :
 [ 2 3 5 7 11 13]
Primos seleccionados:
 7+11+13 = 31

Sugerencia: Para generar el vector de números primos, puede usar un bloque que represente el algoritmo del tema anterior. Luego compare el número impar con la suma de cada combinación de tres números del vector de primos y así encontrar la terna buscada.
Referencia: http://www.bbc.com/mundo/noticias/2015/09/150907_ciencia_matematico_problema_271_lb

Rúbrica: ingreso y validación (5 puntos), usar bloque del algoritmo del tema anterior (5 puntos), buscar combinación de 3 números (10 puntos), Respuesta y Algoritmo estructurado (5 puntos)

1Eva_IIT2015_T3 Vector de números primos

1ra Evaluación II Término 2015-2016. Diciembre 8, 2015 /ICM00794

Tema 3 (20 puntos). Para la encontrar una solución a un problema de matemáticas, se requiere disponer de un vector de números primos en el rango entre 2 y un entero positivo m.
Elabore un algoritmo que dado un valor de m, genere el resultado buscado.

 Ejemplo: m=15
 vector de primos hasta m :
 [ 2 3 5 7 11 13]

Rúbrica: Ingreso y validación (5 puntos), verificar primo (5 puntos), generar vector (10 puntos).

1Eva_IIT2015_T2 Monopolio simplificado

1ra Evaluación II Término 2015-2016. Diciembre 8, 2015 /ICM00794

Tema 2. (30 puntos) Para una versión simplificada de Monopolio con 4 jugadores se tiene que: monopolio simplificado

 

  • Al inicio, todos los jugadores ubican su ficha en la casilla 1 con $1500.
  • El tablero es de recorrido cíclico de 24 casillas.
  • Se juega por turnos avanzando con la suma del lanzamiento de dos dados.
  • Un jugador al caer en las casillas de “Casualidad” (4, 10, 16) debe pagar $100 a otro jugador escogido aleatoriamente.
  • Cada jugador tiene cinco casillas como “propiedades”; si un jugador cae en la propiedad de otro le deberá pagar del derecho de ocupación un valor determinado al lanzar un dado y multiplicarlo por 10.

Considere que:

  • El jugador 1 es propietario de las casillas 2, 8, 13, 19, 22.
  • El jugador 2 es propietario de las casillas 3, 7, 11, 17 y 24.
  • El jugador 3 es propietario de las casillas 5, 9, 15, 20 y 23.
  • El jugador 4 es propietario de las casillas 6, 12, 14, 18 y 21
  • Cada vez que un jugador pase por “Inicio” recibirá $200.

Realice un algoritmo que simule el juego hasta que uno de los jugadores quede en bancarrota (sin dinero). Al final, indique el jugador que se quedó en la bancarrota y el dinero que obtuvo cada jugador.

Rúbrica: control de saldos de jugadores y turnos (5 puntos), ubicación de jugadores (5 puntos), uso apropiado de aleatorios (5 puntos), casualidades y paso por inicio (5puntos), control de propiedades (5 puntos). Respuesta y Algoritmo estructurado (5 puntos).

1Eva_IIT2015_T1 Conjetura múltiplo de 3

1ra Evaluación II Término 2015-2016. Diciembre 8, 2015 /ICM00794

Tema 1. (25 puntos) “Si partimos de un número natural que sea múltiplo de 3 y sumamos los cubos de sus cifras, a este resultado le aplicamos la misma operación sucesivamente, llegaremos siempre al número 153.”

Elabore un algoritmo que permita ingresar un número entero de cuatro cifras que sea múltiplo de 3 y verifique si se cumple esta conjetura.

Ejemplo: 1375
 No es múltiplo de 3
 Respuesta: No cumple
Ejemplo: 1374
 Si es múltiplo de 3
 1374 → 13 + 33 + 73 + 43 = 435
 435 → 43 + 33 + 53 = 216
 216→ 225 → 141 → 66 → 432 → 99 → 1458 → 702 → 351 → 153
 Respuesta: Si cumple

Referencia: https://en.wikipedia.org/wiki/Narcissistic_number. Los 153 peces en la red. Juan 21:11 NVI

Rúbrica: Ingreso y validación (5 puntos), acumular cubos de dígitos (10 puntos), control de secuencia (5 puntos). Respuesta y algoritmo estructurado (5 puntos).