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ó”.

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.

1Eva_IT2015~T1 Persistencia aditiva de un número entero

1ra Evaluación I Término 2015-2016. Julio, 2015 /FIEC

Tema 1. (25 puntos) La persistencia aditiva de un número entero se calcula sumando sus dígitos y en caso que esta sumatoria tenga más de un dígito, se repetirá el proceso sobre esta, hasta alcanzar un único dígito.

La cantidad de veces que se requiera realizar la sumatoria hasta obtener un único dígito se denomina persistencia aditiva.

Por ejemplo:

  • El número 1234 tiene una persistencia aditiva de 2 (la primera suma de dígitos es 10, luego la segunda suma es 1).
  • El número 5978 tiene una persistencia aditiva de 3 (5978→29→11→2).
  • El número 9 tiene una persistencia aditiva de 0.

Se requiere implementar en Python la función calcularPersistenciaAditiva(), la cual recibe como parámetro un número entero positivo denominado número y retorna su persistencia aditiva.

2Eva_IT2015~T2 Funciones con cadenas, sufijos y contador de letras.

2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

Tema 2. (25 puntos) Desarrolle las siguientes funciones:

a) procesarSufijos(palabra, sufijo). Esta función recibe una palabra y un sufijo. El sufijo se remueve y se añade la letra “r” al final. Ejemplo:

procesarSufijos(“cocinamos”, “mos”) retorna cocinar
procesarSufijos(“perderia”, “ria”) retorna perder

b) contarCaracteres(listaPalabras, nombreArchivo). Esta función recibe una lista de palabras y crea un archivo con el nombre dado como parámetro. En el archivo se almacena la letra y cuántas veces esa letra aparece en las palabras analizadas. Ejemplo:

contarCaracteres([“hola”, “mundo”, “espol”])

Archivo generado:

h,1
o,3
l,2
a,1
m,1
u,1
n,1
d,1
e,1
s,1
p,1

Rúbrica: literal a (8 puntos), literal b (17puntos)


Referencia: 3Eva_IIT2014_T3 Juego de palabras encadenadas , Alfabeto PMF

1Eva_IT2015_T4 Asignar voluntarios a bloques por tipo de capacitación

1ra Evaluación I Término 2015-2016. Julio 7, 2015 /ICM00794

Tema 4. (20 puntos) Para el evento del Parque Samanes por la visita del Papa en Guayaquil el área del Parque se dividió en 32 bloques que tendrían el apoyo de voluntarios capacitados como se describe en el tema anterior.

Realice un algoritmo que reciba el listado de voluntarios y su tipo de capacitación, resultado del tema anterior, y los distribuya para cada bloque del parque por orden de lista y de forma equitativa por tipo de capacitación.

Muestre un nuevo listado indicando los voluntarios asignados a cada bloque.

Ejemplo: para n=8, m=4, bloques=2
 El máximo por tipo de capacitación= 8/4=2
 El máximo por tipo capacitación por cada bloque = (2/2)=1
voluntario capacita [voluntario] bloque [voluntario]
1 3 1
2 1 1
3 4 1
4 3 2
5 1 2
6 2 1
7 2 2
8 4 2

Nota: Un voluntario solo puede atender un bloque. Suponga que n es múltiplo de m.

Sugerencia: inicie asignando solo para un tipo y un bloque, revise el tipo de capacitación de cada voluntario y asigne siempre que el conteo sea menor que máximo por tipo y bloque, caso contrario cambie de bloque, reinicie los contadores y continúe asignando con el nuevo bloque hasta completar todos los voluntarios. Repita el proceso cambiando el tipo.

Rúbrica: ingreso (5 puntos), asignar ordenadamente al bloque (10 puntos), asignar equitativamente por tipo (5 puntos)

1Eva_IT2015_T3 Capacitar a voluntarios seleccionados aleatoriamente

1ra Evaluación I Término 2015-2016. Julio 7, 2015 /ICM00794

Tema 3. (30 puntos) Se registraron voluntarios para colaborar en el evento del Parque Samanes por la visita del Papa a Guayaquil.

Parque Samanes – Guayaquil

Para capacitar a los voluntarios,  identificados por un número, se requiere formar grupos equitativos (igual cantidad) para: orientar a las personas en al ingreso y salida, portar letreros y banderas, distribuir agua, prestar atención a discapacitados y quienes pudiesen tener algún problema de salud, entre otras.

Realice un algoritmo para distribuir a voluntarios en m tipos de capacitación en forma aleatoria, no repetida y equitativa; luego muestre el listado que indica la capacitación que recibirá cada voluntario.

Ejemplo: para n=8, m=4, maxtipo= 8/4 =2

voluntario capacita [voluntario]
1 3
2 1
3 4
4 3
5 1
6 2
7 2
8 4

Nota: Un voluntario solo puede asistir a una capacitación. Suponga que n es múltiplo de m.

Referencia: La república. Quito y Guayaquil ultiman detalles para visita del papa Francisco a Ecuador. 02.07.2015. http://www.larepublica.ec/blog/sociedad/2015/06/30/quito-y-guayaquil-ultiman-detalles-para-visita-del-papa-francisco-a-ecuador/

Rúbrica: ingreso y validación (5 puntos), sorteo capacitación única (5 puntos), cupos de capacitación (15 puntos), mostrar resultados (5 puntos).

1Eva_IT2014_T3 Pirámide Publifast

1ra Evaluación I Término 2014-2015. Julio 1, 2014 /ICM00794

Tema 3. (25 puntos) Nuevamente el juego de la pirámide fue usado como una estafa para muchos ciudadanos, en ésta ocasión usando publicidad en redes sociales. negociopiramide

Para demostrar que éste tipo de negocios es limitado, escriba un algoritmo que simule la situación conforme a la siguiente descripción:

  • Inicialmente hay una persona en la pirámide conocida como el promotor
  • En cada mes, para recibir los beneficios cada persona en la pirámide debe invitar un número fijo de k personas. Suponga que la pirámide crece uniforme cada mes con los invitados.
  • Cada persona al ingresar a la pirámide debe aportar una cuota en dólares.
  • El crecimiento ya no es posible cuando la cantidad de personas en la pirámide resulta ser mayor al número de personas en capacidad de aportar dinero a la pirámide. Ej: los habitantes m de un país.

Al final muestre cuántos meses funcionó la pirámide, cuántas personas formaron parte y el dinero recaudado.

Observación: La pirámide termina cuando ya no quedan suficientes nuevos aportantes. Por lo que lo recaudado es solo hasta ese mes.
Ref: http://www.eluniverso.com/noticias/2014/06/11/nota/3066307/sedujo-forma-facil-duplicar-su-dinero-web

Rúbrica: control de ciclos (5 puntos), control de crecimiento (10 puntos), resultados (10 puntos)

1Eva_IT2014_T2 Verificar EAN con Python

1ra Evaluación I Término 2014-2015. Julio 1, 2014 /ICM00794

Tema 2. (25 puntos) El número EAN-13 (European Article Number) usado comercialmente en Europa en la identificación de productos, está constituido por 13 dígitos y con una estructura dividida en cuatro partes :

  • 3 dígitos para el país,
  • 4 dígitos para la empresa,
  • 5 dígitos para el producto, y
  • un dígito de control.

El dígito de control permite detectar errores de lectura del código, calculado como:

  • Comenzando por la derecha, se multiplican los dígitos del código por 1 si su posición es par y por 3 si es impar,
  • Se suman los valores de los productos obtenidos,
  • Se resta a la decena superior el resultado de la suma, siendo el resultado el dígito de control.
7 7 0 2 0 0 4 0 0 3 5 0
x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 x3
7 21 0 6 0 0 4 0 0 9 5 0
Suma = 52
 decena superior = 60
 verificador calculado 60-52 = 8

Realice un algoritmo que dado un número EAN valide que sea de 13 dígitos, calcule el dígito verificador e informe si es correcto.

Referencia: http://es.wikipedia.org/wiki/European_Article_Number

Rúbrica: Ingreso y validación (5 puntos), cálculos por dígito (10 puntos), decena superior (5 puntos), resultado (5 puntos)

1Eva_IIT2014_T3 Parasailing sin sobrecarga, parejas

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

Tema 3. (25 puntos) Parasailing es un tipo de deporte extremo de playa promocionado para turistas que usa un paracaídas para dos personas atado e impulsado por una lancha. parasailing dibujo

Por seguridad, la capacidad del paracaídas máxima es de 350 lb.

Dada la capacidad máxima y la lista de los pesos en libras para n turistas en la cola, realice un algoritmo para determinar las combinaciones posibles de parejas entre las personas en la cola de espera sin sobrecargar el paracaídas.

Ejemplo: capacidad máxima=350; Cola de espera:

i 1 2 3
pesos[i] 120 180 165

Referencia: publicado el 21-feb-2012. https://www.eltelegrafo.com.ec/noticias/deportes/1/el-parasailing-los-hace-sentirse-duenos-del-cielo

Rúbrica: ingreso de datos (5 puntos), seleccionar y comparar parejas (15 puntos), conteo de pareja (5 puntos)


3Eva_IT2014_T3 Juego Poli-Mancala

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 3. (25 puntos). Poli-mancala es un juego de tablero con 2×8 casillas, 48 fichas y un movimiento denominado “siembra”.

  • Al inicio, se ubican 4 fichas en cada casilla excepto en los extremos izquierdo y derecho del tablero.
  • Se juega por turnos alternados para realizar un movimiento de siembra.
  • Suponga que existe la función siembra(tablero, fila, columna) que devuelve el tablero modificado.
  • La siembra consiste en tomar todas las fichas de una casilla de la fila del jugador, y depositar una a una en las casillas contiguas siguiendo el sentido de las manecillas del reloj.
  • Las casillas de cada jugador se encuentran diferenciadas por color en el tablero mostrado.
  • Cada jugador puede realizar jugadas solo sobre sus casillas excepto la de su extremo (entre columnas 2 y 7).
  • El jugador que acumule más de la mitad de fichas en las casillas de su extremo (Casa) gana el juego.

Realice un programa para dos jugadores del juego descrito de Poli-mancala.

Tablero inicial:
Jugador1 [0 4 4 4 4 4 4 0] Jugador2
   0     [0 4 4 4 4 4 4 0]    0

Jugador 1. ¿Casilla siembra?: 5
Jugador1 [0 4 4 4 0 5 5 1] Jugador2
   0     [0 4 4 4 4 4 4 1]    2

Jugador 2. ¿Casilla siembra?: 2
Jugador1 [1 5 5 4 0 5 5 1] Jugador2
   2     [1 0 4 4 4 4 4 1]    2

Referencia: http://www.ludoteka.com/wari.html
Rúbrica: Inicializar juego (5 puntos), control jugadas (5 puntos), control de puntajes (10 puntos), distribuir fichas (5 puntos)