1Eva_IT2019_T2 Consumo de datos por Aplicación

1ra Evaluación I Término 2019-2020, Julio 5, 2019

(Editado para tarea, se mantiene el objetivo de aprendizaje)

Tema 2. (20 puntos)  Asuma que tiene una lista con el consumo de datos de las aplicaciones en su celular durante un mes, semejante a lo mostrado en el siguiente ejemplo:

junio = ['Facebook-10Megas',
         'Spotify-55Megas',
         'Spotify-112Megas',
         'Whatsapp-12Megas',
         ...
         ]

Observe que las aplicaciones en la lista se pueden repetir.

Muestre por pantalla la cantidad de “Megas” que ha utilizado durante el mes por cada aplicación.

3Eva_IIT2018_T1 texto aleatorio

3ra Evaluación II Término 2018-2019. 15-Febrero-2019 /CCPG001

Tema 1. (30 puntos) Asuma que tiene una lista T de Términos. Un Término puede  ser una palabra o un o de los siguientes tres símbolos:
punto (.), coma (,) y guión(-).

Desarrolle un programa que forme un texto usando las siguientes reglas:

  • El texto debe estar compuesto de 73 términos seleccionados aleatoriamente
  • El primer término debe ser una palabra
  • No se puede seleccionar dos símbolos de manera consecutiva. Si eso pasa, seleccione un nuevo término aleatoriamente hasta que sea una palabra.
  • Dos Palabras seguidas deben estar separadas por un espacio.
    Ejemplo: palabra1 palabra2
  • La coma debe estar pegada a la palabra izquierda y separada por un espacio de la palabra a su derecha.
ejemplo palabra1, palabra2
  • El guión debe estar pegado a sus dos palabras.
Ejemplo: palabra1-palabra2
  • El punto debe estar pegado a la palabra de la izquierda y seguido de un salto de línea.
Ejemplo: Palabra 1.

  • No elimine términos de la lista T.

Escriba este texto resultante en un archivo de nombre: literatura.txt

1Eva_IIT2018_T2 Juego conocimiento (Ahorcado)

1ra Evaluación II Término 2018-2019, Noviembre 23, 2018. CCPG001

(Editado para tarea, se mantiene el objetivo de aprendizaje)

Tema 2. (30 puntos) Para un juego llamado «conocimiento», dispone de una lista que contiene un número determinado de ‘palabras‘.

El juego tiene las siguientes reglas:

1. Al inicio, se selecciona aleatoriamente una palabra secreta de la lista de palabras.

2. Como una pista, aleatoriamente se escoge una letra de la palabra secreta, que sea consonante y se la muestra entre los espacios por adivinar de secreta.

Por ejemplo, si  la palabra secreta es 'ESPOL' y la letra pista sorteada es 'S', se mostrará:

'-S---'

3. Se pide al jugador ingresar una letra, indiferente si es mayúscula o minúscula.

Si la letra  e encuentra en secreta se muestra la letra adivinada en la posición que corresponde.

Letra: L
'-S--L'

4. El máximo de intentos para el jugador es el doble de letras de la palabra secreta.

5. Al final muestre si el usuario ganó o perdió y la cantidad de intentos usados,

Escriba un programa en Python para implementar el juego.


Sugerencia: Realice una función cambialetra(secreta,letra,estado) para revisar si letra se encuentra en secreta y cambiar el estado del juego.

Ejemplo: 
secreta = 'ESPOL'
letra = 'S'
estado = '-----'
cambialetra(secreta, letra, estado)
>>> '-S---'

Sugerencia: Realice una función escondeletras(secreta) que cambia las letras de la palabra secreta por un símbolo predeterminado:

escondeletras(secreta)
>>> '-S---'

Referencia: 2Eva_IT2005_T3 Adivina palabra (ahorcado)

 

3Eva_IT2018_T2 Producción minera del país

3ra Evaluación I Término 2018-2019. 14-Septiembre-2018 /CCPG001

(Editado para tarea, se mantiene el objetivo de aprendizaje)

Tema 2. (50 puntos) En el último discurso presidencial, se mencionaron algunos datos sobre las ganancias de algunos minerales del país que llamaron la atención de los ciudadanos.

http://www.pichinchauniversal.com.ec/sector-minero-sera-un-gran-aportador-economico/
http://www.pichinchauniversal.com.ec/sector-minero-sera-un-gran-aportador-economico/

Suponga que tiene todo el texto del discurso con el formato en minúsculas,  las palabras separadas por un espacio, sin signos de puntuacion ni otros símbolos. Los minerales están identificados por el prefijo «mral_» seguido del nombre del mineral. Por ejemplo: ‘mral_oro’, ‘mral_plata’, ‘mral_cobalto’

discurso = '... y el dia de ayer descubrimos en la mina mirador que la cantidad de mral_oro ...'

a) Implemente la función extraerMinerales(discurso) que al recibir el texto del discurso encuentra los nombres de todos los minerales mencionados. El resultado es una lista con los nombres de los minerales que empiezan con mayúscula y no se repiten en la lista.

Por otro lado, suponque que dispone de las tablas de producción para cada mineral de las canteras del país, costos totales de extracción, costos totales de transporte, los nombres de los minerales y minas asociados a las filas y columnas de las tablas, y los precios cada mineral, semejantes a los mostrados al final del ejercicio.
Con ésta información implemente las siguiente funciones:

b) La función calcularGanancias(P,C,T,precios)  que calcula las ganancias o pérdidas de cada mineral por mina. La función recibe la lista de precios de venta de los minerales las tres matrices: producción (P) , costos totales de extracción (C) y costos totales de transporte (T).

Adicionamente, considere las siguientes fórmulas:

ganancia = ventas - costos
ventas = producción*precio
costos = costos de transporte + costo de extracción

c) La función gananciaTotal(M, Minerales) determina las ganancias totales de cada mineral de mayor a menor, junto a los correspondientes nombres de mineral.

La función recibe la matriz del literal anterior y la lista de las etiquetas de los minerales (fila de la matriz).
El resultado es una tupla de dos elementos ordenados por ganancia:
– el vector de Numpy de las ganancias totales por mineral
– una lista con los nombres de los minerales.

d) La función top8(discurso, ganatotal) presenta los nombres de los ocho (8) minerales que generaron más ganancias totales  y que fueron mencionados en el discurso. La variable ganatotal corresponde al resultado de la función del literal anterior.

Rúbrica: literal a (1o puntos), literal b (15 puntos), literal c (15 puntos), literal d (10 puntos)

Datos de prueba:

minerales = ['Oro', 'Plata', 'Cobre']
precios   = [38.48,    3.43,    0.01]

minas = ['MIRADOR', 'FRUTA_DEL_NORTE', 'LOMA_LARGA', 'otra']

# produccion
P = np.array([[ 13524000, 121072000,  1204000,  9632000],
              [ 28000000,    952000,  9632000, 96404000],
              [126980000,    896000, 92988000,  9604000]])

# costos totales de extracción
C = np.array([[12.32, 10.23, 23.23, 19.23],
              [ 3.13,  1.78,  2.45,  1,69],
              [ 8.32,  5.25,  6.32,  6.89]])

# costos totales de transporte
T = np.array([[ 43736616, 341786256,  5442080,  28241024],
              [ 76244000,   1827840, 13966400, 435746080],
              [156439360,   1121792,300723192,  10785292]])

Referencia: Archivo original 3raEvaI_Term2018.pdf

1Eva_IT2018_T1 Busca especie con ADN

1ra Evaluación I Término 2018-2019, Junio 29, 2018. CCPG001

(Editado para tarea, se mantiene el objetivo de aprendizaje)

Tema 1. (40 PUNTOS) La compañía ACME S.A. está desarrollando un nuevo método para detectar especies en base a su ADN

Para representar una especie por su ADN se utiliza una secuencia S compuesta únicamente de las letras A, C, G y T.

La inversa de una secuencia S se determina con los símbolos en orden inverso a lo presentado. Ejemplo:

>>> inversa('GATACA') = 'ACATAG'

Se tienen como datos:

  • Un listado L de secuencias S y
  • Una cadena de referencia R que identifica de forma única a la especie buscada. R no tiene letras repetidas.

Implemente un programa que muestre todas las secuencias S que pertenecen a la especie buscada y los índices en la inversa de donde aparece la cadena de referencia R .

Para realizar esta tarea, por cada secuencia S en listado L :

1. Forme la cadena inversa de la secuencia S

2. La secuencia S pertenece a la especie buscada si:

a) la cadena de referencia R aparece exactamente dos veces en la segunda mitad de inversa y
b) al menos 4 veces en total.

3. Si S pertenece a la especie buscada, muestre la secuencia S y los índices.

Ejemplo:

L = ['ATTTGCTTGCTATTTAAACCGGTTATGCATAGCGC', 
     'ATTAGCCGCTATCGA', 
     '…']
R = 'CG'

SALIDA para Secuencia L[0]:
Secuencia: ATTTGCTTGCTATTTAAACCGGTTATGCATAGCGC
Inversa:   CGCGATACGTATTGGCCAAATTTATCGTTCGTTTA
Índices:   [0, 2, 7, 25, 29]

SALIDA para Secuencia L[1]:
Secuencia: ...
Índices:   ...

Referencia: Archivo original 1raEvaI_Term2018.pdf

1Eva_IIT2017_T2 Texto de examen de sangre

1ra Evaluación II Término 2017-2018, Diciembre 1, 2017. CCPG001 – FIEC

Tema 2. (30 puntos) Un asistente de médico tiene la tarea de generar un informe de indicadores a partir del resultado de un examen de sangre  que lo recibe como una cadena de texto.

Los indicadores, por ejemplo: INR, WBC, RBC, TA, etc.,  se pueden identificar por estar siempre en mayúsculas. Todo indicador va seguido de un espacio, un número con decimales, otro espacio y las unidades de medida. Al final del reporte se encuentra el nombre del médico responsable.

Ejemplos:

resultado = "Resultado de Laboratorio 'Su Salud' Nombre del paciente: José Aimas E-mail del paciente: jose.aimas@gmail.com Resultados del laboratorio: INR 1.25 segundos BGT 180.12 mmol/dL HGB 13 g/dL ESR 3.2 mm/hora RBC 4000024.2 cel/ul TA 1.5 ng/dL WBC 123233.23 cel/uL. Los valores de éste informe no representan un diagnóstico. Firma médico responsable: Dr. Juan Pozo"

resultado = "Resultado de Laboratorio 'Sana' Nombre del paciente: Ginger Irene Cruz Jurado Edad: 25 años E-mail: giircrju@espol.edu.ec Resultados: Azucar BGT 180.12 mmol/dL Hemoglobina HGB 13 g/dL Hormonal TA 1.5 ng/dL Médico responsable Dr. Karina Elizabeth Plaza"

Nota: La cantidad de indicadores puede variar. Los puntos no solo aparecen en los decimales, sino también para separar párrafos o en otras ocasiones como las direcciones de e-mail.

Escriba un programa que muestre la información desglosada, el nombre del médico, una recomendación mostrada como doble asterisco en el indicador y descrita al final

Se recomienda al paciente ir al endocrinólogo si su nivel de azúcar (BGT), está por encima de los 150 mmol/dL.

Ejemplo:

INFORME DE LABORATORIO
**********************
INR	     1.25 	segundos
BGT 	   180.12 	mmol/dL
HGB	    13		g/dL
ESR	     3.2 	mm/hora
RBC	4000024.2 	cel/ul
TA 	     1.5 	ng/dL
WBC 	123233.23 	cel/uL
Médico: Juan Pozo

** Su nivel de azúcar es alto, se recomienda ir al endocrinólogo .

Rúbrica: Descomponer y recorrer texto (4 puntos), revisar mayúsculas (5 puntos), valor indicador (4 puntos), unidad indicador (4 puntos), nombre de médico (5 puntos), recomendación (3 puntos), salida (5).

No es necesario presentar el informe en el formato descrito, pero si lo hace, obtendrá 2 puntos extras en el examen.

Referencia: Archivo original 1Eva_IIT2017.pdf

2Eva_IT2017_T1 Contar palabras de un archivo

2da Evaluación I Término 2017-2018. Septiembre 2, 2017 /CCPG001

(Editado para tarea, se mantiene el objetivo de aprendizaje)

TEMA 1 (40 PUNTOS). Para el texto de un libro se requiere generar las estadísticas del uso de palabras . Dispone también de una lista con conectores = [‘la’, ‘con’, ‘de’, ‘y’, ‘…’]  que son palabras que no agregan mayor significado al texto.

Como ejemplo, el archivo con nombre=’ textolibro.txt ‘ contiene:

Con la ayuda de un grupo de amigos y de valientes aliados Frodo emprende un peligroso viaje con la
misión de destruir el Anillo Único Pero el Señor Oscuro Sauron quien creara el Anillo envía a sus
servidores para perseguir al grupo Si Sauron lograra recuperar el Anillo sería el final de la Tierra
Media Ganadora de cuatro Oscars este inmortal relato sobre el bien y el mal la amistad y el sacrificio
te transportará a un mundo más allá de tu imaginación
...

Desarrolle lo necesario para implementar las siguientes funciones:

a)  cargarArchivo(nombre), que lea el archivo de texto denominado ‘nombre’ para crear una tabla (NumPy con dtype=’U20′), donde cada fila representa una línea y cada columna contiene una palabra de dicha línea.

Notas:
Cada línea del archivo está limitada por ‘\n‘  y cada palabra está separada por un espacio en blanco.
Asuma que cada palabra tendrá 20 caracteres como máximo y que el número máximo de palabras por líneas es 30. Si la línea tiene menos de 30 palabras, las celdas restantes deben ser llenadas con una cadena vacía (»).

b) ocurrencias(palabra, tabla), que tiene como resultado el número de veces que la palabra aparece en la tabla.

c) lineas(palabra, tabla), que entrega un vector (tupla) con los números de fila donde aparece la palabra en tabla.

d) contarPalabras(tabla , conectores) que muestra como resultado una tupla con:
– la cantidad de palabras únicas en el texto (incluyendo los conectores) y
– el número solo de conectores que se incluyen en el texto.
Cada palabra (regular o conector) debe ser contada una sola vez sin importar cuantas veces se repita en el texto.

e) concordancia(tabla, conectores) que obtiene las estadísticas de las palabras  y entrega el diccionario mostrado en ejemplo.
Para el diccionario interno ‘palabras‘ no debe incluir los ‘conectores’. .
Puede apoyarse en las funciones anteriores para generar el diccionario.

Ejemplo:
resultado = 
{
    'NTP': 83,
    'NPC': 22,
    'palabras':{
        'Anillo': {'veces': 3, 'NL': (2,2,3)},
        'Sauron': {'veces': 2, 'NL': (2,3) },
        ...
        }
 }
 Donde,
 NTP = Número total de palabras
 NPC = Número solo de palabras stopwords
 NL = Número de líneas

Referencia del texto: Tolkien, J. R. R. (1991). La comunidad del anillo (Vol. 1). Planeta Publishing.

Archivo Original 2Eva_IT2017.pdf

Rúbrica: literal a (6 puntos + 5 puntos de bono),  literal b y c (6 puntos cada uno), literal d y e (11 puntos cada uno).

1Eva_IT2017_T1 Palabras puntaje

1ra Evaluación I Término 2017-2018. Julio 01, 2017 /CCPG001 – FIEC

(Editado para tarea, se mantiene el objetivo de aprendizaje)

TEMA 1. (40 PUNTOS) En el juego de tablero «Scrabble», cuando el jugador forma una palabra, acumula los puntos de los equivalentes para cada letra .

Una palabra se puede crear cruzando otra palabra y usando una letra compartida que  recibe el doble de puntos.

alfabeto = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
equivale = [1,3,3,2,1,4,2,4,1,9,5,1,3,1,1,3,10,1,1,1,1,4,4,9,4,10]

Realice un programa en que el jugador ingrese varias palabras separadas por comas (‘,‘),  determine el puntaje correspondiente a cada palabra y muestre cuál es la  palabra con mayor puntaje.

Ejemplo: 
>>> 
Analizar: CAS*A*,S*ASTR*E*,R*EY*,A*ZOTE*
CAS*A* 8
S*ASTR*E* 9
R*EY* 11
A*ZOTE* 16
Ganador: A*ZOTE* 16

Nota: Para marcar una letra compartida se añade un símbolo (‘*‘) , suponga que todas las palabras ingresadas terminan con una letra compartida. Todas las letras deben ser mayúsculas, si se ingresa una minúscula será ignorada para el puntaje.

Referencia: Archivo original 1Eva_IT2017.pdf


Rúbrica para tarea: (sobre 10 puntos)

  • algoritmo para buscar posición de letra en alfabeto, no usar palabra.find(letra) (2 punto)
  • determinar puntos por cada letra (2 punto)
  • unificar mayúsculas-minúsculas para comparar ( 1 punto)
  • considerar ‘*’ para doble puntaje por letra (2 punto)
  • analizar palabra letra por letra (1 punto)
  • analizar cada palabra de la frase (1 punto)
  • separar palabras de frase usando “coma” (1 punto)
  • algoritmo estructurado: Inicio, ingreso, procedimiento, salida, fin. Si no es estructurado, PUNTOS = PUNTOS/5

 

1Eva_IIT2015~T2 Dibujar reloj de arena

1ra Evaluación II Término 2015-2016, Marzo 7, 2016 /CCPG1001

Tema 2. (20 puntos) Se requiere implementar la función dibujarReloj(n,c) que recibe como parámetros un número n y un caracter c, para dibujar un reloj de arena como se muestra en el ejemplo:

Si n = 7 y c = ‘.’, se dibujará:
*******
 *...*
  *.*
   *
  * *
 *   *
*******

Rúbrica: definición de función (5 puntos), delimitación de cuadrícula (5 puntos), relleno de cuadrícula (10 puntos)

1Eva_IIT2016_T3 Total de ventas por tienda

1ra Evaluación II Término 2016-2017. Diciembre 6, 2016. CCPG001 – FIEC

(Editado para tarea, se manteniene el objetivo de aprendizaje)

TEMA 3. (24 PUNTOS) Se dispone del registro total por dia de las transacciones de las tiendas deportivas, Marathon Sports en Guayaquil. Cada registro comprende un texto que representa los valores de:

sector|tienda|categoria|producto|totalVentas|dia-mes-año
Ejemplo:
transacciones = [ 
'centro|Bahia|futbol|zapatos-Adidas|290.78|25-03-2013', 
'centro|Malecon2000|natacion|chaleco-Fins|110.92|01-02-2014', 
'sur|MallDelSur|natacion|gafasPiscina-Swingo|90.07|13-05-2014', 
'centro|Bahia|natacion|zapatos-Nike|315.72|13-12-2015',
'norte|CityMall|natacion|gafasPiscina-Adidas|310.19|31-05-2016', 
'...', 
 ]

Escriba un programa que usando los datos de transacciones encuentre:

  1. Los nombres de las tiendas que pertenecen a cada sector (sur, centro, norte). Considere usar una lista por cada sector con nombres de tiendas no repetidos.
  2. El total de ventas de los productos ‘Adidas’ en el mes de mayo (’05’) del año que el usuario requiera.

Nota: Considere desarrollar el tema de forma independiente del anterior.

Referencia: Archivo original 1raEvaIIT2016.pdf