1Eva_IT2017_T1 Palabras puntaje

1ra Evaluación I Término 2017-2018. Julio 01, 2017 /CCPG001 – FIEC

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

TEMA 1. (40 PUNTOS) En el juego de tablero «Scrabble», cuando el jugador forma una palabra, acumula los puntos de los equivalentes para cada letra .

Una palabra se puede crear cruzando otra palabra y usando una letra compartida que  recibe el doble de puntos.

alfabeto = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
equivale = [1,3,3,2,1,4,2,4,1,9,5,1,3,1,1,3,10,1,1,1,1,4,4,9,4,10]

Realice un programa en que el jugador ingrese varias palabras separadas por comas (‘,‘),  determine el puntaje correspondiente a cada palabra y muestre cuál es la  palabra con mayor puntaje.

Ejemplo: 
>>> 
Analizar: CAS*A*,S*ASTR*E*,R*EY*,A*ZOTE*
CAS*A* 8
S*ASTR*E* 9
R*EY* 11
A*ZOTE* 16
Ganador: A*ZOTE* 16

Nota: Para marcar una letra compartida se añade un símbolo (‘*‘) , suponga que todas las palabras ingresadas terminan con una letra compartida. Todas las letras deben ser mayúsculas, si se ingresa una minúscula será ignorada para el puntaje.

Referencia: Archivo original 1Eva_IT2017.pdf


Rúbrica para tarea: (sobre 10 puntos)

  • algoritmo para buscar posición de letra en alfabeto, no usar palabra.find(letra) (2 punto)
  • determinar puntos por cada letra (2 punto)
  • unificar mayúsculas-minúsculas para comparar ( 1 punto)
  • considerar ‘*’ para doble puntaje por letra (2 punto)
  • analizar palabra letra por letra (1 punto)
  • analizar cada palabra de la frase (1 punto)
  • separar palabras de frase usando “coma” (1 punto)
  • algoritmo estructurado: Inicio, ingreso, procedimiento, salida, fin. Si no es estructurado, PUNTOS = PUNTOS/5

 

1Eva_IT2017_T2 suscriptores de youtubers

1ra Evaluación I Término 2017-2018. Julio 01, 2017. CCPG001 – FIEC

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

Tema 2 . (50 puntos)
Para analizar la popularidad de varios youtubers de España, Ecuador y México, se obtuvieron datos del sitio «SocialBlade» en varias listas y una matriz:

 

espana  = ['elrubiosOMG','VEGETTA777', '...']
ecuador = ['enchufetvLIVE','Kreizivoy','...']
mexico  = ['Yuya','Werevertumorro','...']

En la matriz, para cada youtuber (fila) le corresponde los datos de (columnas): suscriptores, reproducciones de videos, ganancias mensuales y ganancias anuales.

matriz = np.array([
    [  24771906, 5477807839,      21900,     262800],
    [ 184551280, 7046108694,      45500,     546000],
    [     76493,     798122,         36,        430],
    [    133538,   21104851,        156,       1900],
    [  18554394, 1967543913,       6700,      80000],
    [  12548964, 2034702069,      12200,      12200],
    [...]
    ])

Considere las siguientes métricas para cada youtuber:

popularidad = \text{numero de suscriptores} rentabilidad = \frac{\text{ganancias anuales}}{\text{número de suscriptores}}

Realice un programa para encontrar:
1. El youtuber con mayor rentabilidad y el país al que pertenece
2. Los youtubers con mayor rentabilidad de cada país
3. ¿Cuántos youtubers de España tienen más suscriptores que el youtuber mas popular de Ecuador y México?
4. Número promedio de reproducciones de los youtubers con más de un millón de suscriptores
5. ¿Cuántos youtubers de Ecuador hay en cada categoría? Las categorías son:

rango de rentabilidad categoría
0.0 a 0.30 3
0.31 a 0.60 2
>=0.61 1

6.  El país que generó más ganancias anuales y el país que generó menos ganancias anuales. Muestre el mensaje siguiente reemplazando los datos apropiadamente

El país X generó  Z% mas de ganancias que el país Y

Para calcular el porcentaje utilice la siguiente fórmula:
GX: ganancia anuales del país X
GY: ganancias anuales del país Y

porcentaje = \frac{GX-GY}{GY} * 100

Nota: Para los numerales del 1 al 5, el código solo debe realizar el procedimiento para generar los valores pedidos y almacenarlos en variables, no se requiere mostrar datos por pantalla.

Referencias: http://socialblade.com/youtube

Archivo original 1Eva_IT2017.pdf

1Eva_IT2017_T3 Prueba de escritorio, listas

1ra Evaluación I Término 2017-2018. Julio 01, 2017 /CCPG001 – FIEC

TEMA 3 (10 PUNTOS)
a) Dada la lista

L = [12,9,1,3,2,10,20,5, ...]

Genere tres posiciones aleatorias de tal manera que los valores correspondientes sumen al menos 20. Al final muestre la suma de los tres valores seleccionados aleatoriamente.

b) Usando la siguiente lista:

stars = ['Potter', 'Ron Weasley',
         'Dombledore','Hermione Greanger',
         'Hagrid','Voldemort']

¿que mostrarían las siguientes instrucciones?:

print(stars[-4,-2])

print(stars[3][0:stars[3].find(' ')] + stars[1][3:])

Referencia: Archivo original 1Eva_IT2017.pdf

1Eva_IIT2016_T4 Prueba de escritorio, cadenas

1ra Evaluación II Término 2016-2017. Diciembre 6, 2016. CCPG001

TEMA 4 (10 PUNTOS)
a. (5 puntos) Dada la secuencia de instrucciones de la derecha, indique lo que se muestra por pantalla. Justifique su respuesta.

palabra = 'aabbbccdefggh'
final   = ''
actual  = ''

for letra in palabra:
    if letra != actual:
        final = final + letra
        actual = letra

print(final)

b. (5 puntos) Analice las instrucciones en cada sección y escriba los resultados a obtener.

for i in range(1, 10):
    print(str(i) * i)
for i in range(1, 10):
    for j in range(i):
        print(i, end='')
    print()

Referencia: Archivo original 1raEvaIIT2016.pdf

1Eva_IIT2016_T3 Total de ventas por tienda

1ra Evaluación II Término 2016-2017. Diciembre 6, 2016. CCPG001 – FIEC

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

TEMA 3. (24 PUNTOS) Se dispone del registro total por dia de las transacciones de las tiendas deportivas, Marathon Sports en Guayaquil. Cada registro comprende un texto que representa los valores de:

sector|tienda|categoria|producto|totalVentas|dia-mes-año
Ejemplo:
transacciones = [ 
'centro|Bahia|futbol|zapatos-Adidas|290.78|25-03-2013', 
'centro|Malecon2000|natacion|chaleco-Fins|110.92|01-02-2014', 
'sur|MallDelSur|natacion|gafasPiscina-Swingo|90.07|13-05-2014', 
'centro|Bahia|natacion|zapatos-Nike|315.72|13-12-2015',
'norte|CityMall|natacion|gafasPiscina-Adidas|310.19|31-05-2016', 
'...', 
 ]

Escriba un programa que usando los datos de transacciones encuentre:

  1. Los nombres de las tiendas que pertenecen a cada sector (sur, centro, norte). Considere usar una lista por cada sector con nombres de tiendas no repetidos.
  2. El total de ventas de los productos ‘Adidas’ en el mes de mayo (’05’) del año que el usuario requiera.

Nota: Considere desarrollar el tema de forma independiente del anterior.

Referencia: Archivo original 1raEvaIIT2016.pdf

1Eva_IIT2016_T2 Ventas por tienda deportiva

1ra Evaluación II Término 2016-2017. Diciembre 6, 2016. CCPG001 – FIEC

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

TEMA 2. (42 PUNTOS) Una cadena de tiendas deportivas, Marathon Sports,  ofrece una amplia gama de productos cuyo detalle de ventas[tienda,productos] se registran en una matriz.

Ejemplo:
ventas=numpy.array(
       [[1,2,3,4,5,6],
        [7,8,9,1,2,3],
        [4,5,6,7,8,9],
        [1,2,3,4,5,6],
        [7,8,9,1,2,3],
        [4,5,6,7,8,9],
        [1,2,3,4,5,6],
        [7,8,9,1,2,3],
        [4,5,6,7,8,9]])

Las tiendas, representadas en las filas de la matriz, se agrupan en tres sectores de la ciudad de Guayaquil: sur, centro y norte. Los nombres de las tiendas se guardan en el siguiente orden:

sur = ['LosEsteros', 'Pradera', 'RiocentroSur', '...']
centro = ['Bahia', 'Malecon2000', 'MaleconSalado', '...']
norte = ['MallDelSol', 'CityMall', 'RiocentroNorte', '...']

Los productos representados en las columnas de la matriz pertenecen a dos principales categorías: Fútbol y Natación. Cada tipo y marca de producto se encuentran separados por un guión(-)

futbol = ['zapatos-Adidas', 'zapatos-Nike', 'rodilleras-Reebok', '...']
natacion = ['short-Nike', 'gafasPiscina-Swingo', 'aletas-Speedo', '...']

Si dispone de la matriz con datos, realice un programa para encontrar las respuestas a las siguientes preguntas:

a. La categoría que tiene mayor cantidad de ventas y su valor.

Ejemplo:
a. Si ambas tuvieran la misma cantidad de ventas, muestre:
'Iguales: 12348.37'
b. Si fútbol tiene más ventas muestre: 
'Fútbol tiene más ventas: 15000.95' 

b. La tienda que más ha vendido.

Ejemplo: 'Bahía, con un monto de 8238.93'

c. La tienda que más ha vendido en el norte.

Ejemplo: 'CityMall con 1345.90'

d. El artículo más vendido en el sur.

Ejemplo: 'zapatos-Nike'

e. El número de productos distintos que se han vendido en una tienda dada por el usuario y cuáles son esos productos. Si la tienda no existiera, debe darle un mensaje al usuario: “Tienda no existente”.

Por ejemplo: 
Tienda: Malecon Salado 
Productos distintos vendidos:3 
Productos: zapatos-Adidas, zapatos-Nike, gafasPiscina-Swingo

f. El porcentaje de tiendas en el cual se han vendido productos de natación.
Ayuda: Busque el número de tiendas en el cual se han vendido productos de natación y divida esa cantidad para el total de tiendas, esa división le dará el porcentaje. Porcentaje: 54%

g. El promedio de ventas de los productos de Fútbol.

Por ejemplo:
Promedio de ventas de productos de fútbol: 18218.21

Referencia: Archivo original 1raEvaIIT2016.pdf

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, cadenas

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) teletrabajo imagen

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 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:

tabla sitios web de trabajo y ocio

Referencia: Archivo original 1raEvaIT2016.pdf


Nómadas digitales