2Eva_IT2016_T3 Funciones búsqueda y suma

2da Evaluación I Término 2016-2017. Agosto 30, 2016 /CCPG001

(Editado para tarea, se manteniene el objetivo de aprendizaje)

TEMA 3 (10 PUNTOS)
a) (2.5 puntos) Implemente una función buscar(listaAnidada, valor) que recibe una lista de listas y retorna verdadero o falso (True o False, 1 o 0) si valor existe en listaAnidada.

b) (2.5 puntos) Utilice la función buscar del literal a para determinar si un valor existe en una lista anidada y mostrar por pantalla ‘Valor si existe’ o ‘Valor no existe’.

c) (5 puntos) Implemente una función que sume o multiplique valores en una lista anidada.
Si se invoca a la función únicamente con la lista como argumento, la función debe retornar la suma de los valores.
Si se invoca a la función con un segundo argumento con valor ‘multiplicar’, la función debe retornar la multiplicación de los valores.
Para cualquier otro valor para el segundo argumento, la función deberá retornar -1.

Referencia: Archivo original 2Eva_IT2016.pdf

2Eva_IT2016_T2 Distancias entre ciudades de Ecuador

2da Evaluación I Término 2016-2017. Agosto 30, 2016 /CCPG001

(Editado para tarea, se manteniene el objetivo de aprendizaje)

TEMA 2. (60 PUNTOS) Las distancias entre ciudades del Ecuador conectadas directamente por una carretera están almacenadas en el archivo ‘Ecuador_Distancias.txt‘ con el siguiente formato:

Ciudad_de_Partida|Ciudad,Distancia|Ciudad,Distancia|...|Ciudad,Distancia

Por ejemplo:
Ambato|Azogues,280|Babahoyo,212|Pedernales,318
Azogues|Pedernales,555|Babahoyo,125
Pedernales|Ambato,318|Azogues,555
Babahoyo|Ambato,250
...

Implemente las siguientes funciones:

a) cargarDatos(nombreArchivo) que recibe el nombre del archivo como string y retorna el diccionario distancias con el siguiente formato:

distancias = {
 'Ambato':{'Azogues':280,'Babahoyo':212,'Pedernales':318},
 'Azogues':{'Pedernales':555,'Babahoyo':125},
 'Babahoyo':{'Ambato':250} 
 }

b) ciudadesCercanas(distancias, km) donde distancias es el diccionario generado en el literal a) y km es un valor entero positivo . La función retorna una lista de tuplas con todos los pares de ciudades conectadas directamente por una carretera que estén a una distancia menor o igual que el valor de km.
La tupla incluye los valores de ‘ciudad1’, ‘ciudad2’, ‘distancia’ que las separa. Por ejemplo:

>>> ciudadesCercanas(distancias,300) 
retorna: 
[('Ambato','Azogues',280), ('Ambato','Babahoyo',212), 
 ('Azogues','Babahoyo',125), ('Babahoyo','Ambato',250)]

c)  guardarCiudadesCercanas(distancias, listaKms) que recibe el diccionario de distancias y una lista con varias distancias en kilómetros, para generar un archivo con las ciudades separadas a máximo dicha distancia. Por ejemplo:

>>>guardarCiudadesCercanas(distancias, [300, 100, 250]) 
genera los siguientes tres archivos: 
ciudades300.txt, 
ciudades100.txt, 
ciudades250.txt.

El archivo ‘ciudades300.txt’ tendría el siguiente contenido:

Ambato,Azogues,280
Ambato,Babahoyo,212
Azogues,Babahoyo,125
Babahoyo,Ambato,250

Referencia: Archivo original 2Eva_IT2016.pdf

2Eva_IT2016_T1 Tendencias en Twitter

2da Evaluación I Término 2016-2017. Agosto 30, 2016 /CCPG001

(Editado para tarea, se manteniene el objetivo de aprendizaje)

Tema 1. (30 PUNTOS) Una tabla denominada tendencias, usada en forma de diccionario, contiene una fecha como clave y un conjunto de etiquetas que representan los tópicos o temas que fueron tendencia en la red social de Twitter.
Por ejemplo:

>>> tendencias = {
 '08-22-2016':{'#Rio2016', '#BSC', '#ECU'}, 
 '08-25-2016':{'#GYE', '#BRA'}, 
 '08-27-2016':{'#YoSoyEspol', '#GYE', '#BSC'}
 }

Implemente las siguientes funciones:

a) cuentaTopics(tendencias, listaFechas) que recibe el diccionario de tendencias y una lista de fechas en formato tipo texto (mm-dd-aaaa).
La función retorna un nuevo diccionario con la etiqueta o hashtag(#) como clave y el número de días que la etiqueta fue tendencia en los dias de la lista de fechas. Por ejemplo:

>>> cuentaTopics(tendencias,['08-22-2016', '08-25-2016', '08-27-2016']) 

{'#Rio2106':1, 
 '#GYE':2, 
 '#YoSoyEspol':1, 
 '#BSC':2, 
 '#ECU':1, 
 '#BRA':1}

b) reportaTrending(tendencias, listaFechas) que recibe los datos del literal anterior y muestre en pantalla:
b.1) Las etiquetas que fueron tendencia en todos los dias en listaFechas
b.2) Las etiquetas que fueron tendencia en al menos uno de los dias en listaFechas

c) reportaTrending(tendencias, fecha1, fecha2) que recibe el diccionario de tendencias y dos fechas (mm-dd-aaaa), para mostrar por pantalla las etiquetas que fueron tendencia o en fecha1 o en fecha2, pero no en las dos.

Referencia: Archivo original 2Eva_IT2016.pdf

2Eva_IIT2015_T4 biciespol, prestamos de bicicletas

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 4. (30 puntos). La universidad contará con el servicio de préstamo de bicicletas para el recorrido de la ciclovía del lago en el Campus Prosperina y como un medio alterno de transporte interno.bicicletas

Para usar el servicio, los estudiantes registran sus datos en un formulario de préstamo y responsabilidad. Las bicicletas se identifican por un código, el estado: libre (0), o el estudiante (matricula) y su ubicación.

Realice un programa que mediante el menú mostrado permita gestionar el préstamo de las bicicletas.

Menú:
1. Formulario de Préstamos
2. Registro de bicicletas
3. Préstamo
4. Devolución
5. Inventario de estado
6. Salir
formulario
matricula nombre carrera
201514522 Maria Logistica
201522347 Pedro Quimica
201537890 Ana Mecanica

Ubicación: 1 tecnologías, 2 ingenierías, 0 prestada

bicicletas
codigo estado ubicacion
22 0 1
23 201522347 0
24 0 1
25 201514522 0
26 0 2

Para el préstamo:

  • el estudiante escribe su matrícula y la ubicación del préstamo.
  • Se busca entre las bicicletas disponibles (estado 0)  en la ubicación para asignarla al estudiante y cambiar su estado.
  • Al devolver la bicicleta, se entrega el número de matrícula y
  • se actualiza su ubicación de entrega y estado.
  • El inventario de estado muestra cuántas bicicletas se encuentran prestadas y por ubicación.

Referencia: Espol tendrá ciclovía para traslado interno. www.eluniverso.com. 05-marzo-2015

Rúbrica: Menú (5 puntos). Manejo de registros (5 puntos). Gestión de préstamo (10 puntos) y devolución (5 puntos). Inventario (5 puntos).

2Eva_IIT2015_T3 Playaton limpieza de playas

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 3. (25 puntos) Para celebrar el Día Internacional de la Limpieza de Playas, el Ministerio del Ambiente (MAE) organizó el “Playatón” para 155 lugares con playas de la Costa y Galápagos, ríos, lagunas, esteros de la Sierra y Amazonía buscando la participación de 25 mil voluntarios.

En el evento del 2014,  Ecuador se ubicó en el sexto lugar entre 123 países en el mundo con: 16.573 inscritos, recolecta de 114.125 libras de residuos (ranking publicado por Ocean Conservancy).

Para gestionar el evento, realice un programa que permita:

a) Registrar los datos de los voluntarios según la tabla mostrada
b) Calcule cuántos voluntarios se registraron en cada playa y
c) Determine el total de residuos recolectados en cada playa, usando la función del tema anterior
d) Muestre el total de playas atendidas y el total recolectado en el evento.

voluntarios
cedula nombre playa recolectado(Kg)
1234 Juan 921(Playas) 5.4(Kg)
9874 Ana 138(Manta) 6.2(Kg)
Total playas atendidas: 2
Total recolectado: 11.6

Referencia: Playatón, el evento que prevé alcanzar 25 mil voluntarios para limpiar playas, ríos y lagos. 15/09/2015. www.eluniverso.com

#Playatón: Ecuador limpia los balnearios desde Galápagos hasta ríos y lagos del Oriente. 19 de Septiembre, 2015. www.eluniverso.com

Rúbrica: Ingreso (5 puntos), manejo de tabla (5 puntos), uso de función totalportipo (5 puntos),  resultados (5 puntos), algoritmo estructurado (5 puntos).

2Eva_IIT2015_T2 funcion totalportipo(tabla)

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 2. (25 puntos). Realice una función totalportipo(tabla) para recibir una tabla de tamaño nx2 tal como se muestra en el ejemplo.

La columna tipo contiene números enteros que pueden ser repetidos y la columna cantidad tiene un número real positivo.

La función cuenta las veces que aparece cada tipo, y el acumulado de cantidades por cada tipo, entregando la matriz mostrada en el ejemplo.

Ejemplo:

tabla
tipo cantidad
921 5.4
1308 6.2
806 7.1
1308 4.3
921 2.1
921 3.1
806 2.0

>>totalportipo(tabla)

tabulado
tipo cuenta acumulado
921 3 10.6
1308 2 10.5
806 2 9.1

Nota: los encabezados de la tabla son referenciales para el ejemplo
Rúbrica: Definir la función (5 puntos), determinar únicos (5 puntos), contar tipo (5 puntos), acumular cantidades (5 puntos), algoritmo estructurado (5 puntos)

2Eva_IIT2015_T1 función lipovocal(frase)

2da Evaluación II Término 2015 – 2016, Febrero 02, 2016 /ICM00794

Tema 1. (20 puntos). Un lipograma es un texto que se construye prescindiendo voluntariamente de alguna letra del abecedario.

Realice una función lipovocal(frase) que reciba una frase, retornando como respuesta la única vocal que falta; o la respuesta de ‘no cumple’ en caso que tenga más de una vocal faltante.

Ejemplo: 
>> frase='Con ojillos oscuros, luminosos, ambas tan blancas como dos palomas, cruzando prados y salvando lomas hoy las vi con dos pícaros gomosos.'
>> lipovocal(frase)
'e'
>> frase='murcielago'
>> lipovocal(frase)
'no cumple'

Rúbrica: Definir función (5 puntos), buscar faltante (5 puntos), validar frase (5 puntos), algoritmo estructurado (5 puntos).

2Eva_IT2015_T4 Movilidad de tortugas en región

2da Evaluación I Término 2015 – 2016, Septiembre 08, 2015 /ICM00794

Tema 4 (30 puntos). Ejecutado el plan para repoblar las tortugas en la isla del tema anterior, se requiere simular la movilidad de las tortugas.

En una situación inicial y usando la función del tema anterior se distribuye una tortuga por casilla.

Para una situación posterior se simula el movimiento de cada tortuga como:

  • se queda en la cuadrícula o
  • se mueve una casilla en diagonal.

Observe que ahora las casillas podrían albergar más de una tortuga o al moverse podrían salirse de la cuadrícula y luego no ser parte del conteo de movilidad.

Escriba un programa para simular el evento y realice los pasos para calcular y mostrar:

a) ¿Cuántas cuadrículas quedaron sin tortugas?
b) La cantidad de tortugas que salieron de la región de control.
c) Las coordenadas (fila y columna) de la matriz posterior en las que aumentó la cantidad de tortugas al compararla con la matriz inicial.

Ejemplo:
>>>
cuántas filas: 4
cuántas columnas: 6
tortugas por casilla: 1
Total de tortugas: 20
inicial
[[1 1 1 1 0 1]
 [1 1 1 1 1 1]
 [1 1 0 1 1 1]
 [1 0 1 0 1 1]]
posterior
[[0 1 2 0 0 0]
 [0 0 2 0 1 1]
 [1 1 0 1 1 0]
 [0 0 0 0 0 0]]
sin tortugas: 15
tortugas salieron: 9
Aumentó población en: [[0, 2], [1, 2]]
>>>

Referencia: Isla Santa Fe volverá a tener tortugas gigantes. 04-06-2015. http://www.expreso.ec/historico/isla-santa-fe-volvera-a-tener-tortugas-gigant-LQGR_8036008

Rúbrica: matriz inicial (5 puntos), mueve cada tortuga (5 puntos), revisar pérdida (5 puntos), literal a y b (5 puntos c/u), literal c (5 puntos)

2Eva_IT2015_T3 Distribuye tortugas en región

2da Evaluación I Término 2015 – 2016, Septiembre 08, 2015 /ICM00794

Tema 3 (20 puntos) La isla Santa Fe en el archipiélago de Galápagos, volverá a ser poblada por tortugas gigantes como parte del trabajo de conservación y restauración ecológica en el archipiélago.

El plan para repoblar se realizó con un total de jóvenes tortugas originarias de la isla y criadas en cautiverio.

Para medir la movilidad de las tortugas en una región de control rectangular con nxm Km se la ha dividido en cuadrículas de 1×1 Km.

Realice una función distribuye(n, m, q, total) que en una matriz de tamaño nxm distribuya q tortugas como máximo en cada casilla con posición aleatoria. La suma de los elementos de la matriz no debe ser mayor que el total de tortugas criadas en cautiverio.

>>distribuye(4,6,5,20)
matriz
0 0 0 0 0 0
0 0 1 5 0 0
2 1 4 0 0 0
5 0 2 0 0 0

Rúbrica: Definir función (5 puntos), uso de aleatorios (5 puntos), control de casillas y total (5 puntos c/u).

2Eva_IT2015_T2 Diccionario electrónico

2da Evaluación I Término 2015 – 2016, Septiembre 08, 2015 /ICM00794

Tema 2 (35 puntos). Un diccionario electrónico para estudiantes principiantes de español-quichua usará una lista de palabras entre ambos idiomas, semejante al tema anterior.

https://www.turismo.gob.ec/
https://www.turismo.gob.ec/

El estudiante creará su diccionario mientras aprende nuevas palabras, las que añadirá a su diccionario y lo guardará en un archivo.

Se usarán traducciones simples de una palabra o una frase sin considerar la gramática, tan solo sustituyendo la palabra traducida si se encuentra en su diccionario.

Al traducir, para indicar el modo se usará un indicador numérico:

(1) quichua a español y
(2) español a quichua.

Un Ejemplo para traducir una frase en modo (2), se tiene:
 Español: 'ciencia y tecnología al servicio del país'
 Quichua: 'ciencia pash iyayku man mañay pak mamallakta'

Escriba un programa con el menú presentado para ejecutar las tareas descritas.

Menú:
1. Traducir palabras
2. Traducir una frase
3. Añadir palabras al diccionario
4. Guardar archivo del diccionario
5. Abrir archivo del diccionario
6. Salir

Nota: Use la función del tema anterior. Considere que la frase no tiene signos de puntuación

Rúbrica: Menú (5 puntos), caso 3, 4 y 5 (5 puntos c/u), usar función (5 puntos), separar palabras (3 puntos), traducir frase (7 puntos)