Autor: Edison Del Rosario

  • 2Eva_IIT2014_T3 Palabras monovocalicas en frase

    2da Evaluación II Término 2014 – 2015, Febrero 24, 2015 /ICM00794

    Tema 3. (25 puntos) Las palabras monovocálicas se construyen con la misma vocal repetida al menos dos veces y sin usar las otras vocales.

    Ejemplos:
    Detergente, acampanada, entretener, horroroso.

    a) Realice una función monovocal(palabra) que indique si una palabra es o no monovocálica.

    >>> monovocal('entretener')
    1
    >>> monovocal('entretenido')
    0

    b) Escriba un programa que reciba una frase y cuente las palabras monovocálicas que contiene. Suponga que las palabras están separadas solo por espacios.

    >>>¿Frase?: un oso horroroso rondaba por el rancho
     palabras monovocálicas en la frase: 2

    Rúbrica: definir función (5 puntos), validar y contar vocales (10 puntos), separar palabras (5 puntos) Programa estructurado (5 puntos)

  • 2Eva_IIT2014_T2 Listar multas infractores metrovía

    2da Evaluación II Término 2014 – 2015, Febrero 24, 2015 /ICM00794

    Tema 2 (30 puntos). El sistema de vigilancia de la ciudad entrega una lista de los códigos de placa de los vehículos que invaden el carril exclusivo de la Metrovía.

    La lista puede contener códigos repetidos que corresponden a vehículos que cometieron esta infracción más de una vez.

    Escriba un programa para leer la lista de n códigos, los procese: marcando los códigos únicos, por cada uno cuente las veces que hay infracción, calcule el valor de multa, y el total por recaudar.

    Observe que: Los códigos de placa contienen letras y números; puede usar la función del tema anterior; cada código tiene al menos una multa (numpy.ones()).

    Lista[ ]
    i código[i] único[i]
    1 GAB0123 1
    2 GBC0456 1
    3 GEP1020 1
    n GBC0456 0
    Lista multas[j]
    j código[j] veces[j] multas[j]
    1 GAB0123 1 389.40
    2 GBC0456 2 1132.80
    3 GEP1020 1 389.40
    m

    Total por recaudar: 1911.60

    Referencia: Registro revela todos los datos de infractores en carril de la Metrovía, 03-feb-2015. www.eluniverso.com
    Rúbrica: ingreso (5 puntos), marcar repetidos (5 puntos), contar reincidentes (10 puntos), calcular multas (5 puntos). Salida (5 puntos)

  • s2Eva_IIT2014_T2 Listar multas infractores metrovía

    Ejercicio: 2Eva_IIT2014_T2 Listar multas infractores metrovía

    continuación del tema 1. Propuesta de solución en Python:

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2014_T2 Listar multas infractores metrovía
    # Tarea: Calcular el total de multas a recaudar
    import numpy as np
    
    def multametrovia(veces,basico):
        pagar = 0
        i = 1
        while not(i>veces):
            if (i==1):
                pagar = basico + 0.1*basico
            if (i>1):
                pagar = pagar + 2*basico+0.1*basico
            i = i + 1
        return(pagar)
    
    # 2Eva_IIT2014_T2 Listar multas infractores metrovía
    # usa la funcion anterior
    
    # INGRESO
    n = int(input('cuantas infracciones: '))
    i = 0
    codigo = []
    while not(i>=n):
        placa = input('codigo: ')
        codigo.append(placa)
        i = i + 1
    
    # PROCEDIMIENTO
    
    # marcar los únicos
    unico = np.ones(n,dtype=int)
    i = 0
    penultimo = n-1
    while not(i>=penultimo):
        j = i + 1
        while not(j>=n):
            if (codigo[i]==codigo[j]):
                unico[j] = 0 
            j = j + 1
        i = i + 1
    
    # copiar en nueva lista placas únicas
    infractor = []
    i = 0
    while not(i>=n):
        if (unico[i]==1):
            infractor.append(codigo[i])
        i = i + 1
    
    # contar los repetidos vector veces
    m = len(infractor)
    veces = np.zeros(m,dtype=int)
    i = 0
    while not(i>=n):
        placa = codigo[i]
        
        # busca en infractores
        j = 0
        while not(j>=m):
            if (placa==infractor[j]):
                veces[j] = veces[j] + 1
            j = j + 1
        i = i + 1
    
    # multas
    multas = np.zeros(m,dtype=float)
    j = 0
    while not(j>=m):
        multas[j] = multametrovia(veces[j],354)
        j = j + 1
    
    # Tarea: total a recaudar por multas
    
    # SALIDA
    print(unico)
    print(infractor)
    print('La lista de infractores y multas es:')
    j = 0
    while not(j>=m):
        print(infractor[j],multas[j])
        j = j + 1
    

    resultado del algoritmo

    cuantas infracciones: 4
    codigo: 123
    codigo: 456
    codigo: 1020
    codigo: 456
    [1 1 1 0]
    ['123', '456', '1020']
    La lista de infractores y multas es:
    123 389.4
    456 1132.8000000000002
    1020 389.4
    >>> 
    
  • 2Eva_IIT2014_T1 Multas por invadir carril metrovía

    2da Evaluación II Término 2014 – 2015, Febrero 24, 2015 /ICM00794

    Tema 1. (15 puntos) Circular por el carril exclusivo de buses de transporte público “Metrovía” representa al conductor o dueño del vehículo doble infracción, cuya multa final se compone de dos partes:

    a) por regulaciones de Ordenanza Municipalidad: multa de $ 354.00 (un salario mínimo), por reincidir en esa falta la multa subirá a $708.00 (dos salarios mínimos).

    b) por infringir la Ley de Tránsito y el Código Integral Penal: multa de $ 35.40 (10% del salario mínimo) y tres puntos menos en la licencia.

    Realice una función multametrovia(veces, básico) que dado el número de veces que un conductor cometió la infracción y el salario básico vigente, retorne el valor total de la multa acumulada, suponiendo que no se han pagado las anteriores.

    >>>multametrovia(1, 354.00)
    389.4
    >>>multametrovia(2, 354.00)
    1132.8
    >>>multametrovia(3, 354.00)
    1876.2
    

    Referencia: Tres conductores reinciden en invadir carril de Metrovía, según ATM, 18-feb-2015. www.eluniverso.com

    Rúbrica: Definir función (3 puntos), acumular multas por veces (8 puntos), algoritmo estructurado (4 puntos)

  • s2Eva_IIT2014_T1 Multas por invadir carril metrovía

    Ejercicio: 2Eva_IIT2014_T1 Multas por invadir carril metrovía

    Propuesta de solución en Python para tema 1, continúa en tema 2.

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2014_T1 Multas por invadir carril metrovía
    # Tarea: Calcular el total de multas a recaudar
    import numpy as np
    
    def multametrovia(veces,basico):
        pagar = 0
        i = 1
        while not(i>veces):
            if (i==1):
                pagar = basico + 0.1*basico
            if (i>1):
                pagar = pagar + 2*basico+0.1*basico
            i = i + 1
        return(pagar)
    

    resultado del algoritmo

    >>> multametrovia(1, 354.00)
    389.4
    >>> multametrovia(2, 354.00)
    1132.8000000000002
    >>> multametrovia(3, 354.00)
    1876.2000000000003
    >>> 
    
  • 2Eva_IT2014_T4 gestionar licencias de conducir

    2da Evaluación I Término 2014 – 2015, Septiembre 02, 2014 /ICM00794

    Tema 4 (30 puntos) Por el traspaso del control de tránsito vehicular a los municipios se requiere de un sistema de gestión de licencias para conducir usando el menú mostrado.

    Menú:
     1. Nuevo documento de licencia
     2. Renovar licencia
     3. Ingresar resultado examen
     4. Emitir documento licencia
     5. Mostrar licencias caducadas
     6. Salir

    Para registrar una nueva licencia, se toman los datos del conductor:

    Conductor
    cédula nombre apellido tipo emisión
    1234 Juan Pérez D 1995

    tipos de licencia: A – F

    Para renovar la licencia se requiere validar que la licencia exista en la tabla, inicializando en cero los valores de examen.

    • Ingresar resultado examen consiste en poner los valores de exámenes individuales que son: visual, teórico y práctico.
    • Para emitir el documento se solicita la cédula, se busca en la tabla, se verifica que cada examen supere el valor de 70/100 y se registra el año de emisión, caso contrario indica que no es posible emitir el documento.
    • Mostrar las licencias caducadas consiste en revisar que el año de emisión y mostrar aquellos conductores que tienen un documento de más de 5 años.

    Ref: http://www.eluniverso.com/noticias/2014/09/01/nota/3642816/tramite-licencia-se-reanuda-cte
    Rúbrica: Menú (5 puntos), estructura de datos y caso 1 (5 puntos), caso 2 (5 puntos), caso 4 (10 puntos), caso 5 (5 puntos)

  • 2Eva_IT2014_T3 Imagen RGB a gris

    2da Evaluación I Término 2014 – 2015, Septiembre 02, 2014 /ICM00794

    Tema 3. (25 puntos) Al digitalizar una imagen a color se usa la técnica RGB, por lo que se requieren tres versiones de imagen correspondiente a cada color.

    Si la imagen es de nxm pixeles y cada color es una matriz rectangular, al combinarlas crea una matriz tridimensional de nxmx3.

    Para convertir una imagen RGB a una imagen en tonos de gris elabore una función fotoagris(imagen) que reciba la matriz imagen(n,m,3) que representa la imagen en formato RGB y la convierta a tonos de gris que es una matriz nxm.

    RGB rojo imagen
    rojo
    RGB verde imagen
    verde
    RGB azul imagen
    azul

    Equivale gris
    imagen(n,m,1)
    0 255 255
    0 0
    255  ...
    imagen(n,m,2)
    0 255 0
    255 0
    255 ...
    imagen(n,m,3)
    0 255 0
    0 255
    255 ...
    Gris(n, m)
    0 255 76
    149 29
    255 ...

    Nota: para convertir el color de cada punto o pixel puede usar la función convertirgris(RGB) del tema anterior, considerando que el color se envía como un vector de 3 elementos.

    Rúbrica: Definir función (5 puntos), manejo de matriz (10 puntos), conversión por pixel (5 puntos), matriz resultante (5 puntos)

  • 2Eva_IT2014_T2 Programar una Función color RGB a gris

    2da Evaluación I Término 2014 – 2015, Septiembre 02, 2014 /ICM00794

    Tema 2 (20 puntos). RGB (en inglés Red, Green, Blue) representa un color mediante la mezcla por adición de luz de tres colores primarios a diferentes proporciones o intensidades. RGB Modelo proyector

    Por ejemplo, los televisores analógicos y proyectores de imagen digital usan la técnica RGB con los valores entre 0 a 255 para cada color: rojo, verde y azul.

    Al usar una impresora láser monocromática (B&N), se convierte el color RGB a un tono de gris ponderando un 0.2989 de rojo, el 0.5870 del verde y 0.1140 del azul, que es el efecto de cada color en el brillo de la imagen. paleta de color

    Realice una función denominada convertirgris(RGB) que dado un color RGB como un vector, lo convierta a su equivalente numérico en tonalidad de gris. Valide que cada color de origen se encuentre en el rango de 0 a 255, sino entrega el valor de -1 como error.

    Ejemplos de equivanlentes RGB
    Color RGB Gris
    Negro [0,0,0] 0
    blanco [255,255,255] 255
    rojo [255,0,0] 76
    verde [0,255,0] 149
    azul [0,0,255] 29
    >> rgb=[255, 0, 0];
    >> cambiagris(rgb)
    ans = 76

    Rúbrica: Definir función (5 puntos), validar colores (5 puntos), operaciones (5 puntos)

  • s2Eva_IT2014_T2 Programar una Función color RGB a gris

    Ejercicio: 2Eva_IT2014_T2 Función color RGB a gris

    Propuesta de solución en Python:

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IT2014_T2 Función color RGB a gris
    # propuesta: edelros@espol.edu.ec
    
    import numpy as np
    
    def convertirgris(RGB):
        rojo  = RGB[0]
        verde = RGB[1]
        azul  = RGB[2]
    
        # Mezcla colores
        gris = 0.2989*rojo + 0.5870*verde + 0.1140*azul
        gris = int(gris)
    
        if (rojo>255 or verde>255 or azul>255):
            gris = -1
        # Tarea: verificar para colores <0
        
        return(gris)
    
    
  • s2Eva_IT2014_T3 Imagen RGB a gris

    Ejercicio: 2Eva_IT2014_T3 Imagen RGB a gris

    Algoritmo en Python

    continuación del tema 2, solución propuesta en Python:

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IT2014_T2 Función color RGB a gris
    # propuesta: edelros@espol.edu.ec
    
    import numpy as np
    
    def convertirgris(RGB):
        rojo  = RGB[0]
        verde = RGB[1]
        azul  = RGB[2]
    
        # Mezcla colores
        gris = 0.2989*rojo + 0.5870*verde + 0.1140*azul
        gris = int(gris)
    
        if (rojo>255 or verde>255 or azul>255):
            gris = -1
        # Tarea: verificar para colores <0
        
        return(gris)
    
    # 2Eva_IT2014_T3 Imagen RGB a gris
    def fotoagris(imagen):
        color,n,m   = np.shape(imagen)
        blanconegro = np.zeros(shape=(n,m),dtype=int)
    
        # por cada pixel
        fila = 0
        while not(fila>=n):
            columna = 0
            while not(columna>=m):
                rojo  = imagen[0,fila,columna]
                verde = imagen[1,fila,columna]
                azul  = imagen[2,fila,columna]
                # para convertir
                RGB  = [rojo,verde,azul]
                gris = convertirgris(RGB)
                # poner el punto en gris
                blanconegro[fila,columna] = gris
    
                columna = columna + 1
            fila = fila + 1
    
        return(blanconegro)
    

    Ejemplo de ejecución. Se proporciona la imagen como aun arreglo[color,fila,columna]
    Puede copiar los valores de imagen y pegarlo en la linea de instruccion>>>
    Luego invocar a la funcion fotoagris(imagen)

    >>>imagen=np.array([[[12, 27, 42, 46, 74],
            [ 3, 21, 33, 48, 67],
            [ 5, 18,  0, 57, 73],
            [ 6, 25, 31, 52, 69],
            [13, 24, 40, 54, 64]],
    
           [[13, 26, 40, 46, 66],
            [15, 23, 45, 55, 62],
            [ 3, 22,  0, 48, 70],
            [ 6, 24, 39, 58, 68],
            [ 8, 29, 35, 56, 72]],
    
           [[ 5, 28, 37, 58, 64],
            [ 7, 24, 34, 48, 75],
            [ 9, 17,  0, 50, 62],
            [12, 30, 43, 56, 68],
            [ 4, 26, 45, 49, 74]]])
    >>> fotoagris(imagen)
    array([[11, 26, 40, 47, 68],
           [10, 22, 40, 52, 64],
           [ 4, 20,  0, 50, 69],
           [ 6, 24, 37, 55, 68],
           [ 9, 27, 37, 54, 69]])