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

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)

3Eva_IIT2015_T3 funciones matrices rotar, extraer

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

Tema 3. (25 puntos)
a) Elabore una función rotando(matriz, k) que reciba una matriz de tamaño nxm y realice la rotación de sus datos con el valor k de 1, 2 o 3 que corresponden a los múltiplos de 90° de rotación a la derecha.
Nota: NO use la función numpy.rot90(m, k), se debe mostrar las operaciones realizadas con los elementos de la matriz para la rotación

rotarmatriz

b) Realice una función extraeresquina(matriz, k, t) que dada una matriz, extraiga una parte de la esquina k, de tamaño t.
Los valores de k corresponden a la esquina de interés: 0 (superior izquierda), 1 (superior derecha), 2 (inferior derecha), 3 (inferior izquierda).

Ejemplo:
>>referencia=extraeresquina(codigo,0,8)
… Ver matriz en figura “referencia” del tema siguiente.

Rúbrica: definir función (5 puntos), literal a dimensión resultante (5 puntos), rotación (5 puntos), rotar k veces (5 puntos), literal b (5 puntos)

3Eva_IIT2015_T2 Gestionar mensajes con etiquetas

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

Tema 2 (25 puntos). https://salmocorpblog.wordpress.com/2017/03/07/significado-de-hashtag/

Realice programa que permita gestionar una lista de mensajes de una red social, con el menú mostrado:

  1. Ingresar mensaje. Solicite el nombre del usuario y un mensaje de texto.
  2. Usuario frecuente. Determine usando la lista de usuarios y muestre el usuario que más mensajes escribe.
  3. Tendencias. Analice todos los mensajes y encuentre la etiqueta más usada. Suponga que es una sola.
  4. Salir

Ejemplo:

lista
usuario mensaje
Juan Estamos en exámenes en la #ESPOL
María Seré voluntaria en #AJA
Pedro Yo estudio en #FCNM de la #ESPOL
Ana Lean el artículo de #ESPOL en #ELUNIVERSO del domingo 7 de febrero

Para extraer las etiquetas de cada mensaje pueden hacer uso de la función del tema anterior, para luego contar las veces que aparece cada etiqueta en la lista de mensajes. Al final debe encontrar la etiqueta más frecuente conocida como “tendencia”.

tendencias
etiqueta veces
#ESPOL 3
#AJA 1
#FCNM 1
#ELUNIVERSO 1
La tendencia es: #ESPOL

Rúbrica: Menú (5 puntos), uso de función anterior (5 puntos), opción 1 (2 puntos), opción 2 (8 puntos), opción 3 (5 puntos)


propuesta: sol_py

lista = [['Juan','Estamos en exámenes en la #ESPOL'],
         ['María','Seré voluntaria en #AJA'],
         ['Pedro','Yo estudio en #FCNM de la #ESPOL'],
         ['Ana','Lean el artículo de #ESPOL en #ELUNIVERSO del domingo 7 de febrero']]

http://mnl13.nl/mnl13festival-mnl13-twitter-mee/

3Eva_IIT2015_T1 Mensajes en redes sociales y etiquetas

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

Tema 1  (25 puntos). En redes sociales un mensaje puede contener palabras etiquetadas, también conocidas como “hashtag” por iniciar con el símbolo ‘#’ para resaltar un tópico en particular.

a) Realice una función etiquetados(mensaje), que al recibir un mensaje, busque y retorne las palabras etiquetadas.
Considere que las etiquetadas terminan al encontrar un espacio o una coma, y que también encontrarse al último el mensaje.

Ejemplo:
>> mensaje='En la #ESPOL se usa aprendizaje por proyectos y entre pares, publicado #ELUNIVERSO el domingo 7 de febrero'
>> etiquetados(mensaje)
     ['#ESPOL', '#ELUNIVERSO']
>> mensaje='IX Semillero de Futuros Científicos e Ingenieros Inscripciones #AJA #FCNM #ESPOL'
>> etiquetados(mensaje)
     ['#AJA','#FCNM', '#ESPOL']

b) Elabore una función tabulando(palabras) que reciba una lista de palabras que pueden ser repetidas y genere una tabla con las palabras únicas junto al conteo de las veces que aparece cada una en la lista.

>>palabras=[‘#ESPOL’, ‘#ELUNIVERSO’, ‘#AJA’, ’#FCNM’, ‘#ESPOL’]
>>tabulando(palabras)
     [[#ESPOL,        2]
      [#AJA,          1]
      [#FCNM,         1]
      [#ELUNIVERSO,   1]]

Rúbrica: Definir función (5 puntos), buscar inicio de etiqueta (5 puntos), copiar una etiqueta (5 puntos), lista etiquetas (5 puntos), determinar únicas (5 puntos), contar etiquetas (5 puntos).


propuesta: sol_py

3Eva_IT2015_T4 Bomberos para incendios forestales

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

Tema 4. (30 puntos) Para gestionar los grupos de bomberos que acudieron a la provincia de Pichincha para enfrentar los incendios forestales se requiere elaborar un programa con el menú mostrado.

Menú:
1. Registrar bombero
2. Asignar grupos
3. Mostrar nombres de un grupo
4. Guardar datos
5. Leer datos
6. Salir

Al inicio del día se registrará cada bombero en orden de llegada en la siguiente tabla:

Presentados
cedula nombre bombero provincia
1234567890 Juan Pérez 234 17 (Pichincha)
2345678901 Pedro López 91 9 (Guayas)

Por facilidad, la provincia usa un código numérico.

Para asignar y mostrar los grupos se indica el número m de incendios forestales a combatir; use la función del tema anterior enviando un arreglo con los datos de bombero y provincia, el resultado será la matriz de grupos asignados.
El listado de bomberos en un grupo se obtiene usando la opción 3, por lo que se ingresa el número del grupo para mostrar el nombre y cédula de los bomberos asignados.

Rúbrica: Menú (5 puntos), manejar registros (5 puntos), crear arreglo para función (5 puntos), usar función anterior (5 puntos), opción 3 (5 puntos), opción 4 y 5 (5 puntos)

3Eva_IT2015_T3 Asignar bomberos forestales por grupo

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

Tema 3. (20 puntos) En la provincia de Pichincha durante tres semanas los bomberos han enfrentado 11 incendios forestales graves, cada uno afecta a más de diez hectáreas de terreno. incendio forestal imagen cerca campus

Para ayudar, acudieron más de 150 bomberos de diferentes provincias del país.

Cada bombero se identifica con su código y número de provincia y se requiere formar grupos de trabajo, asignando líderes de la provincia local (17) Pichincha por conocer de las condiciones geográficas del terreno.

Ejemplo: para n=8 bomberos

registrados
bombero provincia
13 17 (Pichincha)
15 17 (Pichincha)
95 9 (Guayas)
103 13 (Manabí)
19 17 (Pichincha)
91 9 (Guayas)
234 24 (Santa Elena)
17 17 (Pichincha)

Escriba una función grupobombero(registrados, m, local) que reciba el listado de n bomberos registrados, organice los m grupos en una matriz, indicando el número de la provincia local siguiendo las condiciones expuestas.

Primero asigne a cada grupo los bomberos locales y luego complete con los de otras provincias. Ejemplo:

>> m=3
>> local=17
>> grupobombero(registrados,m,local)
Grupo 1 Grupo 2 Grupo 3
13 15 19
17 95 103
91 234 0

Observe que: el registro de los bomberos no es ordenado; los grupos se completan mientras existan bomberos que asignar, sino se representa con 0 (cuando m no es múltiplo de n).

Referencia: Las hectáreas dañadas por los incendios ascendieron a 973 (17.09.2015). http://www.elcomercio.com
Bomberos costeños en Quito para combatir incendios forestales (16.09.2015). http://www.eluniverso.com/

Rúbrica: Definir función y parámetros (5 puntos), control del grupos (5 puntos), asignar locales (5 puntos), completar matriz (5 puntos).


registrados = [[ 13, 17],
               [ 15, 17],
               [ 95,  9],
               [103, 13],
               [ 19, 17],
               [ 91,  9],
               [234, 24],
               [ 17, 17]]
m = 3 
local = 17 
>> grupobombero(registrados,m,local) 
[[13  15  19], 
 [17  95 103], 
 [91 234   0]]

3Eva_IT2015_T2 Deletrear un número

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

Tema 2 (25 puntos). Al elaborar una factura o cheque, se escribe el valor numérico con dos decimales y también el valor en forma de texto.

Realice una función deletrearnumero(valor) que reciba el valor, número positivo menor que mil y con dos decimales, para convertirlo a su equivalente en texto.

Ejemplos:
8.43 ocho con 43/100
23.15 veintitrés con 15/100
435.16 cuatrocientos treinta y cinco con 16/100
>>deletrearnumero(435.16)
cuatrocientos treinta y cinco con 16/100

Sugerencia: use la función del tema anterior. Use listas con los nombres de números.

Rúbrica: Definir la función (5 puntos), separar entero (5 puntos), convertir a palabras (10 puntos), añadir centavos (5 puntos)