s2Eva_IT2014_T3 Imagen RGB a gris

Ejercicio: 2Eva_IT2014_T3 Imagen RGB a gris

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

s2Eva_IT2014_T1 Palabras con eco

Ejercicio: 2Eva_IT2014_T1 Palabras con eco

Propuesta de solución en Python:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2014_T1 Palabras con eco
# TAREA: solo compara la ultima letra
#        completar para al menos tres letras

# INGRESO
frase = input('frase: ')

# PROCEDIMIENTO
eco = 1
n = len(frase)

# ultima letra de la ultima palabra
a = frase[n-1]

# ultima letra de la penultima palabra
# Buscar letra en la otra palabra
b = ''
i = n-1
while (i>0):
    if (frase[i]==' '):
        b = frase[i-1]
    i = i - 1

# letras eco
if not(a==b):
    eco = 0
# Completar para al menos las tres ultimas letras

# SALIDA
print(eco)

resultado del algoritmo

>>> 
frase: coso oloroso
1
>>> 
frase: casa erwq
0

s2Eva_IIT2013_T2 Verificar secuencia ADN

Ejercicio: 2Eva_IIT2013_T2 Verificar secuencia ADN

Propuesta de solución en Python:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2013_T2 Verificar secuencia ADN
# propuesta: edelros@espol.edu.ec

def ordenados(cadena):
    n = len(cadena)
    cadena  = cadena.upper()
    validos = 'ACGT'
    pares   = 0

    # solo hasta penúltimo
    i = 0
    while not(i>=(n-1)): 
        elemento  = cadena[i]
        elemento2 = cadena[i+1]
        if (elemento<=elemento2):
            pares = pares + 1
        i = i + 1
        
    # validar elementos en cadena
    noADN = 0
    i = 0
    while not(i>=n):
        elemento = cadena[i]
        if not(elemento in validos):
            noADN = noADN - 1
        i = i + 1

    # corrige de ser necesario
    if (noADN<0): 
        pares = noADN
        
    return(pares)

Ejemplo

>>> cadena='CCGAATCGTA'
>>> ordenados(cadena)
6
>>> cadena='CBGAATCGWA'
>>> ordenados(cadena)
-2

s2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

Ejercicio: 2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

2Eva_IT2013_T1 Función sorteoentre(k,a,b)

Propuesta de solución en Python, continua desde tema 1:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# propuesta: edelros@espol.edu.ec

# 2Eva_IT2013_T1 Una Tabla de Bingo
import random as rnd
import numpy as np

def sorteoentre(k,a,b):
    suertudos = []
    i = 0
    while not(i>=k):
        sorteo = int(rnd.random()*(b-a+1))+a
        if not(sorteo in suertudos):
            suertudos.append(sorteo)
            i = i+1
    return(suertudos)

# 2Eva_IT2013_T2 Una Tabla de Bingo
n = 5
#Rango inicial de B [1,15]
a = 1  
b = 15
incremento = 15

# PROCEDIMIENTO
tabla = np.zeros(shape=(n,n),dtype=int)
columna = 0
while not(columna>=n):
    datos = sorteoentre(n,a,b)
    for fila in range(0,n,1):
        tabla[fila,columna]=datos[fila]
    a = a + incremento
    b = b + incremento
    columna = columna + 1
    
# corrige el cero en la posicion central
mitad = n//2
tabla[mitad,mitad] = 0

# SALIDA
print(tabla)

Ejemplo:

>>> ================================ RESTART ==========
>>> 
[[ 4 28 37 51 63]
 [15 18 45 56 74]
 [13 23  0 48 69]
 [ 2 20 34 58 72]
 [ 3 16 32 50 71]]
>>> ================================ RESTART ==========
>>> 
[[ 2 17 37 58 75]
 [13 24 45 53 65]
 [ 7 19  0 51 73]
 [15 23 36 52 69]
 [ 3 30 39 47 67]]
>>>

 

s2Eva_IT2013_T1 Función sorteoentre(k,a,b)

Ejercicio: 2Eva_IT2013_T1 Función sorteoentre(k,a,b)

Solución propuesta en Python, continúa en Tema 2.

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2013_T1 Una Tabla de Bingo
# propuesta: edelros@espol.edu.ec

import random as rnd
import numpy as np

def sorteoentre(k,a,b):
    suertudos = []
    i = 0
    while not(i>=k):
        sorteo = int(rnd.random()*(b-a+1))+a
        if not(sorteo in suertudos):
            suertudos.append(sorteo)
            i = i+1
    return(suertudos)

resultado del algoritmo

>>> sorteoentre(5,1,15)
[11, 14, 7, 10, 6]
>>> sorteoentre(5,16,30)
[17, 18, 26, 30, 27]
>>>