Categoría: Evaluaciones

Ejercicios de examen

  • 2Eva_IT2017_T2 Plantas energía eléctrica

    2da Evaluación I Término 2017-2018. Septiembre 2, 2017 /CCPG001

    TEMA 2. (50 PUNTOS) Para administrar la nueva matriz energética del Ecuador, se dispone de un diccionario con la información de las plantas de energía y las ciudades que atienden cada una.

    Cada ciudad tiene: una tupla con los consumos mensuales (12) del año en megavatios-hora (MWh) y la tarifa de consumo en dólares por megavatio-hora (MWh) que le cobra la planta eléctrica.

    Una ciudad puede estar servida por más de una planta eléctrica. No todas las ciudades son servidas por todas las plantas eléctricas.

    consumo_energia = {
        'Coca Codo Sinclair': {
            'Quito': { 'consumos':(400, 432, …, 213),'tarifa': 65},
            'Guayaquil': { 'consumos': (120, 55, 32, …, 70),'tarifa': 84},
            ...
            },
        'Sopladora': {
            'Guayaquil':{ 'consumos': (310, 220, 321, …, 200),'tarifa':55},
            'Quito': { 'consumos': (400, 432, …, 587),'tarifa': 79},
            'Loja': { 'consumos': (50, 32, 32, …, 40),'tarifa': 32},
            ...
            },
        ...
        }
    

    Además, dispone del siguiente diccionario con información de ciudad por región :

    informacion = {
        'costa': ('Guayaquil', 'Manta', …),
        'sierra': ('Quito', 'Ambato', …),
        'oriente': ('Tena', 'Nueva Loja', …),
        }
    

    Implemente lo siguiente:

    1.  Una función total_anual(consumo_energia, planta, ciudad) que recibe el diccionario consumo_energia, el nombre de una planta y el nombre de una ciudad. La función debe calcular y retornar el total anual de megavatios-hora servido por planta a ciudad. (7 puntos)
    2.  Una función total_plantas_ciudad(consumo_energia, ciudad) que recibe el diccionario consumo_energia y el nombre de una ciudad. La función debe devolver un diccionario cuyas claves corresponden a los nombres de las plantas generadoras que proveen energía a ciudad y los valores corresponden al total anual de megavatios-hora servido por cada planta a ciudad. (13 puntos)
    3.  Una función megavatios_hora(consumo_energia, informacion) que recibe el diccionario consumo_energia y el diccionario informacion . La función retorna el total anual de megavatios-hora consumido por todas las ciudades de la región COSTA. (15 puntos)
    4. Una función facturacion(consumo_energia) que recibe el diccionario consumo_energia y genera un archivo con la facturación total en dólares de los seis primeros meses de cada planta generadora. El archivo resultante se llamará <code?'facturacion.txt' y tendrá la siguiente estructura: (15 puntos)
    Planta,enero,febrero,marzo,...,junio
    Coca Codo Sinclair,2903,2145,3010,...,2945
    Sopladora,3102,3234,3223,...,3417
    …
    

    Referencia: Archivo Original 2Eva_IT2017.pdf

  • 2Eva_IT2017_T3 Prueba de escritorio - cadenas, archivos, listas

    2da Evaluación I Término 2017-2018. Septiembre 2, 2017 /CCPG001

    TEMA 3 (10 PUNTOS)
    a. Considere:

    archivo = open( 'datos.txt' , 'w' )
    archivo.write( 'Días de la semana\n' )
    archivo.close()
    
    lista = [ 'lunes' , '\n' , 'martes' , '\n' ,
              'miércoles' , 'jueves' , 'viernes' ]
    
    archivo = open ( 'datos.txt' , 'a+' )
    archivo.writelines( lista )
    archivo.close()
    

    ¿Cuántas líneas de texto tiene el archivo 'datos.txt' al final del programa y con qué contenido? Justifique su respuesta. (5 puntos)

    b. Muestre la salida por pantalla la ejecución del siguiente código y justifique su respuesta: (5 puntos)

    a = set([4,5,9,7,1])
    b = set([6,3,8,2,10])
    c = set([1,4,5])
    
    d = set([len(a), len(c), len(b)])
    
    f = (a | b) & d
    g = (b - c) | d
    h = d ^ a
    
    print(f)
    print(g)
    print(h)
    

    Referencia: Archivo Original 2Eva_IT2017.pdf

  • 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_IIT2015~T4 Prueba de escritorio, listas

    1ra Evaluación II Término 2015-2016, Marzo 7, 2016 /CCPG1001

    Tema 4. (10%) Analice el código fuente de los programas que se muestran a continuación. Seleccione la respuesta correcta y justifique brevemente su respuesta.

    4a. Determine la salida por pantalla del siguiente código:

    A = [12,23,14,50,30]
    for i in range(0, len(A)):
        if A[i] % 2 == 0:
            A.pop(i)
    print(A)
    

    a) Error: El símbolo pop no ha sido definido
    b) Error: Índice de la lista fuera de rango
    c) [23]d)[23, 50]

    4b. Determine la salida por pantalla del siguiente código:

    a = [5,4,3,2,1,0]
    print(a[0], a[a[0]], a[a[-1]], a[a[a[a[2]+1]]])
    

    a) 5 5 5 5
    b) 5 0 5 1
    c) 5 4 1 4
    d) Ninguna de las anteriores

  • 1Eva_IIT2015~T3 Recorrido turístico en ciudad

    1ra Evaluación II Término 2015-2016, Marzo 7, 2016 /CCPG1001

    Tema3. (45%) El programa “Conoce Guayaquil” le ayudará a escoger una opción para recorrer los principales atractivos turísticos de la ciudad durante un día.

    Hay 8 actividades disponibles, pero solo es posible realizar 4 de ellas durante el día.

    Código Actividad Tiempo requerido en horas Costo en $
    1 Malecón 2000 2 6.50
    2 Las Peñas 3 6
    3 BarcoPirata Morgan 2 12.25
    4 Recorrido Panorámico 2 12
    5 Museos 3 10
    6 Parque Histórico 4 10
    7 Mall del Sol 3 6
    8 IMAX 3 8.15

    Para iniciar el programa se debe especificar una colección de listas llamada catalogo, que contenga la información de cada actividad: nombre, tiempo y costo.

    Luego, el programadebe seleccionar aleatoriamente 4 actividades para formar un tour, que es una lista con los códigos de 4 actividades diferentes a realizarse.

    El tour debe satisfacer las siguientes especificaciones:

    • El recorrido deberá empezar exactamente a las 10:00
    • El tiempo total no debe ser mayor a 12 horas
    • La visita al Parque Histórico debe iniciarse máximo a las 14:00 porque cierran a las 18:00
    • El recorrido por el Río Guayas en el Pirata Morgan debe iniciarse a partir de las 14:00
    • La función de cine en el IMAX puede ser a las 12:00, 15:00 ó 18:00
    • Al museo se puede entrar hasta las 18:00

    Las demás actividades pueden realizarse en cualquier horario

    Se requiere implementar:

    1. La función generarCatalogo() que llena una lista con el nombre, tiempo y costo de todas las actividades disponibles, y la retorna.
    2. La función generarTour() que llena una lista con 4 números aleatorios diferentes entre 1 y 8, correspondientes a las actividades a realizarse.
    3. La función duracionActividad() que recibe el catalogo y el código que se desea consultar, devolviendo la duración de la actividad a la que pertenece el código dado.
    4. La función inicioActividad() que recibe el código de la actividad y la hora actual (en formato hh) y devuelva la hora de inicio más cercana para la actividad especificada. Si dado el código y la horaactual no es posible iniciar la actividad requerida,retorne -1.
    5. La función verificarTour() que recibe el catálogo y el tour generado y determina si es posible realizar esa combinación de actividadesde acuerdo a las condiciones explicadas arriba.
    6. La función calcularCostoTotal() que recibe el catálogo y el tour generado, y devuelve el costo total de las actividades a realizar.
    7. La función calcularTiempoTotal() que recibe el catálogo, el tour generado y devuelve la cantidad de horas utilizadas para las 4 actividades.
    8. Un programa que use las funciones implementadas anteriormente para:
      a. Generar el catálogo
      b. Generar un tour válido
      c. Mostrarpor pantalla el tour generado: sus actividades, horarios, tiempo total de recorrido y costo total, por ejemplo:
    10:00 Visita a Museos
    14:00 Río Guayas en el Pirata Morgan
    16:00 Recorrido Panorámico
    18:00 Compras en Mall del Sol
    
    El tour comenzaráa las 10:00 horas y 
    terminará a las 21:00 horas.
    Tiempo total de recorrido: 11 horas
    Costo total: $ 40.25

    Elaborado por C. Vaca, C. Falcones, I. Carrera, J. Magallanes, M. Calderón, E. Cruz y R. Bonilla

  • 1Eva_IIT2015~T2 Dibujar reloj de arena

    1ra Evaluación II Término 2015-2016, Marzo 7, 2016 /CCPG1001

    Tema 2. (20 puntos) Se requiere implementar la función dibujarReloj(n,c) que recibe como parámetros un número n y un caracter c, para dibujar un reloj de arena como se muestra en el ejemplo:

    Si n = 7 y c = ‘.’, se dibujará:
    *******
     *...*
      *.*
       *
      * *
     *   *
    *******

    Rúbrica: definición de función (5 puntos), delimitación de cuadrícula (5 puntos), relleno de cuadrícula (10 puntos)

  • 1Eva_IIT2015~T1 Número Krapekar

    1ra Evaluación II Término 2015-2016, Marzo 7, 2016 /CCPG1001

    Tema 1. (25 puntos) Un número Krapekar es todo entero no negativo n que cuando se eleva al cuadrado, el número resultante puede ser dividido en 2 partes a y b donde a + b = n.

    Por ejemplo, 9 y 297 son números Krapekar:

    92 = 81
         8 + 1 = 9
    
    2972 = 88209
           8820+ 9 = 8829
           882+ 09 = 891
           88 + 209 = 297

    En cambio 143 no es un número Krapekar:

    1432 = 20449
           2 + 0449 = 551
           20 + 449 = 469
           204 + 49 = 253
           2044 + 9 = 2053

    Se requiere implementar la función esKrapekar(unnumero), que recibe como parámetro un número entero no negativo y determina si el número es Krapekar o no.

    Rúbrica: definición de la función (5 puntos), verificación del número entero no negativo (5 puntos), proceso del número (10 puntos), respuesta de la función (5 puntos)


    Referencia: ¿Es el 6174 el número más misterioso del mundo? Derivando. Youtube

  • 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