Categoría: Solución 2da Evaluación

  • s2Eva_IIT2017_T2 reporte comercio internacional

    Ejercicio: 2Eva_IIT2017_T2 Reporte comercio internacional

    Propuesta de solución en Python:

    archivos usados: Flores.txtMaderas.txt
    para obtener respuestas: categoriasconsolidado.txt, totalFlores, totalMaderas

    totales de:  Flores
    {('Estados Unidos', 'Ecuador', 'rosas'): 118568,
     ('Holanda', 'Japon', 'tulipanes'): 2384,
     ('Estados Unidos', 'Ecuador', 'girasoles'): 38284}
    *** Consolidando productos:  Archivos consolidados guardados
    resultados de funcion crearMatriz(): 
    (array([[ 38284, 118568,      0,  69284,  69284,  48284],
           [     0,      0,   2384,      0,   3384,      0]]),
           ['Ecuador', 'Japon'],
           ['girasoles', 'rosas', 'tulipanes', 'abeto', 'cereso', 'teca'],
           {'Flores': ['girasoles', 'rosas', 'tulipanes'], 
    'Maderas': ['abeto', 'cereso', 'teca']})
    *** Ventas por categoria son:  Archivos venta por categoria guardados
    >>> 
    

    Instrucciones en Python:

    # CCPG1001-Fundamentos de programación FIEC-ESPOL
    # 2Eva_IIT2017_T2 reporte comercio internacional
    import numpy as np
    
    def calculaTotales(categoria):
        totales = {}
    
        narchivo = categoria + '.txt'
        archivo  = open(narchivo,'r')
    
        # Linea de encabezado
        linea = archivo.readline()
        # Primera linea de datos
        linea = archivo.readline() 
        while not(linea ==''):
            linea = linea.strip('\n')
            partes = linea.split(',')
            indice = (partes[0],partes[1],partes[2])
            cantidad = int(partes[3])
            valor = float(partes[4])
    
            if indice in totales:
                totales[indice] = totales[indice] + cantidad
            else:
                totales[indice] = cantidad
            linea = archivo.readline()
        archivo.close()
    
        return(totales)
    
    def consolidado(nomArchivo,categorias):
        archivo = open(nomArchivo, 'w')
        for unacat in categorias:
            total = calculaTotales(unacat)
    
            # totales.update(total)
            for indice in total:
                comp = indice[0] 
                vend = indice[1]
                cate = unacat
                prod = indice[2]
                cant = total[indice]
                linea = comp + ',' + vend + ','
                linea = linea + cate + ',' + prod
                linea = linea + ',' + str(cant) + '\n'
                archivo.write(linea)
                
        archivo.close()
    
        respuesta = 'Archivos consolidados guardados'
        return(respuesta)
    
    def ventasCategorias(nomArchivo, dicCat):
        # Por simplicidad, supone que el orden
        # en dicCat es el mismo que en
        # lista productos
        # Tarea: seleccionar los 5 vendedores mas bajos
    
        paisproducto = crearMatriz(nomArchivo)
        matriz     = paisproducto[0]
        vendedores = paisproducto[1]
        productos  = paisproducto[2]
        categorias = dicCat.keys()
    
        a = 0
        for categ in categorias:
            incluye = dicCat[categ]
            k = len(incluye)
            b = a + k
            seccion = matriz[:,a:b]
            suma = np.sum(seccion, axis=1)
            a = a + k
            
            unifica = []
            for f in range(0,len(vendedores),1):
                unifica.append([vendedores[f],suma[f]])
    
            narchivo = 'total'+categ+'.txt'
            archivo = open(narchivo,'w')
            for f in range(0,len(unifica),1):
                linea = unifica[f][0]+','+str(unifica[f][1])+'\n'
                archivo.write(linea)
            archivo.close()
    
        respuesta = 'Archivos venta por categoria guardados'
        return(respuesta)
    
    # El examen supone que esta función ya existe.
    # adicionalmete crea dicCat para hacer funcional el problema
    def crearMatriz(nomArchivo):
        # Obtiene los indices para la matriz
        vendedores = []
        categoria = {}
        lista = []
    
        archivo = open(nomArchivo,'r')
        linea = archivo.readline()
        while not(linea==''):
            linea = linea.strip('\n')
            partes =  linea.split(',')
            unvendedor = partes[1]
            unacategoria = partes[2]
            unproducto = partes[3]
            cant = int(partes[4])
    
            if not(unvendedor in vendedores):
                vendedores.append(unvendedor)
            if not(unacategoria in categoria):
                categoria[unacategoria] = [unproducto]
            else:
                if not(unproducto in categoria[unacategoria]):
                    categoria[unacategoria].append(unproducto)
            lista.append([unvendedor,unproducto,cant])
            linea = archivo.readline()
        archivo.close()
    
        # Ordena los productos alfabeticamente
        productos = []
        for unacategoria in categoria:
            prod = categoria[unacategoria]
            prod.sort()
            categoria[unacategoria] = prod
            productos = productos + prod
    
        # Crea la matriz
        n = len(vendedores)
        m = len(productos)
        matriz = np.zeros(shape=(n,m),dtype=int)
        k = len(lista)
        for i in range(0,k,1):
            fila = vendedores.index(lista[i][0])
            columna = productos.index(lista[i][1])
            matriz[fila,columna] = matriz[fila,columna] + lista[i][2]
        respuesta = (matriz, vendedores, productos,categoria)
        return(respuesta)
    
    # PROGRAMA
    # INGRESO datos prueba
    categoria = 'Flores'
    categorias = ['Flores','Maderas']
    nomArchivo = 'categoriasconsolidado.txt'
    
    # PROCEDIMIENTO
    totales = calculaTotales(categoria)
    consolidaprod = consolidado(nomArchivo, categorias)
    paisproducto = crearMatriz(nomArchivo)
    dicCat = paisproducto[3]
    ventacat = ventasCategorias(nomArchivo, dicCat)
    
    # SALIDA
    print('totales de: ', categoria)
    print(totales)
    print('*** Consolidando productos: ', consolidaprod)
    print('resultados de funcion crearMatriz(): ')
    print(paisproducto)
    print('*** Ventas por categoria son: ', ventacat)
    
  • s2Eva_IT2017_T3 Prueba de escritorio - cadenas, archivos, listas

    Ejercicio: 2Eva_IT2017_T3 Prueba de escritorio - cadenas, archivos, listas

    literal a. cadenas de caracteres, archivos de texto, listas de texto.

    literal b. conjuntos, unión, intersección, diferencia simétrica

  • s2Eva_IIT2016_T2 País destino para jubilados extranjeros

    Ejercicio: 2Eva_IIT2016_T2 País destino para jubilados extranjeros

    Propuesta de solución en Python:

    requiere usar el archivo: destinosdatos.txt

    # CCPG1001-Fundamentos de programación FIEC-ESPOL
    # 2Eva_IIT2016_T2 País destino para jubilados extranjeros
    
    def cargarDatos(nomFile):
        datos = {}
        archivo = open(nomFile, 'r')
        linea = archivo.readline()
        while not(linea==''):
            linea = linea.strip('\n')
            partes = linea.split(',')
            
            ciu = partes[0]
            met = partes[1]
            val = float(partes[2])
            
            if not(ciu in datos):
                datos[ciu] = {met:val}
            else:
                datos[ciu][met]= val
            linea = archivo.readline()
            
        archivo.close()
        return(datos)
    
    def metricaPais(datos, paises):
        promedios = {}
        for unpais in paises:
            totalcanasta = 0
            totaltemperatura = 0
            ciudades = paises[unpais]
            
            for unaciudad in ciudades:
                unacanasta = datos[unaciudad]['canastaBasica']
                totalcanasta = totalcanasta + unacanasta
                unatemp = datos[unaciudad]['temperatura']
                totaltemperatura = totaltemperatura + unatemp
    
            # los promedios son por pais
            promediocanasta     = totalcanasta/len(ciudades)
            promediotemperatura = totaltemperatura/len(ciudades)
            promedios[unpais] = {'canastaBasica': promediocanasta,
                                 'temperatura': promediotemperatura}  
        return(promedios)
    
    def generaPaises(promedios, metrica, minimo, maximo):
        narchivo = 'cumplencon.csv'
        archivo  = open(narchivo, 'w')
        
        for unpais in promedios:
            valor = promedios[unpais][metrica]
            if (valor>=minimo and valor<=maximo):
                linea = unpais +'\n'
                archivo.write(linea)
        archivo.close
        
        mensaje = 'resultados en archivo'
        return(mensaje)
    
    
    # PROGRAMA Prueba
    # INGRESO
    paises = {'Ecuador':{'Cuenca','Guayaquil'},
              'Colombia':{'Bogotá'}}
    
    nomFile = 'destinosdatos.txt'
    
    metrica = input('cual metrica: ')
    minimo  = float(input('minimo: '))
    maximo  = float(input('maximo: '))
    
    # PROCEDIMIENTO
    tabla = cargarDatos(nomFile)
    promedios = metricaPais(tabla, paises)
    cualescumplen = generaPaises(promedios, metrica, minimo, maximo)
    
    # SALIDA
    print('tabla de datos: ')
    print(tabla)
    print('paises')
    print(paises)
    print('promedios de características')
    print(promedios)
    print('paises de interes para el jubilado, en archivo')
    
  • s2Eva_IIT2016_T1 Multas de Transito por sector

    Ejercicio: 2Eva_IIT2016_T1 Multas de Transito por sector

    Propuesta de solución en Python:

    # CCPG1001-Fundamentos de programación
    # 2Eva_IIT2016_T1 Multas de Transito por sector
    import numpy as np
    
    def generaMatriz(listamultas,sectores):
        n = len(sectores)
        unafila = sectores[0]
        
        m = len(unafila)
        matriz = np.zeros(shape=(n,m),dtype=float)
    
        k = len(listamultas)
        i = 0
        while not(i>=k):
            f = listamultas[i][0]
            c = listamultas[i][1]
            valor = listamultas[i][2]
            matriz[f,c] = matriz[f,c] + valor
            i = i+1
        return(matriz)
    
    def sectorTop(matriz):
        
        # TAREA: Realizar para este y oeste
        tamano = np.shape(matriz)
        n = tamano[0]
        m = tamano[1]
        norte = matriz[0,:]
        sur = matriz[n-1,:]
        centro = matriz[1:3,2]
    
        rnorte  = np.sum(norte)
        rsur    = np.sum(sur)
        rcentro = np.sum(centro)
        
        suma = [rnorte,rsur,rcentro]
        referencia = ['norte','sur','centro']
        
        cual   = np.argmax(suma)
        nombre = referencia[cual]
        valor  = suma[cual]
        respuesta = [nombre,valor]
    
        return(respuesta)
    
    
    # PROGRAMA
    # INGRESO
    sectores = [
        ['Norte','Norte','Norte','Norte','Norte'],
        ['Oeste','Oeste','Centro','Este','Este'],
        ['Oeste','Oeste','Centro','Este','Este'],
        ['Oeste','Oeste','Centro','Este','Este'],
        ['Sur','Sur','Sur','Sur','Sur']]
    
    listamultas = [(0, 0, 120),
                   (1, 2, 330),
                   (3, 4, 123),
                   (4, 2, 62),
                   (0, 0, 50),
                   (4, 4, 89),
                   (0, 3, 25),
                   (2, 0, 43),
                   (3, 2, 21),
                   (0, 0, 120)]
    
    # PROCEDIMIENTO
    recaudar = generaMatriz(listamultas,sectores)
    
    # SALIDA
    print(sectores)
    print(listamultas)
    print('Hay que recaudar:')
    print(recaudar)
    

    Resultado del algoritmo

    [['Norte', 'Norte', 'Norte', 'Norte', 'Norte'], 
    ['Oeste', 'Oeste', 'Centro', 'Este', 'Este'], 
    ['Oeste', 'Oeste', 'Centro', 'Este', 'Este'], 
    ['Oeste', 'Oeste', 'Centro', 'Este', 'Este'], 
    ['Sur', 'Sur', 'Sur', 'Sur', 'Sur']]
    [(0, 0, 120), (1, 2, 330), (3, 4, 123), 
    (4, 2, 62), (0, 0, 50), (4, 4, 89), 
    (0, 3, 25), (2, 0, 43), (3, 2, 21), (0, 0, 120)]
    Hay que recaudar:
    [[290.   0.   0.  25.   0.]
     [  0.   0. 330.   0.   0.]
     [ 43.   0.   0.   0.   0.]
     [  0.   0.  21.   0. 123.]
     [  0.   0.  62.   0.  89.]]
    >>> 
    
  • s2Eva_IIT2015_T4 biciespol, prestamos de bicicletas

    Ejercicio: 2Eva_IIT2015_T4 biciespol, prestamos de bicicletas

    Algoritmo en Python:

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2015_T4 biciespol, prestamos de bicicletas
    # Tarea: validar matricula de estudiante
    
    opcion = -1 # aun no es escoge una opcion
    while not(opcion==6):
        # Presenta el menú
        print('Menú:')
        print('1. Formulario de Préstamos')
        print('2. Registro de bicicletas')
        print('3. Préstamo')
        print('4. Devolución')
        print('5. Inventario de estado')
        print('6. Salir')
        
        opcion = int(input('cual es su opcion:'))
        
        if opcion==1:
            # Ingresa un estudiante
            mat  = input('matricula: ')
            nom  = input('nombre: ')
            carr = input('carrera: ')
            unestudiante = [mat,nom,carr]
            formulario.append(unestudiante)
    
        if opcion==2:    
            # Bicicletas
            m =  int(input('cuantas bicicletas:'))
            bicicletas =[]
            j = 0
            while not(j>=m):
                cod = input('codigo: ')
                est = 0 # iniciar con cero
                ubi = int(input('ubicacion:'))
                # crea un registro
                unabici = [cod,est,ubi]
                # Añade a la tabla
                bicicletas.append(unabici)
                j = j+1
    
        if opcion==3:
            
            est = input('matricula')
            cod = input('codigo: ')
            ubi = int(input('ubicacion'))
    
            # Tarea: validar matricula de estudiante
    
            # busca la bicicleta
            m = len(bicicletas)
            j = 0
            while not(j>=m):
                if bicicletas[j][0]==cod:
                    donde = j
                j = j + 1
            
            # prestamo
            if (bicicletas[donde][1] == '0' and bicicletas[donde][2]==ubi):
                bicicletas[donde][1] = est
                bicicletas[donde][2] = 0
                
        # Opciones 4 y 5 continuan en el siguiente laboratorio
        
        if opcion==6:
            print('gracias por usar el software...')
            print('@espol.edu.ec')
    
  • s2Eva_IIT2015_T2 funcion totalportipo(tabla)

    Ejercicio: 2Eva_IIT2015_T2 funcion totalportipo(tabla)

    Solución propuesta en Python, continúa junto al tema 3.

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2015_T2 funcion totalportipo(tabla)
    # propuesta de repaso: edelros@espol.edu.ec
    
    import numpy as np
    
    def totalportipo(tabla):
        # Tamaño de tabla con codigoplaya,recolectado
        n,k = tabla.shape  
        
        # verifica banderas repetido cambiando a 1
        repetidos = np.zeros(n,dtype=int)
        i = 0
        while not(i>=(n-1)):
            j = i + 1
            while not(j>=n):
                if (tabla[i,0]==tabla[j,0]):
                    repetidos[j] = 1
                j = j+1
            i = i + 1
        
        # cuenta los que se eliminan
        # para ver los m que son únicos
        eliminar = 0
        fila = 0
        while not(fila>=n):
            eliminar = eliminar + repetidos[fila]
            fila = fila + 1
        m = n-eliminar
    
        # copiar codigos unicos en tabulado columna 0
        tabulado = np.zeros(shape=(m,3), dtype=float)
        fila = 0
        j = 0
        while not(fila>=n):
            if (repetidos[fila]==0):
                tabulado[j,0] = tabla[fila,0]
                j = j + 1
            fila = fila + 1
    
        # Cuenta voluntarios por playa en tabulado columna 1
        # Acumula recolectado por playa en tabulado columna 2
        fila = 0
        while not(fila>=n):
            cual = tabla[fila,0]
            # encuentra el índice en donde
            donde = np.where(tabulado[:,0]==cual) 
            tabulado[donde,1] = tabulado[donde,1] + 1
            tabulado[donde,2] = tabulado[donde,2] + tabla[fila,1]
            fila = fila + 1
    
        # acumula lo recolectado por playa
        return(tabulado)
    

    ejercicios resueltos Python 2Eva_IIT2015_T2 pdf

  • s2Eva_IIT2015_T3 Playaton limpieza de playas

    Ejercicio: 2Eva_IIT2015_T3 Playaton limpieza de playas

    Continuación del tema 2. Propuesta de solución en Python: pyT2_pdf, pyT3_pdf

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2015_T2 funcion totalportipo(tabla)
    # propuesta de repaso: edelros@espol.edu.ec
    
    import numpy as np
    
    def totalportipo(tabla):
        # Tamaño de tabla con codigoplaya,recolectado
        n,k = tabla.shape  
        
        # verifica banderas repetido cambiando a 1
        repetidos = np.zeros(n,dtype=int)
        i = 0
        while not(i>=(n-1)):
            j = i + 1
            while not(j>=n):
                if (tabla[i,0]==tabla[j,0]):
                    repetidos[j] = 1
                j = j+1
            i = i + 1
        
        # cuenta los que se eliminan
        # para ver los m que son únicos
        eliminar = 0
        fila = 0
        while not(fila>=n):
            eliminar = eliminar + repetidos[fila]
            fila = fila + 1
        m = n-eliminar
    
        # copiar codigos unicos en tabulado columna 0
        tabulado = np.zeros(shape=(m,3), dtype=float)
        fila = 0
        j = 0
        while not(fila>=n):
            if (repetidos[fila]==0):
                tabulado[j,0] = tabla[fila,0]
                j = j + 1
            fila = fila + 1
    
        # Cuenta voluntarios por playa en tabulado columna 1
        # Acumula recolectado por playa en tabulado columna 2
        fila = 0
        while not(fila>=n):
            cual = tabla[fila,0]
            # encuentra el índice en donde
            donde = np.where(tabulado[:,0]==cual) 
            tabulado[donde,1] = tabulado[donde,1] + 1
            tabulado[donde,2] = tabulado[donde,2] + tabla[fila,1]
            fila = fila + 1
    
        # acumula lo recolectado por playa
        return(tabulado)
    
    
    # 2Eva_IIT2015_T3 Playaton limpieza de playas
    voluntarios = []
    opcion = 0
    while not(opcion==7):
        print('1. registrar voluntario')
        print('2. registrar Kg recolectada/voluntario')
        print('3. conteo de voluntarios')
        print('4. tabular recolectado')
        print('5. Guardar archivo')
        print('6. Abrir archivo')
        print('7. Salir')
        
        opcion = int(input(' opcion:'))
        
        if (opcion==1):
            print('-- registrar voluntario --')
            ced = int(input('cédula: '))
            nom = input('nombre: ')
            pla = int(input('codigo playa: '))
            rec = 0
            registro = {'cedula':ced,
                        'nombre': nom,
                        'playa':pla,
                        'recolectado':rec}
            voluntarios.append(registro)
            print('gracias por participar')
    
        if (opcion==2):
            print('-- registrar Kg recolectado/voluntario --')
            ced = int(input('cédula: '))
            rec = float(input('recolectado: '))
            
            # buscar voluntario,
            # Podría buscar con index en la lista
            encontre = -1
            n = len(voluntarios)
            fila = 0
            while not(encontre>=0 or fila>=n):
                if (voluntarios[fila]['cedula']==ced):
                    encontre = fila
                fila = fila + 1
            
            if (encontre>=0):
                voluntarios[encontre]['recolectado'] = rec
                print('recolectado:',rec)
            else:
                print('no esta registrado este voluntario')
    
        if (opcion==3):
            print('--- cuenta voluntarios ---')
            n = len(voluntarios)
            # extraer columnas codigoplaya y recoletado
            tabla = np.zeros(shape=(n,2),dtype=float)
            fila = 0
            while not(fila>=n):
              tabla[fila][0] = voluntarios[fila]['playa']
              tabla[fila][1] = voluntarios[fila]['recolectado']
              fila = fila + 1
            resultado = totalportipo(tabla)
    
            print('los voluntarios presentados son:',n)
            print(resultado)
    
        if (opcion==4):
            print('-- tabular recolectado --')
            n = len(voluntarios)
            # extraer vector codigos playas
            tabla = np.zeros(shape=(n,2),dtype=float)
            fila = 0
            while not(fila>=n):
              tabla[fila][0] = voluntarios[fila]['playa']
              tabla[fila][1] = voluntarios[fila]['recolectado']
              fila = fila + 1
            resultado = totalportipo(tabla)
    
            #total recolectado
            m,k = resultado.shape
            total = 0
            i = 0
            while not(i>=m):
                total = total + resultado[i,2]
                i = i + 1
            print('El total recolectado es:',total)
            print('El total por playa es: ')
            print(resultado)
    
        if (opcion==5):
            print('---- guardar el archivo de voluntarios ---')
            
            # prepara el modo escritura 'w' de archivo
            archivo = open('voluntarios.txt','w')
            
            n = len(voluntarios)
            fila = 0
            while not(fila>=n):
    
                # Crea la linea de texto de los datos
                # para un registro, separada por comas
                registro = str(voluntarios[fila]['cedula'])
                registro = registro + ',' + voluntarios[fila]['nombre']
                registro = registro + ',' +str(voluntarios[fila]['playa'])
                registro = registro + ',' +str(voluntarios[fila]['recolectado']) +'\n'
    
                # Escribe en el archivo
                archivo.write(registro)
                fila = fila + 1
    
            archivo.close()     # Cierra el archivo    
            print('archivo guardado...')
    
        if (opcion==6):
            print(' --- Abrir archivo de voluntarios---')
            voluntarios = []
            
            # prepara el modo lectura(read 'r') de archivo
            archivo = open('voluntarios.txt','r')
            linea = archivo.readline()
    
            #Hasta encontrar el final del archivo
            while (linea!=''):
                # Divide los datos por comas
                datos = linea.split(',')  
                ced = int(datos[0])
                nom = datos[1]
                pla = int(datos[2])
                rec = float(datos[3])
                
                # crea el registro diccionario para la lista
                registro = {'cedula':ced,
                            'nombre': nom,
                            'playa':pla,
                            'recolectado':rec}
                
                voluntarios.append(registro)
                # Lee la siguiente linea
                linea=archivo.readline()
                
            archivo.close()  # Cierra el archivo
            
            n = len(voluntarios)
            print(' Se recuperaron '+ str(n) + ' registros de voluntarios')
            
        if (opcion==7):
            print(' gracias por usar el software, @copyritghs')
    

    ejercicios resueltos Python 2eva_iit2015_t3 pdf

  • s2Eva_IT2015_T2 Diccionario electrónico

    Ejercicio: 2Eva_IT2015_T2 Diccionario electrónico

    Algoritmo en Python

    presentado el ejercicio iniciado en clases. Tiene tarea por desarrollar:

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IT2015_T2 Diccionario electrónico
    # diccionario de palabras usando listas
    # Tarea: Desarrollar las opciones para archivos.
    
    def kutipak(palabra, modo, diccionario):
        n = len(diccionario)
        traducido = '' 
        if (modo==1):
            # quichua a español
            encontre = 0
            donde = -1
            i = 0
            while not(i>=n or encontre ==1):
                if (palabra.lower() == diccionario[i][0]):
                    traducido = diccionario[i][1]
                    encontre = 1
                    donde = i
                i = i+1
        # Tarea, desarrolle el modo 2
        
        return(traducido)
    
    diccionario = [['man', 'al'],
                   ['wasi', 'casa'],
                   ['pak', 'del'],
                   ['kuska', 'lugar'],
                   ['pash','y'],
                   ['iyayku', 'tecnología'],
                   ['mañay', 'servicio'],
                   ['mamallakta', 'país'],
                   ['kutipak', 'traductor']]
    
    # tema 2. PROGRAMA
    opcion = -1
    while not(opcion ==6):
        print('...')
        print('1. Traducir palabras')
        print('2. Traducir una frase')
        print('3. Añadir palabras al diccionario')
        print('4. Guardar archivo del diccionario')
        print('5. Abrir archivo del diccionario')
        print('6. Salir')
        
        opcion = int(input('  cual opcion: '))
    ##    while not(opcion>=1 and opcion<=6):
    ##        print(' *** revisar las opciones disponibles ***')
    ##        opcion = int(input('  cual opcion: '))
    
        if (opcion==1):
            print('==== 1. Traducir palabras')
            palabra = input('palabra a traducir: ')
            modo = int(input('(1) quichua-español, (2) español-quichua: '))
            traducida = kutipak(palabra, modo, diccionario)
            print('su significado: ', traducida)
    
        elif (opcion==2):
            print('==== 2. Traducir una frase')
            print('palabras separadas solo por espacios')
            frase = input('frase a traducir: ')
            modo = int(input('(1) quichua-español, (2) español-quichua: '))
            partes = frase.split(' ')
            m = len(partes)
            oracion = ''
            j = 0
            while not(j>=m):
                traducida = kutipak(partes[j], modo, diccionario)
                oracion = oracion + ' '+ traducida
                j = j+1
            print('traduccion de frase: ')
            print(oracion)
    
        elif (opcion==3):
            print('==== 3. Añadir palabras al diccionario')
    
        elif (opcion==4):
            print('==== 4. Guardar archivo del diccionario')
    
        elif (opcion==5):
            print('==== 5. Abrir archivo del diccionario')
    
        elif (opcion==6):
            print('==== Gracias por usar el software ====')
            print('==== usuario@espol.edu.ec ====')
    
        else:
            print(' *** revisar las opciones disponibles ***')
    
  • s2Eva_IT2015_T1 kutipak() quichua-español

    Ejercicio: 2Eva_IT2015_T1 kutipak() quichua-español

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IT2015_T1 kutipak() quichua-español
    # incluye usar el modo
    
    # Usando diccionario[quichua][español]
    diccionario = {'man':'al',
                   'wasi':'casa',
                   'pak':'del',
                   'kuska':'lugar',
                   'pash':'y',
                   'iyayku':'tecnología',
                   'mañay':'servicio',
                   'mamallakta':'país',
                   'kutipak ':'traductor'}
    
    def kutipak(palabra, modo, diccionario):
        traducido = ''
        
        if (modo == 1):     
            if (palabra in diccionario)==1:
                traducido = diccionario[palabra]
    
        if (modo == 2):
            n = len(diccionario)
            encontre = ''
            for elemento in diccionario:
                if (palabra == diccionario[elemento]):
                    encontre = elemento
            traducido = encontre
    
        return(traducido)