Esempio n. 1
0
def mitad(n):
    """
    Crea un arreglo de tamano n cuyos elementos están dados de la forma 1,2,..,n/2,n/2,...,2,1

    Parametros:
        n: Numero de elementos de arreglo.

    Retorna:
        Una lista con n números reales aleatorios entre 0 y 1.
    """
    if n % 2 != 0:
        arrg = ArrayT(n - 1)
        for i in range(1, n // 2 + 1):
            arrg[i - 1] = i

        for i in range(n // 2, n):
            arrg[i] = int(n // 2)
            n -= 2

        return arrg
    elif n % 2 == 0:
        arrg = ArrayT(n)
        for i in range(1, n // 2 + 1):
            arrg[i - 1] = i

        for i in range(n // 2, n):
            arrg[i] = int(n // 2)
            n -= 2

        return arrg
Esempio n. 2
0
def Mergesort(arreglo):
	k = 1
	N= len(arreglo)
	NuevoArreglo=ArrayT(N)
	while k<N:
		a,b,c = 0, k, min(2*k,N)
		while b<N:
			p,q,r = a,b,a
			while p!=b and q !=c:
				if arreglo[p] <= arreglo[q]:
					NuevoArreglo[r] = arreglo[p]
					r,p = r+1, p+1
				elif arreglo[q] <= arreglo[p]:
					NuevoArreglo[r]=arreglo[q]
					r,q = r+1, q+1
			while p != b:
				NuevoArreglo[r] = arreglo[p]
				r,p = r+1, p+1
			while q != c:
				NuevoArreglo[r] = arreglo[q]
				r,q = r+1, q+1
			r = a
			while r!=c:
				arreglo[r]=NuevoArreglo[r]
				r = r+1
			a,b,c = a + 2*k, b + 2*k, min(c + 2*k,N)
		k = k*2
	return NuevoArreglo
Esempio n. 3
0
def cargarCaritas(archivo):
    """
		Descripcion:
			Funcion que carga un archivo con las caritas que se usaran 
			en el chat ALGOGRAM

		Parametros:
			archivo: path del archivo
	"""
    try:
        global ret, msj, cargado
        with open(archivo, 'r') as f:
            for line in f:
                aux = line.split("\t")
                n = len(aux)
            ret = ArrayT(n)
            print(aux)
            for i in range(n):
                stop = 0
                for j in range(len(aux[i]) - 1, -1, -1):
                    if aux[i][j] == '=':
                        stop = j
                        break
                ret[i] = aux[i][0:stop]
        msj = "   Caritas agregadas"
        cargado = True
    except FileNotFoundError:
        msj = "   El archivo especificado no se ha encontrado"
def obtener_arreglo_n_4(n):
    """
    Dado un conjunto ordenado de N elementos de tipo entero, se escogen
al azar n=4 pares de elementos que se encuentran separados 4 lugares, entonces
se intercambian los pares.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con valores casi ordenados
     """

    arrg = ArrayT(n)
    L = ArrayT(int(n/2))
    for i in range(0,n):
        arrg[i]=i
    j=0
    for x in range(0,int(n/4)):			
        var=random.randint(0,n-5)
        arrg[var], arrg[var + 4] = arrg[var +4 ], arrg[var]
    return arrg
Esempio n. 5
0
def obtener_arreglo_enteros(n):
    """
    Crea arreglo con n valores enteros que son generados de forma aleatoria.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n valores enteros aleatorios.
     """
    arrg = ArrayT(n)
    for i in range(n):
        arrg[i] = random.randint(0, M)
    return arrg
def obtener_arreglo_ordenado(n):
    """
    Crea arreglo de tamaño N tal que sus elementos van 1...N-1,N
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n valores de la forma 1....N-1,N
     """
    arrg = ArrayT(n)
    for i in range(n):
        arrg[i]=i
    return arrg
Esempio n. 7
0
def reales_aleatorios(n):
    """
    Crea un arreglo cuyos elementos son números reales entre 0 y 1 generados aleatoriamente.

    Parametros:
        n: Numero de elementos del arreglo.

    Retorna:
        Una lista con n números reales aleatorios entre 0 y 1.
    """
    arrg = ArrayT(n)
    for i in range(n):
        arrg[i] = random.uniform(0, 1)
    return arrg
Esempio n. 8
0
def cero_uno(n):
    """
    Crea un arreglo de ceros y unos aleatorios.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n ceros y unos colocados aleatoriamente.
     """
    arrg = ArrayT(n)
    for i in range(n):
        arrg[i] = random.randint(0, 1)
    return arrg
Esempio n. 9
0
	def __init__(self, n):
		"""
			Descripcion:
				Funcion constructora de "Registro_Usuarios"

			Parametros:
				n: Tamaño del hash

		"""
		assert type(n) == int and n > 0, "La tabla no puede ser inicializada con 0 slots"
		self.tamano = n
		self.tablaRU = ArrayT(n)
		for i in range(n):
			self.tablaRU[i] = ListaDoble()
def obtener_arreglo_descendente(n):
    """
    Crea arreglo con n valores enteros que son generados de forma descendentes.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n valores enteros descendente.
     """
    arrg = ArrayT(n)
    for i in range(0,n):
        arrg[i]= n-i
    return arrg
Esempio n. 11
0
def copia_arreglo(a_orig):
    """
    Crea una nueva copia de un arreglo.
    
    Parametros:
        a_orig: Un arreglo a copiar.
    
    Retorna: 
        Un nuevo arreglo copia del arreglo de entrada.
    """
    n = len(a_orig)
    a_copia = ArrayT(n)
    for i in range(n):
        a_copia[i] = a_orig[i]
    return a_copia
Esempio n. 12
0
    def __init__(self, n):
        """
			Descripcion:
				Funcion que crea la tabla de hash de tamano 'n'

			Parametros:
				n: Tamaño del hash a crear
		"""
        assert type(
            n
        ) == int and n > 0, "La tabla no puede ser inicializada con 0 slots"
        self.tamano = n
        self.tablaC = ArrayT(n)
        for i in range(n):
            self.tablaC[i] = ListaDoble()
def obtener_arreglo_reales(n):
    """
    Crea arreglo de tamaño N tal que sus elementos son reales comprendidos entre [0,1)
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con valores aleatorios reales entre [0,1)
     """

    arrg = ArrayT(n)
    for i in range(n):
        arrg[i]=random.uniform(0,1)
    return arrg
Esempio n. 14
0
def orden_inverso(n):
    """
    Crea un arreglo de una secuencia descendente dependiendo del tamaño dado.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n valores secuenciales decrecientes.
     """
    arrg = ArrayT(n)
    for i in range(n):
        arrg[i] = int(n)
        n -= 1
    return arrg
Esempio n. 15
0
def ordenado(n):
    """
    Crea un arreglo de una secuencia ascendente dependiendo del tamaño dado.
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con n valores secuenciales decrecientes.
     """
    arrg = ArrayT(n)
    i = 1
    while i <= n:
        arrg[i - 1] = i
        i += 1
    return arrg
Esempio n. 16
0
def casi_ordenado(n):
    arrg = ArrayT(n)
    i = 0
    while i < n:
        arrg[i] = i
        i += 1

    k = 0
    while k <= (n // 4):
        numeroAleatorio = random.randint(0, n - 5)
        arrg[numeroAleatorio], arrg[numeroAleatorio +
                                    4] = arrg[numeroAleatorio +
                                              4], arrg[numeroAleatorio]
        k += 1

    return arrg
def obtener_arreglo_mitad(n):
    """
    Crea arreglo de tamaño N tal que sus elementos tienen la siguiente secuencia: 1,2...N/2,N/2,....2,1
    
    Parametros:
        n: Numero de elementos del arreglo.
    
    Retorna:
        Un objeto lista con valores ordenados de la siguiente secuencia: 1,2...N/2,N/2,....2,1
     """

    arrg = ArrayT(n)
    for i in range(1,int(n/2)+1):
        arrg[i-1]=i 
    for i in range(int(n/2),n):
        arrg[i]=n-i
    return arrg
def mergesort(array):
    """
    Implementacion del algoritmo Mergesort del Kaldewaij.

    Parametro:
        array: Arreglo a ordenar

    Efecto Secundario:
        El arreglo se ordena ascendente
    """
    k = 1
    while k < len(array):
        a = 0
        b = k
        c = min(2 * k, len(array))
        while b < len(array):
            p = a
            q = b
            r = a
            z = ArrayT(c - a)
            while p != b and q != c:
                if array[p] <= array[q]:
                    z[r - a] = array[p]
                    r = r + 1
                    p = p + 1
                elif array[q] <= array[p]:
                    z[r - a] = array[q]
                    r = r + 1
                    q = q + 1
            while p != b:
                z[r - a] = array[p]
                r = r + 1
                p = p + 1
            while q != c:
                z[r - a] = array[q]
                r = r + 1
                q = q + 1
            r = a
            while r != c:
                array[r] = z[r - a]
                r = r + 1
            a = a + 2 * k
            b = b + 2 * k
            c = min((c + 2 * k), len(array))
        k = 2 * k
    def cargarUsuarios(self, archivo):
        # Carga a los usuarios desde un archivo
        abrir = open(archivo, "r")
        lista = abrir.readlines()
        n = 0
        for x in lista:
            n += 1
        users = ArrayT(n)

        for x in range(n):
            t = lista[x].strip("\n")
            p = t.split("\t")
            users[x] = p

        for x in users:
            u = Usuario()
            u.crearUsuario(x[0], x[1], x[2], None)
            self.agregarUsuario(u)
 def agregarContacto(self, usuario):
     c = self.contactos
     if c == None:
         self.contactos = Lista(usuario, None)
         return True
     else:
         repetido = False
         count = 0
         while c != None:
             count += 1
             c = c.next
         c = self.contactos
         while c != None:
             if c.element.nombre == usuario.nombre:
                 print("El contacto ya está en la lista")
                 repetido = True
                 break
             else:
                 c = c.next
         if repetido == False:
             c = self.contactos
             self.centinela = self.contactos
             lista = ArrayT(count + 1)
             t = 0
             while c != None:
                 lista[count] = c.element
                 c = c.next
                 count -= 1
                 t += 1
             lista[0] = usuario
             t = t + 1
             ordenado = mergesort(lista)
             for x in range(t):
                 self.centinela.element = ordenado[x]
                 if x != t - 2:
                     self.centinela = self.centinela.next
                 elif x == t - 2:
                     self.centinela.next = Lista(ordenado[x + 1], None)
                     self.centinela = self.centinela.next
                 else:
                     pass
             return True
         else:
             return False
Esempio n. 21
0
		Yuni Quintero 14-10880
		German Robayo 14-10924

	Profesor:
		Guillermo Palma
"""

# Variables de interfaz
titulo = "\v    █████╗ ██╗      ██████╗  ██████╗  ██████╗ ██████╗  █████╗ ███╗   ███╗\n"
titulo += "   ██╔══██╗██║     ██╔════╝ ██╔═══██╗██╔════╝ ██╔══██╗██╔══██╗████╗ ████║\n"
titulo += "   ███████║██║     ██║  ███╗██║   ██║██║  ███╗██████╔╝███████║██╔████╔██║\n"
titulo += "   ██╔══██║██║     ██║   ██║██║   ██║██║   ██║██╔══██╗██╔══██║██║╚██╔╝██║\n"
titulo += "   ██║  ██║███████╗╚██████╔╝╚██████╔╝╚██████╔╝██║  ██║██║  ██║██║ ╚═╝ ██║\n"
titulo += "   ╚═╝  ╚═╝╚══════╝ ╚═════╝  ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝\n"
msj = ""
datos = ArrayT(6)
datos[0] = " 1. Registrarse"
datos[1] = " 2. Iniciar sesion"
datos[2] = " 3. Cargar Usuarios"
datos[3] = " 4. Eliminar usuario"
datos[4] = " 5. Cargar caritas"
datos[5] = " 6. Salir"
sep = "   +{:-^34}+".format('\0')
menu_ingreso = sep
menu_ingreso += "\n   |{:32} |\n   |{:32} |\n   |{:32} |\n   |{:32} |\n   \
|{:32} |\n   |{:32} |\n".format(datos[0], datos[1], datos[2], datos[3],
                                datos[4], datos[5])
menu_ingreso += sep + '\n'
datos = ArrayT(8)
datos[0] = "1. Agregar contacto"
datos[1] = "2. Eliminar contacto"
Esempio n. 22
0
from arrayT import ArrayT

from PyQt5.QtWidgets import *

import sys
import subprocess as sp

if __name__ == "__main__":
    app = QApplication(sys.argv)
    rep = Reproductor()
    rep.show()
    sp.call('clear', shell=True)

    canciones = open("canciones.in", "r")
    n = int(canciones.readline())
    lista = ArrayT(n)
    can = canciones.readlines()

    for x in range(n):
        t = can[x].strip("\n")
        p = t.split("\t")
        lista[x] = p

    for x in lista:
        c = Cancion(x[1], x[0], x[2])
        rep.playlist.agregar(c)

    #############
    # Menu loop #
    #############
 def crearTabla(self, n):
     # Crea la tabla vacía
     self.tablaRU = ArrayT(n)
Esempio n. 24
0
if __name__ == "__main__":
    app = QApplication(sys.argv)
    try:
        archivo = sys.argv[1]
    except:
        print(
            "Recuerde ingresar el archivo como argumento del programa.\nEj: python3 cliente.py <archivo>"
        )
        sys.exit(1)
    rep = Reproductor()
    rep.show()
    sp.call('clear', shell=True)
    with open(archivo, 'r') as f:
        lineas = f.readlines()
        n = int(lineas[0][:len(lineas) - 1])
        lista_de_reproduccion = ArrayT(n)
        for i in range(n):
            linea = lineas[i + 1].split('\t')
            lista_de_reproduccion[i] = Cancion(linea[0], linea[1],
                                               linea[2][0:len(linea[2]) - 1])
            rep.sonarDespues(
                Cancion(linea[1], linea[0], linea[2][0:len(linea[2]) - 1]))

    conf = "\tPresione ***<ENTER> para cancelar la operacion"
    data = ArrayT(9)
    data[0] = "1-Listar canciones"
    data[1] = "2-Agregar para sonar justo despues de la cancion actual"
    data[2] = "3-Agregar para sonar justo antes de la cancion actual"
    data[3] = "4-Ordenar lista de reproduccion por artista"
    data[4] = "5-Ordenar lista de reproduccion por titulo"
    data[5] = "6-Eliminar cancion por titulo"