s3Eva_IIT2010_T1 Matriz con aleatorios no repetidos (desordena)

Ejercicio: 3Eva_IIT2010_T1 Matriz con aleatorios no repetidos (desordena)

Propuesta de solución en Python:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIT2010_T1 Matriz con aleatorios no repetidos (desordena)
# Propuesta: edelros@espol.edu.ec
# Tarea: integrar con tema 3

import numpy as np
import random as rnd

def desordena(n): 
    matriz = -1*np.ones(shape=(n,n), dtype=int)
    usados = []
    
    # entero aleatorio [0,n**2), no incluye n**2
    intervalo = n**2
    
    fila = 0
    while not(fila>=n):
        
        columna = 0
        while not(columna>=n):

            # numero no repetido
            numero = int(rnd.random()*intervalo)+0
            while numero in usados:
                numero = int(rnd.random()*intervalo)+0
            
            matriz[fila,columna] = numero
            usados.append(numero)
            
            columna = columna + 1
            
        fila = fila + 1
    return(matriz)

resultado del algoritmo:

>>> desordena(3)
array([[0, 7, 2],
       [6, 5, 8],
       [4, 1, 3]])
>>> desordena(3)
array([[7, 3, 6],
       [8, 1, 0],
       [5, 2, 4]])
>>> 

5.1.3 Funciones – Archivos de librerias

Los algoritmos que se reutilizan y se convierten a funciones, se pueden agrupar en un archivo.py

Esto permite realizar un archivo de librerias de funciones personalizadas.

Las librerias se pueden llamar por la instrucción import y se usan individualmente por el nombre de la función.

Ejemplo

Archivo de funciones personalizadas politoESPOL.py, en directorio de trabajo:

# ejemplo de libreria de funciones

def sumando(a,b):
    c = a + b
    return(c)

def invierteletras(palabra):
    n = len(palabra)
    invertida = ''
    for i in range(0,n,1):
        invertida = palabra[i] + invertida
    return(invertida)

Archivo de programa principal politoProgram.pyen el mismo directorio que el archivo de funciones.

# probando importar funciones
import politoESPOL as espol

# INGRESO
a = 3
b = 5
palabra = 'polito'

# PROCEDIMIENTO
sumado = espol.sumando(a,b)
alreves = espol.invierteletras(palabra)

# SALIDA
print('la suma es: ', sumado)
print('palabra invertida: ',alreves)

Resultado del algoritmo

la suma es:  8
palabra invertida:  otilop
>>> 

5.1.2 Funciones – Ejercicios

Funciones Numéricas

2Eva_IT2014_T2 Función color RGB a gris

2Eva_IIT2011_T1 Algoritmo de Euclides MCD

2Eva_IIT2013_T3 Encriptar binarios con XOR

2Eva_IT2003_T1 Funciones promedio, mayor y menor

2daEva_IIT2004_T3 Reciclar vasos


Funciones con cadenas de caracteres

2Eva_IIT2009_T1 Mensaje a SMS

2Eva_IIT2014_T3 Palabras monovocalicas en frase

2Eva_IIT2015_T1 función lipovocal(frase)

2Eva_IT2006_T3 Encriptar a Morse

2Eva_IT2009_T1 Desordenar una palabra

2Eva_IT2014_T1 Palabras con eco