Etiqueta: cadenas de caracteres

string, texto

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

  • 1Eva_IT2016_T1 Buscar sitios web de universidades

    1ra Evaluación I Término 2016-2017. Junio 28, 2016 /CCPG001 – FIEC

    Tema 1 (20 puntos) La lista mostrrada en el ejemplo contiene los URLs de diferentes sitios Web que han sido visitados.

    lista = ["www.espol.edu.ec", 
      "www.google.com", 
      "www.sri.gob.ec", 
      "www.fiec.espol.edu.ec", 
      "www.uess.edu.ec", 
      "www.FIEC.espol.edu.ec", 
      "www.fict.espol.edu.ec", 
      "www.fcnm.Espol.edu.ec", 
      "www.ucsg.edu.ec", 
      "www.Stanford.edu", 
      "www.harvard.edu", 
      "www.stanford.edu", 
      "www.UCSG.edu.ec", 
      "www.google.com.ec", 
      "www.facebook.com", 
      "www.opensource.org", 
      "www.educacionbc.edu.mx",
      "..."]
    

    Los URLs normalmente se repiten y corresponden algunas veces a universidades de Ecuador y otros países.
    Note que los URLs no diferencian entre mayúsculas y minúsculas.
    Por ejemplo: www.espol.edu.ec y www.ESPOL.edu.ec corresponden al mismo sitio.

    Escriba un programa en Python que dada una lista realice lo siguiente:

    a. Muestre los nombres o siglas de las universidades que aparecen en la lista (sin repetir).

    Del ejemplo mostrado, la salida sería: 
    En la lista aparecen 6 universidades:
    1. ESPOL
    2. UESS
    3. UCSG
    4. STANFORD
    5. HARVARD
    6. EDUCACIONBC

    b. Muestre la cantidad y los nombres/siglas de universidades de Ecuador que aparecen en la lista.

    Del ejemplo mostrado, la salida sería: 
    En la lista aparecen 3 universidades de Ecuador:
    1. ESPOL
    2. UESS
    3. UCSG

    c. Dado un usuario y el nombre o sigla de la universidad, imprima el correo electrónico asignado. Por ejemplo:

    Ingrese el usuario: rafael.bonilla
    Ingrese el nombre/sigla de la universidad: UCSG 
    El correo electrónico del usuario es: rafael.bonilla@ucsg.edu.ec

    Referencia: Archivo original 1raEvaIT2016.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

     

  • 3Eva_IT2016_T1 Costo de mensaje

    3ra Evaluación I Término 2016-2017, Septiembre 13, 2016 /CCPG001

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

    Tema 1. mensaje de texto sms(40 puntos) Una empresa de telecomunicaciones determina el costo para enviar un mensaje como el acumulado de los valores de cada palabra diferenciadas por tamaño y tipo:

    • una palabra corta tiene máximo M caracteres,
    • una palabra larga tiene mas de M caracteres,
    • una palabra especial es un verbo en infinitivo, es decir, palabras terminadas en ‘ar‘, ‘er, ‘ir‘ , sin importar su tamaño.

    Implemente las siguientes funciones:

    a) cargarDatos(nombreArchivo) que recibe el nombre del archivo que en lineas separadas especifica: el tamaño M, el costo de las palabras cortaslargas e infinitivos. La función abrirá el archivo y retorna un diccionario de la forma:

    nombreArchivo='costos.txt'
    10
    0.2
    0.5
    0.3
    
    >>> cargarDatos('costos.txt')
    retorna:
    {'M':10, 'corta':0.2, 'larga':0.5, 'infinitivo':0.3}

    b) calcularCostos(datos, nombreArchivo) es una función que determina el costo total de un mensaje guardado en un archivo.
    La variable datos corresponde al diccionario de datos generado en el literal a) y un nombre de archivo con el texto de varias lineas correspondiente al mensaje guardado. Las palabras de cada línea se encuentran separadas por espacios y un punto ‘.’ al final del mensaje como único signo de puntuación presente. El punto ‘.’ no deberá ser considerado para determinar el costo de esa última palabra.

    c) cambiarMensaje(datos, nombreArchivo1, nombreArchivo2) es una función que baja el costo del mensaje al modificarlo mediante:

    • el recorte de las palabras largas a M-1 caracteres y  colocando ‘#‘ al final.
    • el reemplazo el punto final ‘.’ con la palabra especial ‘END’.

    La función recibe el diccionario de datos generado en el literal a) y dos nombres de archivos: nombreArchivo1 que contiene el mensaje y nombreArchivo2 que es el el archivo que se crea (guarda) con el mensaje modificado.

    Referencia: Archivo original 3Eva_IT2016.pdf

  • 2Eva_IIT2015~T1 Cifrado César como función

    2da Evaluación II Término 2015-2016, Febrero 2016 /FIEC

    Tema 1 (20 puntos) El cifrado César es una de las técnicas de codificación de textos por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto.

    Por ejemplo, con un desplazamiento de 2 posiciones, la A sería sustituida por la C (situada 2 lugares a la derecha de la A), la B sería reemplazada por la D, etc. Se supone que el alfabeto es circular de modo que, a todos los efectos, a continuación de la Z comienzan de nuevo las letras A, B, C, etc.

    Se le solicita escribir la función recursiva cifrarCesar que recibe como parámetros una cadena de caracteres escritos en minúsculas, el desplazamiento y una lista con las letras del alfabeto y retorna una nueva cadena con el texto codificado. Debe tener en cuenta que sólo se codifican los caracteres correspondientes a las letras del alfabeto, el resto de caracteres (espacios en blanco, signos de puntuación, números, etc) permanecerán inalterados.

    Ejemplo:
    función resultado
    cifrarCesar(“hola mundo”,3,alfabeto) “krod pxqgr”
    cifrarCesar(“xyz”,2,alfabeto) “zab”
    cifrarCesar(“el yoyo, cuesta $5”,4,alfabeto) “ip cscs, gyiwxe $5”

    Referencia: 2Eva_IIT2012_T2 Cifrado César de FCNM