1ra Evaluación I Término 2023-2024, Julio 7, 2023 /CCPG1043
Tema 3. (25 puntos) Implemente la función siglas(frase,palabras_comunes) que reciba una frase y una lista de palabras comunes. Asuma que tanto las palabras de la frase como de la lista están en minúsculas.
La función debe generar una sigla utilizando las iniciales en mayúsculas de cada palabra.
La función debe omitir de la sigla palabras comunes como "de", "y", "en", etc. (definidas en el parámetro palabras_comunes), a menos que sean la primera o la última palabra de la frase.
Asuma que en la frase no existen signos de puntuación.
Ejemplo de entrada
frase = "el yin y el yang son conceptos filosóficos de la cultura china"
palabras_comunes = ["el", "y", "de", "la", "son"]
1ra Evaluación I Término 2023-2024, Julio 7, 2023 /CCPG1043
Tema 2. (15 puntos) Implemente un programa que:
a. Pida una palabra al usuario.
b. Pida al usuario una frase a la vez hasta que este ingrese la palabra «Basta».
c. Elimine de cada frase las comas y los puntos. Asuma que las frases no tienen ningún otro signo de puntuación.
d. Al finalizar, muestre por pantalla cuántas veces se repitió la palabra ingresada en el paso 1 en las frases ingresadas en el paso 2. Al momento de contar asegúrese de considerar mayúsculas y minúsculas para que cuenten como la misma palabra. Ejemplo: 'hola' y 'Hola' son la misma palabra.
Asegúrese de comparar palabras exactas. Ejemplo: "Hola" en "Estoy en Holanda" no cuenta.
Ejemplo de entrada:
Ingrese una palabra: hola
Ingrese una frase (Ingrese "Basta" para terminar):
Hola, estoy bien
Ingrese una frase (Ingrese "Basta" para terminar):
Hola. No me gusta saludar diciendo hola
Ingrese una frase (Ingrese "Basta" para terminar):
Basta
Ejemplo de salida:
La palabra "hola" se repitió 3 veces en las frases ingresadas.
1ra Evaluación I Término 2023-2024, Julio 7, 2023 /CCPG1043
Tema 1. (15 puntos) Implemente la función buscar_palindromos(mensaje) que recibe un mensaje y retorna una lista con todas las palabras (de 2 o más letras) del mensaje que son palíndromos. Asuma que todas las palabras están en minúsculas y no existen signos de puntuación.
Recuerde que un palíndromo es una cadena que se lee igual de izquierda a derecha o de derecha a izquierda. Por ejemplo: madam, ana, somos, reconocer, anilina.
Ejemplo de entrada
mensaje = "ana y yo somos amigos y trabajamos en la torre del radar"
(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.
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 palabrao 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
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:
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.
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]])
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 listadoL de secuenciasS 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 deS 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: ...
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.
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 palabraaparece 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.