1Eva_IT2015~T3 Juego acumula tesoros

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

Tema 3. (45 puntos) En el juego de tablero acumula-tesoros, dos jugadores atraviezan un corredor de 50 metros de largo. 

En cada turno, un jugador avanza lanzando un dado de 6 caras y avanza las casillas de 1 metro correspondiente.

En la nueva posición debe considerar si debe retroceder considerando la reglas de movimiento:

  • Si la nueva posición no ha sido visitada aún, se queda en la casilla y el jugador puede recoger algún elemento siguiendo las reglas de tesoros.
  • Si la nueva posición ya ha sido visitada por el otro jugador, debe retroceder 10 metros.
  • En caso de retroceder, el jugador puede volver al inicio si su posición es menor de 10 metros. El jugador puede evitar retroceder deshaciéndose de un tesoro de los que haya recogido.

Al llegar a cada casilla o posición, a cada jugador se le asigna aleatoriamente uno de los estados mostrados en la tabla.

estado elemento
fortaleza (-1) armas (1)
hambre (-2) víveres (2)
súper-héroe (-3) tesoros (3)

Algunas casillas pueden tener asignado uno los elementos de la tabla. Las reglas de tesoro para recoger el elemento indica que:

  • Para recoger armas, el jugador debe estar en el estado de fortaleza.
  • Para recoger víveres, el jugador debe estar en el estado de hambre.
  • Para recoger tesoros, el jugador debe estar en el estado de súper-héroe.

Al inicio del juego, se ubican los jugadores en la casilla 1. Luego se distribuyen aleatoriamente 8 armas, 8 víveres y 8 tesoros a lo largo del corredor, desde la posición 2 en adelante.

El juego termina cuando uno de los jugadores llega exactamente al final del corredor. Gana el jugador que acumula la mayor riqueza de elementos recogidos durante el juego, calculada como:

Riqueza = \frac{armas}{2}+1)100 + 0.5 víveres+ tesoros

Se requiere implementar las siguientes procedimientos y funciones:

  1. asignarPosicionElementos() que retorna una colección que contiene 3 listas, cada una representando las posiciones en el corredor de las 8 armas, víveres y tesoros, respectivamente.
  2. LanzarDado() que retorna aleatoriamente el valor de una de las caras del dado.
  3. generarEstado() que retorna aleatoriamente uno de los posibles estados.
  4. mostrarElemento(posicion, coleccion) que dada una posición y la colección de posiciones de los elementos imprime en pantalla el tipo de elemento que existe en esa posición.
  5. recogerElemento(estado, posicion,colección) que dada una posición, el estado de un jugador y la colección de posiciones de los elementos retorna el tipo de elemento que se ha recogido (1, 2 ó 3) o 0 si no ha sido posible.
  6. mostrarMensaje(jugador), la cual recibe como parámetro un jugador e muestra en pantalla el estado y posición del jugador.
  7. calcularRiqueza(armas,viveres,tesoreos) que dada una cantidad de armas, víveres y tesoros retorna la riqueza obtenida.

Realice un programa que simule el juego y que siguiendo las reglas del juego descritas, use las funciones implementadas anteriormente.

En cada turno se mostrarán por pantalla:

  • El jugador al que corresponde el turno
  • El resultado del lanzamiento del dado
  • Si se avanza o retrocede
  • la nueva posición del jugador

Al finalizar el juego, se debe declarar al ganador y la riqueza de cada uno.

Rúbrica: inicializar tablero con premios (5 puntos), uso de aleatorios, (5 puntos), control de posiciones (5 puntos), implementar reglas de movimiento (5 puntos), reglas de tesoros (5 puntos), control de fin de juego (5 puntos), seleccion de ganador y riqueza(5 puntos), funciones estructuradas (5 puntos), algoritmo estructurado(5 puntos).

Nota: Enunciado original editado y adaptado para taller en clases.

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.

1Eva_IIT2015_T4 Conjetura débil de Goldbach

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

Tema 4. (25 puntos) La llamada “Conjetura débil de Goldbach” propuesta en el año 1742 afirma que todo número impar mayor a 5 se puede expresar como la suma de tres números primos.

Probar la conjetura para todos los números impares hasta el infinito era muy complejo, pero el matemático peruano Harald Helfgott al demostrarla ganó el premio “Cátedra Humboldt” por US$3,9 millones.

Escriba un programa que reciba un número impar mayor a 5 y encuentre tres números primos cuya suma es igual al número impar dado.

Ejemplo: 
Número impar:31
vector de primos hasta impar/2 :
 [ 2 3 5 7 11 13]
Primos seleccionados:
 7+11+13 = 31

Sugerencia: Para generar el vector de números primos, puede usar un bloque que represente el algoritmo del tema anterior. Luego compare el número impar con la suma de cada combinación de tres números del vector de primos y así encontrar la terna buscada.
Referencia: http://www.bbc.com/mundo/noticias/2015/09/150907_ciencia_matematico_problema_271_lb

Rúbrica: ingreso y validación (5 puntos), usar bloque del algoritmo del tema anterior (5 puntos), buscar combinación de 3 números (10 puntos), Respuesta y Algoritmo estructurado (5 puntos)

1Eva_IIT2015_T3 Vector de números primos

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

Tema 3 (20 puntos). Para la encontrar una solución a un problema de matemáticas, se requiere disponer de un vector de números primos en el rango entre 2 y un entero positivo m.
Elabore un algoritmo que dado un valor de m, genere el resultado buscado.

 Ejemplo: m=15
 vector de primos hasta m :
 [ 2 3 5 7 11 13]

Rúbrica: Ingreso y validación (5 puntos), verificar primo (5 puntos), generar vector (10 puntos).

1Eva_IIT2015_T2 Monopolio simplificado

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

Tema 2. (30 puntos) Para una versión simplificada de Monopolio con 4 jugadores se tiene que: monopolio simplificado

 

  • Al inicio, todos los jugadores ubican su ficha en la casilla 1 con $1500.
  • El tablero es de recorrido cíclico de 24 casillas.
  • Se juega por turnos avanzando con la suma del lanzamiento de dos dados.
  • Un jugador al caer en las casillas de “Casualidad” (4, 10, 16) debe pagar $100 a otro jugador escogido aleatoriamente.
  • Cada jugador tiene cinco casillas como “propiedades”; si un jugador cae en la propiedad de otro le deberá pagar del derecho de ocupación un valor determinado al lanzar un dado y multiplicarlo por 10.

Considere que:

  • El jugador 1 es propietario de las casillas 2, 8, 13, 19, 22.
  • El jugador 2 es propietario de las casillas 3, 7, 11, 17 y 24.
  • El jugador 3 es propietario de las casillas 5, 9, 15, 20 y 23.
  • El jugador 4 es propietario de las casillas 6, 12, 14, 18 y 21
  • Cada vez que un jugador pase por “Inicio” recibirá $200.

Realice un algoritmo que simule el juego hasta que uno de los jugadores quede en bancarrota (sin dinero). Al final, indique el jugador que se quedó en la bancarrota y el dinero que obtuvo cada jugador.

Rúbrica: control de saldos de jugadores y turnos (5 puntos), ubicación de jugadores (5 puntos), uso apropiado de aleatorios (5 puntos), casualidades y paso por inicio (5puntos), control de propiedades (5 puntos). Respuesta y Algoritmo estructurado (5 puntos).

1Eva_IIT2015_T1 Conjetura múltiplo de 3

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

Tema 1. (25 puntos) “Si partimos de un número natural que sea múltiplo de 3 y sumamos los cubos de sus cifras, a este resultado le aplicamos la misma operación sucesivamente, llegaremos siempre al número 153.”

Elabore un algoritmo que permita ingresar un número entero de cuatro cifras que sea múltiplo de 3 y verifique si se cumple esta conjetura.

Ejemplo: 1375
 No es múltiplo de 3
 Respuesta: No cumple
Ejemplo: 1374
 Si es múltiplo de 3
 1374 → 13 + 33 + 73 + 43 = 435
 435 → 43 + 33 + 53 = 216
 216→ 225 → 141 → 66 → 432 → 99 → 1458 → 702 → 351 → 153
 Respuesta: Si cumple

Referencia: https://en.wikipedia.org/wiki/Narcissistic_number. Los 153 peces en la red. Juan 21:11 NVI

Rúbrica: Ingreso y validación (5 puntos), acumular cubos de dígitos (10 puntos), control de secuencia (5 puntos). Respuesta y algoritmo estructurado (5 puntos).

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_IT2015_T2 Impuesto a herencia

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

Tema 2. (25 puntos) El 5 de junio de 2015, la Asamblea Nacional recibió un proyecto de ley en materia económica con calidad de urgente conocido como “Ley de Herencias”.

El proyecto reformaría el porcentaje del impuesto sobre las herencias, el cual es progresivo basado en equivalentes al salario básico (SB). Al Año 2015, el salario básico (SB) se estableció en $354,00.

Para el impuesto, considerando solo el caso por cada heredero directo, dado un valor de herencia y el número de herederos, se calcula el valor equivalente en salarios básicos (SB). Usando la tabla se determina el rango aplicable, para calcular el impuesto se suman: el “impuesto a fracción básica” y la “tarifa” multiplicada por el excedente; el resultado buscado es el valor convertido a dólares.

Elabore un algoritmo que dado el valor de herencia, el número de herederos y el salario básico en dólares ($), calcule el valor propuesto del impuesto en dólares.

“Artículo 4. Tarifas para liquidar este impuesto son: a. En caso de los beneficiarios sea legitimarios del causante o donante, según corresponda, se aplicará la siguiente tabla:”

Tabla expresada en número de Salarios Básicos (SB)
Rango Aplicable impuesto tarifa
Fracción Básica Exceso hasta fracción básica fracción excedente
100
100 200 2,50 %
200 400 2,5 7,50 %
400 800 17,5 17,50 %
800 1600 87,5 32,50 %
1600 en adelante 347,5 47,50 %
Ejemplo:
Valor de herencia ($) $ 200.000,00
Número de herederos: 2
Salario básico $ 354,00
Equivale (SB): (200.000,00/2) /354,00= 282,4859
rango aplicable (SB) 200 a 400
Fracción Excedente (SB) 282,4859-200= 82,4859
Impuesto en SB 2,5+82,4859*(7,50%)= 8,6864
Impuesto por heredero en ($) 8,6864*$354= $3.074,99

Nota: Se usa solo un escenario para la evaluación algorítmica tomando como referencia de cálculo un literal del artículo.

Referencias: Oficio No. MINFIN-DM-2015-0333, 05-jun-2015, Quito. www.eluniverso.com. Conozca el proyecto de ley para el impuesto a las herencias en Ecuador, 2015/06/05. http://www.eluniverso.com/sites/default/files/archivos/2015/06/rd_215732correa_215732_304958.pdf

Rúbrica: ingreso (5 puntos), transformar unidades (5 puntos), determinar parámetros por rangos (10 puntos), resultado (5 puntos)