Categoría: Evaluaciones

Ejercicios de examen

  • 2Eva_IT2015~T4 Prueba de escritorio, diccionario

    2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

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

    a. ¿Cuál será la salida del siguiente programa?

    confusion = {}
    confusion[1] = 1
    confusion['1'] = 2
    confusion[1] += 1
    
    suma = 0
    for k in confusion:
        suma += confusion[k]
    
    print (suma)
    

    A. 1
    B. 2
    C. 3
    D. 4

    b. ¿Cuál será la salida del siguiente programa?

    def addItem(listaParam):
        listaParam += [1]
    
    milista = [1,2,3,4]
    addItem(milista)
    print(len(milista))
    

    A. 1
    B. 4
    C. 5
    D. 8

  • 2Eva_IT2015~T3 Números en matriz de puntos

    2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 3. (40 puntos) Dado un archivo con una serie de caracteres y los desplazamientos necesarios para ubicar dichos caracteres en un tablero digital, se solicita cargar los caracteres y sus desplazamientos en memoria, y
    luego escribir los caracteres en un tablero de una cierta dimensión y en una posición determinada.

    Ejemplo de archivo de caracteres:

    1:(0,0),(1,0),(2,0)
    2:(0,0),(0,1),(0,2),(1,2),(2,2),(2,1),(2,0),(3,0),(4,0),(4,1),(4,2)

    El tablero es un arreglo de numpy de dimensiones nxm que inicialmente está en cero.

    Implementar las siguientes funciones:

    a) Una función cargarInfo(nombreArchivo) que retorna un diccionario con el caracter como clave y una lista de desplazamientos como valor.

    b) Una función colocarEnTablero(tablero, posF, posC, caracter) que coloca el caracter en el tablero a partir de la posición dada (posF para la fila inicial, posC para la columna inicial) y retorna un entero que indica lo siguiente:

    - Si el caracter se sobrepone a otro ya presente, se devuelve -1,
    - si el caracter sale del tablero, se devuelve -2,
    - si el caracter puede ser colocado retorna 1.

    El caracter está formado por una serie de posiciones que se cuentan a partir de la posición inicial. Por ejemplo, el caracter 2 al colocarse en la posF=1 y posC=2 quedaría como se observa en el siguiente gráfico:

    c) Escribir la función contarLibres(tablero) que retorne el número de posiciones libres en el tablero.

    Rúbrica: literal a (12 puntos), literal b (18 puntos), literal c (10 puntos)

  • 2Eva_IT2015~T2 Funciones con cadenas, sufijos y contador de letras.

    2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 2. (25 puntos) Desarrolle las siguientes funciones:

    a) procesarSufijos(palabra, sufijo). Esta función recibe una palabra y un sufijo. El sufijo se remueve y se añade la letra “r” al final. Ejemplo:

    procesarSufijos(“cocinamos”, “mos”) retorna cocinar
    procesarSufijos(“perderia”, “ria”) retorna perder

    b) contarCaracteres(listaPalabras, nombreArchivo). Esta función recibe una lista de palabras y crea un archivo con el nombre dado como parámetro. En el archivo se almacena la letra y cuántas veces esa letra aparece en las palabras analizadas. Ejemplo:

    contarCaracteres([“hola”, “mundo”, “espol”])

    Archivo generado:

    h,1
    o,3
    l,2
    a,1
    m,1
    u,1
    n,1
    d,1
    e,1
    s,1
    p,1

    Rúbrica: literal a (8 puntos), literal b (17puntos)


    Referencia: 3Eva_IIT2014_T3 Juego de palabras encadenadas , Alfabeto PMF

  • 2Eva_IT2015~T1 Función limpiar cadena

    2da Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 1. (25 puntos) Escriba en Python la función recursiva limpiarCadena(palabra) que recibe una palabra como parámetro y retorna una nueva palabra que es el resultado de reducir a uno solo, los caracteres iguales adyacentes en la cadena recibida. Por ejemplo:

    Llamada Retorno
    limpiarCadena(“yyzzza”) “yza”
    limpiarCadena(“abbbcdd”) “abcd”
    limpiarCadena(“Hello”) “Helo”
  • 3Eva_IIT2015~T1 etiquetas tendencia como función

    3ra Evaluación II Término 2015-2016, Febrero 2016 /FIEC

    Tema 1. (25 puntos) Dado un diccionario con la siguiente estructura:

    {"@usuario1":["contenido tuit1 #hashtag1", 
                  "contenido #hashtag2 tuit2"],
     "@usuario2":["#hashtag2 contenido tuit n #hashtag n "]

    Nota: un tuit tiene uno o más hashtags y éstos pueden estar en cualquier parte del mensaje.

    Elabore una función trendTopics(diccionario) que reciba un diccionario con la estructura anterior y retorne un segundo diccionario de hashtags con el número de veces que fueron utilizados en los tuits.

    Luego, elabore un programa que muestre por pantalla los Hashtags y sus contadores. Asuma que existe la función crearDiccionario() que retorna un diccionario con los tuits de acuerdo a la estructura presentada arriba.

    Ejemplo de salida:

    #hashtag2 2
    #hashtag1 1
    #hashtagn 1

    Referencia: 2Eva_IT2016_T1 Tendencias en Twitter

  • 3Eva_IT2015~T4 Prueba de escritorio, diccionario

    3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

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

    a. ¿Cuál será la salida del siguiente programa?

    foo = {1:'1', 2:'2', 3:'3'}
    del foo[1]
    foo[1] = '10'
    del foo[2]
    print(len(foo))

    A. 1
    B. 2
    C. 3
    D. 4

    b. ¿Cuál será la salida del siguiente programa?

    x = True
    y = False
    z = False
    
    if (not(x) or y):
        print(1)
    elif (not(x) or not(y) and z):
        print(2)
    elif (not(x) or y or not(y) and x):
        print(3)
    else:
        print(4)
    

    A. 1
    B. 2
    C. 3
    D. 4

  • 3Eva_IT2015~T3 Clasificar secuencia ADN

    3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 3. (40 puntos) En un archivo se almacenan varias líneas con la siguiente información: un código genético, el nombre de la persona que lo posee y el código de la Institución a la que pertenece la persona.

    Se debe implementar las siguientes funciones:

    a) traducirCodigo(cadena). Esta función toma una cadena de caracteres que contiene un código genético y traduce a su cadena correspondiente, según se indica en la siguiente tabla:

    AAU N
    ACA T
    AGA R
    GACU D

    Asuma que las cadenas contendrán siempre combinaciones de las subcadenas incluidas en la primera columna de la tabla dada.

    Por ejemplo: ACA-GAC-AGA-AAU se traduce a TDRN

    b) cargarInformación(nombreArchivo). Lee el archivo con el nombre dado y llena dos colecciones con las siguientes cadenas, que serán retornadas:

    - La colección codigos contendrá las cadenas leídas y transformadas usando la función traducirCodigo.

    - La colección Instituciones contiene una cadena formada como sigue: concatene los caracteres comprendidos entre la posición 2 y la posición 6 (incluidos) y los 3 últimos caracteres del código de la Institución.

    Ambas colecciones deben contener elementos únicos.
    Por ejemplo: ACME-PRODUCTIONS se almacenará como CME-PONS

    c) escribirArchivo(codigos, instituciones, nombreArchivo). Recibe las dos colecciones retornadas en el literal anterior y escribe su contenido en un archivo cuyo nombre se da como parámetro. El formato del archivo lucirá como:

    Codigos geneticos unicos:
    TDRYN
    ...
    Instituciones unicas:
    CME-PNES
    ...

    Referencia: 2Eva_IIT2013_T2 Verificar secuencia ADN

  • 3Eva_IT2015~T2 Triunfos, empates y derrotas por Goles

    3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 2. (30 puntos) En un campeonato de fútbol intervienen n equipos, siendo n un dato entero menor que 10.

    Cada equipo juega contra todos los demás equipos y los goles anotados en cada encuentro han sido almacenados en una matriz nxn como se indica en la tabla ejemplo:

    Goles(f,c)
    1 2 3 4 5 ...
    1 0 3 1 2 1 ...
    2 1 0 3 2 3 ...
    3 0 2 0 1 1 ...
    4 1 0 2 0 1 ...
    5 3 4 1 2 0
    ... ... ... ... ... ... 0
    El equipo 1 marco 3 goles al equipo 2,
       1 gol al equipo 3, etc.
    El equipo 2 marco 1 gol al equipo 1,
        2 goles al equipo 3, etc.

    Se debe implementar las siguientes funciones:

    a) Una función tablaPosiciones(matrizGoles) que retorna un diccionario con el equipo como clave y una lista que representará la tabla de posiciones como valor. La lista debe contener la siguiente información: número de goles, partidos ganados, partidos empatados, y partidos perdidos .

    Por ejemplo: El equipo 1 ha hecho 6 goles,
    ha ganado cero partidos,
    ha empatado 1 y ha perdido 2 partidos.

    b) Una función ganador(diccPosiciones) que recibe el diccionario con la tabla de posiciones y retorna el ganador del campeonato, que será aquel que haya obtenido el mayor puntaje (empate 1 punto, triunfo 3 puntos, derrota 0 puntos).


    Referencia: 3Eva_IT2000_T2 Matriz: puntos por goles en campeonato , 3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

  • 3Eva_IT2015~T1 Función de aleatorios no repetidos

    3ra Evaluación I Término 2015-2016, Septiembre 2015 /FIEC

    Tema 1. (20 puntos) Implementar una función que llene una lista de N números aleatorios distintos menores que 100, el número de elementos de la lista es recibido como parámetro.

    La función debe retornar la lista y el segundo valor más pequeño almacenado en ella.

    Por ejemplo:

    Si N es 6, la lista podría ser [52, 2, 86, 13, 15, 79]
     y el segundo valor más pequeño es 13

    Referencia: 2Eva_IT2013_T2 Una Tabla de Bingo

  • 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)