1Eva_IIT2016_T1 Analiza una frase por vocales y consonantes

1ra Evaluación II Término 2016-2017. Diciembre 6, 2016. CCPG001 – FIEC
(Editado para tarea, se mantiene el objetivo de aprendizaje)

Tema 1 (24 puntos) Las aplicaciones para análisis de texto en internet (robots) siempre están trabajando para mejorar la eficacia del reconocimiento lingüístico. Para esta misión, los robots investigan el alfabeto teniendo como referencia:

vocales = 'AEIOU'
consonantes = 'BCDFGHJKLMNPQRSTVWXYZ'

Escriba un programa que dado un bloque de texto con palabras separadas por un espacio (‘ ‘) o un punto (‘.’), encuentre el número de palabras que tienen la misma cantidad de vocales y consonantes.

Ejemplos:

Texto: Resultado
Mi nombre eS 2
Hola mundo 1
H0la mundo 0
Algunas Palabras pArA contar en un programa con algo de Python 5
Perro.gato.raton.pajaro.Humano 3

Considere que el texto:
– No contiene vocales con tildes.
– NO se encuentran dos o más espacios seguidos o combinaciones de espacios y puntos.
– Las mayúsculas y minúsculas no afectarán el resultado
– Una palabra que contenga números no se la analiza.

Referencia: Archivo original 1raEvaIIT2016.pdf


Rúbrica como tarea: (sobre 10 puntos)

  • analizar una letra, determinar si es  vocal o consonante (2 puntos)
  • contar vocales, contar consonantes (2 puntos)
  • unificar mayúsculas-minúsculas para comparar ( 1 punto)
  • separar palabras de frase usando «espacio» o «punto» (1 punto)
  • seleccionar palabras para analizar (2 puntos)
  • contar palabras con igual número de vocales y consonantes (2 puntos)
  • algoritmo estructurado: Inicio, ingreso, procedimiento, salida, fin. Si no es estructurado, PUNTOS = PUNTOS/5

 

1Eva_IT2016_T4 Prueba de escritorio

1ra Evaluación I Término 2016-2017. Junio 28, 2016 /CCPG001 – FIEC

Tema 4. (10 puntos)
a. (5 puntos) Dada la secuencia de instrucciones mostrada, realice la prueba de escritorio para la variables: cuantos, donde, lista:

mensaje = 'No basta saber, se debe también aplicar. No es suficiente querer, se debe también hacer. Goethe(1749­-1832)'
largo=len(mensaje)
cual='be'
cuantos=0
lista=[]

donde=-1 
i=0 
while (i<largo): 
    donde=mensaje[i:].find(cual)
    if (donde>0):
        cuantos=cuantos+1
        i=i+donde+1
        lista.append(donde)
    else:
        i=i+1   

print (cuantos)
print (lista)
cuantos donde lista

b. (5 puntos) ¿Cuál es el resultado luego de ejecutar el siguiente código? Justifique su respuesta mostrando cómo cambian de valor de i  y listas2 durante la ejecución del código.

lista = [5,3,2,6,7,34,1,23,5,6]
lista2 = []

for i in range(1, len(lista)):
    if (lista[i-1] <= lista[i]) and (lista[i] >= lista[i+1]):
        lista2.append(lista[i])

print(lista2)

A. [34, 23]
B. [3, 34, 23]
C. [3, 6, 7, 34, 23]
D. IndexError: list index out of range

Referencia: Archivo original 1raEvaIT2016.pdf

1Eva_IT2016_T3 Tiempos de navegación internet

1ra Evaluación I Término 2016-2017. Junio 28, 2016 /CCPG001 – FIEC

TEMA 3 . (40  puntos) Se dispone de un arreglo de NumPy que representa el tiempo[empleado, sitio] de navegación en Internet de una empresa expresada en un arreglo de nxm. El arreglo es similar al resultado del tema anterior, además también se dispone de las listas de los empleados y sitios de trabajo.

La empresa requiere elaborar un reporte de las visitas a internet que incluya los siguientes datos:

a. Tiempo total de uso de Internet.
b. Tiempo total de uso de Internet  por empleado
c. Tiempo total de visita  por sitio
d. Tiempo total de visita  por sitio de trabajo
e. Tiempo total de visita  por sitios que no son de trabajo
f. El nombre del empleado que más tiempo ha pasado en sitios que no son de trabajo
g. El sitio de trabajo que más tiempo ha sido usado
h. Si el proveedor de Internet cobra un valor de 5 centavos por minuto de visita alos sitios de trabajo y el doble para los otros sitios. Calcule el total a  pagar en dólares.
i. ¿Cuántos empleados han visitado cada sitio ?

Desarrolle un programa en Python que calcule los resultados a las preguntas anteriores y muestre por pantalla las respuestas.

Referencia: Archivo original 1raEvaIT2016.pdf

1Eva_IT2016_T2 historial de visitas web

1ra Evaluación I Término 2016-2017. Junio 28, 2016 /CCPG001 – FIEC

TEMA 2. (30 PUNTOS)

Una empresa registra los sitios de internet visitados por sus empleados y los minutos de navegación en una lista de tamaño t semejante a la mostrada.

Cada registro se almacena usando una cadena con el formato:

visitados = [ 'maria2|www.facebook.com|160',
  'xavi7|www.eluniverso.com|50',
  'jose15|www.sri.gob.ec|30',
  'maria2|www.twitter.com|30',
  'xavi7|www.inec.gob.ec|10',
  'maria2|www.espol.edu.ec|50',
  'jose15|www.sri.gob.ec|120',
  'xavi7|www.sri.gob.ec|20', 
  'maria2|www.twitter.com|20',
  '...' ]

Para analizar los datos, la empresa dispone de las listas para n empleados p sitios de trabajo:

empleados = ['maria2', 'jose15', 'xavi7', '...']
trabajo = [ 
  'www.espol.edu.ec',
  'www.inec.gob.ec', 
  'www.sri.gob.ec', 
   '...']

Con las listas visitados, empleados y trabajo descritas, elabore un programa en Python para obtener los siguientes reportes:

a. Genere una lista con los sitios que no son de trabajo que han sido visitados por los empleados. La lista obtenida debe contener los q los elementos sin repetir.

b. Tabule el tiempo total de visita para cada empleado (n) y cada sitio visitado (m=p+q) en un arreglo de NumPy de dos dimensiones que represente lo mostrado en el ejemplo:

ccpg001_tablatrabajo

Referencia: Archivo original 1raEvaIT2016.pdf


Nómadas digitales

1Eva_IT2016_T1 Buscar sitios web de universidades

1ra Evaluación I Término 2016-2017. Junio 28, 2016 /CCPG001 – FIEC

Tema 1 (20 puntos) La lista mostrrada en el ejemplo contiene los URLs de diferentes sitios Web que han sido visitados.

lista = ["www.espol.edu.ec", 
  "www.google.com", 
  "www.sri.gob.ec", 
  "www.fiec.espol.edu.ec", 
  "www.uess.edu.ec", 
  "www.FIEC.espol.edu.ec", 
  "www.fict.espol.edu.ec", 
  "www.fcnm.Espol.edu.ec", 
  "www.ucsg.edu.ec", 
  "www.Stanford.edu", 
  "www.harvard.edu", 
  "www.stanford.edu", 
  "www.UCSG.edu.ec", 
  "www.google.com.ec", 
  "www.facebook.com", 
  "www.opensource.org", 
  "www.educacionbc.edu.mx",
  "..."]

Los URLs normalmente se repiten y corresponden algunas veces a universidades de Ecuador y otros países.
Note que los URLs no diferencian entre mayúsculas y minúsculas.
Por ejemplo: www.espol.edu.ec y www.ESPOL.edu.ec corresponden al mismo sitio.

Escriba un programa en Python que dada una lista realice lo siguiente:

a. Muestre los nombres o siglas de las universidades que aparecen en la lista (sin repetir).

Del ejemplo mostrado, la salida sería: 
En la lista aparecen 6 universidades:
1. ESPOL
2. UESS
3. UCSG
4. STANFORD
5. HARVARD
6. EDUCACIONBC

b. Muestre la cantidad y los nombres/siglas de universidades de Ecuador que aparecen en la lista.

Del ejemplo mostrado, la salida sería: 
En la lista aparecen 3 universidades de Ecuador:
1. ESPOL
2. UESS
3. UCSG

c. Dado un usuario y el nombre o sigla de la universidad, imprima el correo electrónico asignado. Por ejemplo:

Ingrese el usuario: rafael.bonilla
Ingrese el nombre/sigla de la universidad: UCSG 
El correo electrónico del usuario es: rafael.bonilla@ucsg.edu.ec

Referencia: Archivo original 1raEvaIT2016.pdf

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)