Autor: Edison Del Rosario

  • 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

  • s1Eva_IT2017_T2 suscriptores de youtubers

    Ejercicio: 1Eva_IT2017_T2 suscriptores de youtubers

    Propuesta de solución en Python, procedimiento desarrollado por literal

    Algoritmo en Python

    # CCPG1001 Fundamentos de Programación FIEC-ESPOL
    # 1Eva_IT2017_T2 suscriptores de youtubers
    import numpy as np
    
    # INGRESO
    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]])
    
    espana  = ['elrubiosOMG','VEGETTA777']
    ecuador = ['enchufetvLIVE','Kreizivoy']
    mexico  = ['Yuya','Werevertumorro']
    
    # PROCEDIMIENTO
    
    # Literal a) ********
    tamano = np.shape(matriz)
    n = tamano[0]
    m = tamano[1]
    
    rentabilidad = np.zeros(n,dtype=float)
    f = 0
    while not(f>=n):
        rentabilidad[f] = matriz[f,m-1]/matriz[f,0]
        f = f + 1
    
    cualganamas = np.argmax(rentabilidad)
    
    todos = espana + ecuador + mexico
    quienganamas = todos[cualganamas]
    
    dondees = 'español'
    if quienganamas in ecuador:
        dondees = 'ecuatoriano'
    if quienganamas in mexico:
        dondees = 'mexicano'
    
    # SALIDA
    print('literal a: ')
    print(rentabilidad)
    print('el mas rentable es: ',cualganamas)
    print('quien es mas rentable: ',quienganamas)
    print('del pais: ', dondees)
    
    
    # Literal b: ********
    # Solo trabajo con espana
    nsp = len(espana)
    datoespana = matriz[0:nsp,:]
    rentasp = datoespana[:,m-1]/datoespana[:,0]
    cualsp  = np.argmax(rentasp)
    quiensp = espana[cualsp]
    
    # SALIDA b)
    print('para espana: ')
    print(cualsp)
    print(quiensp)
    
    # literal c) ********
    ecmx=matriz[nsp:,0]
    popecmx    = np.argmax(ecmx)
    cuantoecmx = np.max(ecmx)
    
    ganan = 0
    suscritosp = matriz[0:nsp,0]
    f = 0
    while not(f>=nsp):
        if (suscritosp[f]>cuantoecmx):
            ganan = ganan + 1
        f = f + 1
        
    # SALIDA c)
    print('tienen mas en espana: ',ganan)
    
    # literal d) ********
    reproduce = matriz[:,1]
    cuantosrp = 0
    totalrp = 0
    f = 0
    while not(f>=n):
        if (reproduce[f]>1000000):
            cuantosrp = cuantosrp+1
            totalrp   = totalrp + reproduce[f]
        f = f + 1
    promrp = totalrp/cuantosrp
    
    # SALIDA d)
    print('promedio mas un millon: ',promrp)
    a=len(espana)
    rentaec = rentabilidad[a:a+len(ecuador)]
    

    resultado del algoritmo

    literal a: 
    [0.01060879 0.00295853 0.00562143 0.01422816 0.00431165 0.00097219]
    el mas rentable es:  3
    quien es mas rentable:  Kreizivoy
    del pais:  ecuatoriano
    para espana: 
    0
    elrubiosOMG
    tienen mas en espana:  2
    promedio mas un millon:  3309453473.2
    >>> 
    
  • 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

  • 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