1Eva_IT2023_T5 Función buscar divisibles en lista

1ra Evaluación I Término 2023-2024, Julio 7, 2023 /CCPG1043

Tema 4. (25 puntos) Implemente la función buscar_divisibles(numeros,divisor) que recibe como primer parámetro una lista con números enteros y como segundo parámetro un número entero positivo mayor a 0.

La función retorna una nueva lista con los números que son divisibles para el número recibido en el segundo parámetro.

Luego, implemente un programa principal y realice lo siguiente:

a. Genere una lista de 20 números aleatorios entre 2 y 200
b. Genere un número aleatorio entre 2 y 10.
c. Llame a la función con la lista de números y número aleatorio generados en los pasos anteriores y muestre la lista resultante.

Ejemplo de entrada

numeros_aleatorios = [81, 153, 192, 77, 70, 87, 182, 100,
 171, 157, 132, 193, 170, 95, 173, 27, 98, 6, 44, 34]
divisor = 9

Ejemplo de salida

[81, 153, 171, 27]

Referencia: 2Eva_IIT2002_T1 Verificar si es «Número perfecto»
Residuo de a para b

1Eva_IT2023_T4 Función rotación parcial de lista

1ra Evaluación I Término 2023-2024, Julio 7, 2023 /CCPG1043

Tema 4. (25 puntos) Implemente la función rotacion_parcial(numeros, k) que recibe como parámetros una lista de números y un número entero positivo k mayor a cero y menor que el tamaño de la lista.

La función realiza una rotación parcial hacia la derecha de la lista, pero solo para los primeros k elementos y retorna la nueva lista.

Ejemplo de entrada

lista = [110, 202, 343, 40, 52, 657, 743, 81]
k=3

Ejemplo de salida

[343, 110, 202, 40, 52, 657, 743, 81]

Explicación

Para el ejemplo de k=3, solo los tres primeros elementos de la lista cambian su orden. El resto de
elementos de la lista mantienen su orden original.

│----- k=3 -----│
[110, 202, 343, │ 40, 52, 657, 743, 81]
  │    └───>│   │
  └───>│    │   │
  │<────────┘   │
[343, 110, 202, │ 40, 52, 657, 743, 81]

1Eva_IT2023_T3 Función Siglas de una frase

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"]

Ejemplo de salida

"EYYCFCC"

Referencia: 3Eva_IT2007_T2 Función para crear Acrónimos

1Eva_IT2023_T2 Palabras repetidas en frase

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.

Referencia: 3Eva_IIT2015_T1 Mensajes en redes sociales y etiquetas

1Eva_IT2023_T1 buscar palíndromos

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.imagen simetrica

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"

Ejemplo de salida

['ana', 'somos', 'radar']

Referencia: 1Eva_IIT2013_T2 Números palíndromo con Python

3Eva_IT2019_T3 Prueba de escritorio – cadenas, listas, segmentar, separar

3ra Evaluación I Término 2019-2020, Septiembre 13, 2019

Tema 3. (10 puntos) ¿Qué muestra el siguiente código? Justifique su respuesta

A = 'Num empresas,17,0|9|1,10|19|2,20|29|3'

campos = A.split( ',')
valores = []
for rango in campos[2:]:
    valores.append(int(rango.split('|')[0]))

print(valores)

Asuma que este tema NO tiene errores de compilación. Si usted cree que hay algún error de compilación, consúltelo inmediatamente con su profesor.

3Eva_IT2019_T2 Juego del ahorcado

3ra Evaluación I Término 2019-2020, Septiembre 13, 2019

Tema 2. (30 puntos)
Escriba un programa de Python que implemente un juego de adivinanzas de palabras.

Considere que para su programa ya están definidas las siguientes variables y función:

1. Una lista C de las categorías para el juego.

C = ['Transportes', 'Alimentos', 'Deportes', ...],

2. La función perteneceCategoria(palabra, categoria) que retorna True si palabra pertenece a la categoria, False en caso contrario.

3. El diccionario puntajes con el siguiente formato:

puntajes = {'Transportes':{'a':10, 't':4, 'f':5, ...},
            'Deportes': {'a':3, 'z':5, 't':10, ...},
             ... }

Para la implementación del juego considere las siguientes reglas:

r1. El jugador tiene cinco turnos para jugar

Para cada turno:

r2. El programa selecciona aleatoriamente una categoría de la lista C

r3. El programa le pide al jugador que ingrese una palabra para la categoría seleccionada en el paso r2

r4. Si la palabra pertenece a la categoría dada y no ha sido ingresada en un turno anterior, calcule los puntos totales para la palabra.
El puntaje de la palabra es la suma de los puntajes de cada una de sus letras, de acuerdo al diccionario puntajes.
Una letra tendrá puntajes distintos dependiendo de la categoría del paso r2.
Si la palabra no cumple con las condiciones, el jugador no obtiene puntos en ese turno

r5. En cada turno, muestre el puntaje obtenido para la palabra ingresada y el puntaje acumulado

Al final de los cinco turnos:

r6. El jugador habrá ganado si completa un mínimo de 500 puntos, muestre el mensaje correspondiente “Ganó” o “Perdió”.

3Eva_IT2019_T1 Producción en hacienda

3ra Evaluación I Término 2019-2020, Septiembre 13, 2019

Tema 1. (60 puntos)
Asuma que tiene un archivo con la información de los productos agrícolas cosechados por una hacienda durante todos los días del año 2018.

La información se encuentra en el siguiente formato:

codigo1,codigo2,codigo3,...,codigoN
codigo_producto,fecha(dd-MMM-aaaa),cantidad_cosechada

Ejemplo:

100034,100312,100021,...,201245,432198 
codigo_producto,fecha(dd-MMM-aaaa),cantidad_cosechada
100034,02-ENE-2018,5
100021,02-ENE-2018,15
100021,07-ENE-2018,11
432198,20-ENE-2018,12
...

Nota: La primera línea del archivo contiene los códigos de todos los productos agrícolas presentes en el resto del archivo, mientras que la segunda línea es la cabecera del archivo.

Implemente las siguientes funciones:

1.1. crearMatriz(nomArchivo) que recibe el nombre del archivo con la información de las cosechas de un año; y devuelve un vector con todos los códigos de productos y una matriz con los totales (valores enteros) de cosechas para cada producto (filas) durante cada mes del año (columnas). Ejemplo:

[ENE,FEB,MAR,ABR,MAY,JUN, JUL,AGO,SEP,OCT,NOV,DIC]
Cod =[
[100034],
[100312],
[100021],
...
[201245],
[432198]]
M=[
[32, 12, 45,  67, 84, 114,  21, 57, 99, 84, 74, 65],
[43, 15, 67,  21, 77,  95, 110, 78, 93, 63, 56, 32],
[65, 78, 32, 155, 32,  73,  87, 91, 22, 65, 82, 17],
...
[39, 71, 63,  32, 57,  85,  83, 12, 11, 15, 34, 65],
[55, 51, 54,  67, 64,  63,  56, 52, 71, 77, 87, 32]]

1.2. mesMasRentable(M) que recibe la matriz de cosechas M . Esta función retorna el nombre del mes en que más se cosechó y el total de cosecha de ese mes.

1.3. altoBajos(M, k) que recibe la matriz de cosechas M y un entero k. La función retorna el nombre de todos los meses que tienen una cosecha total con al menos k unidades por debajo de la cosecha del mejor mes del año.

1.4. mejorTrimestre(M, Cod, codigo) que recibe la matriz de cosechas M, el vector de códigos Cod y el codigo de un producto. La función debe retornar el nombre del trimestre («T1», «T2», «T3» o «T4») en el que más se cosechó el producto con codigo .

1.5. mejoresNProductos(M, Cod, n) que recibe la matriz de cosechas M, el vector de códigos Cod y un número entero n . La función debe retornar los códigos de los n productos más cosechados durante el año.

1.6. promedioProductos(M, Cod, codigos) que recibe la matriz de cosechas M, el vector de códigos Cod y una lista con códigos de productos. La función retorna el promedio de los totales de cosecha entre los códigos dados en la lista.

7. porCategoria(M, Cod, categorias) que recibe la matriz de cosechas M , el vector de códigos Cod y un diccionario categorias con el siguiente formato:

categorias = {'legumbres':[100034,201245,...],
              'verduras': [100021,200013,...],
               ... }

La función deberá escribir un archivo por cada categoría con el siguiente formato: Archivo_legumbres.txt

codigo,ENE,FEB,MAR,ABR,MAY,JUN,JUL,AGO,SEP,OCT,NOV,DIC
100034,32,12,45,67,84,114,21,57,99,84,74,65
201245,39,71,63,32,57,85,83,12,11,15,34,65
...

El nombre del archivo debe ser el mismo de la categoría dentro del diccionario categorias y terminar con “.txt”.

Rúbrica: numeral 1.1 (8 puntos), numeral 1.2 (5 puntos),numeral 1.3 (8 puntos), numeral 1.4 (9 puntos), numeral 1.5 (6 puntos), numeral 1.6 (9 puntos), numeral 1.7 (15 puntos).


Referencia: Producción de brócoli crece 300% desde 2000
https://www.eluniverso.com/2005/03/24/0001/9/E2FB1BA3C6DC41C899E8B87A7F2FBD36.html

2Eva_IT2019_T3 Prueba de escritorio, conjuntos

2da Evaluación I Término 2019-2020, Agosto 30, 2019

Tema 3. (10 puntos) ¿Qué muestra el siguiente código? Justifique su respuesta

A = {3, 6, 7, 13, 19}
B = {13, 15, 19, 23, 29}
C = A.union(B)- B.intersection(A)
D = A.symmetric_difference(B)
if C == D:
    print('Vaya a la oficina 2')
else:
    print('Regrese a la oficina 5')

Nota: Asuma que este tema NO tiene errores de compilación. Si usted cree que hay algún error de compilación, consúltelo inmediatamente con su profesor.

2Eva_IT2019_T2 Separar indicadores

2da Evaluación I Término 2019-2020, Agosto 30, 2019

Tema 2. (40 puntos) Dado el archivo indicadores.csv​ con el siguiente formato:

Indicador, columna, min1|max1|puntaje1, min2|max2|puntaje2, ..., minN|maxN|puntajeN

Ejemplo:

Indicador,Columna,Puntajes
Num_empresas,17,0|9|1,10|19|2,...
Num_coworkings,5,0|15|10,16|30|15,...

Y el archivo ​estadisticas.csv​ con el siguiente contenido de ejemplo:

Buenos Aires, México, Budapest, ... 
Ciudad,Indicador,valor 
Santiago de Chile,Num_empresas,58
Guayaquil,Inversion en $,17423...
Guayaquil,Num_coworkings,5

Nota: La primera línea del archivo ​estadisticas.csv​ tiene los nombres de todas las ciudades presentes en el archivo, mientras que la segunda línea es su cabecera. Una ciudad puede estar repetida en varias líneas del archivo pero con un indicador diferente.

Escriba un programa en Python que cree el diccionario ​indicadores​, el arreglo ​ciudades​ y la matriz ​M​ utilizados en el ​TEMA 1​.

Rúbrica: crear diccionario ( puntos), crear arreglo ( puntos), crear matriz ( puntos) Nota: puntos detallados no indicados en el impreso del examen original.