Example #1
0
def caracter(C):
    Caux = Cola()
    Caux2 = Cola()
    auxD = False
    auxL = False
    cont_L = 0
    existe1 = False
    existe2 = False
    while not cola_vacia(C):
        aux = atencion(C)
        auxD = aux.isdigit()
        if (auxD == True):
            arribo(Caux, aux)
        else:
            arribo(Caux2, aux)
        if (aux == '#'):
            existe1 = True
        if (aux == '?'):
            existe2 = True
    print('La cola con solo digitos es:')
    barrido_cola(Caux)
    print('La cola con el resto de caracteres es :')
    barrido_cola(Caux2)
    while not cola_vacia(Caux2):
        aux2 = atencion(Caux2)
        auxL = aux2.isalpha()
        if (auxL == True):
            cont_L += 1
    print('La cantidad de letras de la segunda Cola es: ', cont_L)
    if (existe1 == True):
        print('Existe el caracter #')
    if (existe2 == True):
        print('Existe el caracter ?')
Example #2
0
def caracteres(C):
    '''Operaciones con una cola de letras, numeros y simbolos'''
    C_dig = Cola()
    C_car = Cola()
    cont_letras = 0
    numer, inter = False, False
    while not cola_vacia(C):
        dato = atencion(C)
        if dato.isdigit():
            arribo(C_dig, dato)
        else:
            arribo(C_car, dato)
    # barrido_cola(C_dig)
    # barrido_cola(C_car)
    print('Tamanio de la cola de numeros: ' + str(tamanio_cola(C_dig)))
    print('Tamanio de la cola de caracteres: ' + str(tamanio_cola(C_car)))
    while not cola_vacia(C_car):
        dato = atencion(C_car)
        if dato.isalpha():
            cont_letras += 1
        if dato == '?':
            inter = True
        if dato == '#':
            numer = True
    print('Cantidad de letras en la cola de caracteres: ' + str(cont_letras))
    if inter:
        print('Existen signos de interrogacion en la cola')
    else:
        print('NO existen signos de interrogacion en la cola')
    if numer:
        print('Existen numerales en la cola')
    else:
        print('NO existen numerales en la cola')
Example #3
0
def dos_colas():
    '''Combina dos colas en una ordenada'''
    C1 = Cola()
    C2 = Cola()
    dato1 = [0, 2, 4, 6, 8]
    dato2 = [1, 3, 5, 7, 9]
    for i in range(0, len(dato1)):
        arribo(C1, dato1[i])
        arribo(C2, dato2[i])
    print('Cola 1')
    barrido_cola(C1)
    print('Cola 2')
    barrido_cola(C2)
    print()
    for i in range(0, tamanio_cola(C1)):
        if en_frente(C1) < en_frente(C2):
            mover_final(C1)
        else:
            while en_frente(C1) > en_frente(C2):
                arribo(C1, atencion(C2))
            mover_final(C1)
    while not cola_vacia(C2):
        arribo(C1, atencion(C2))
    print('Cola combinada y ordenada')
    barrido_cola(C1)
Example #4
0
def Haversine():
    '''Datos de bases rebeldes proporcionados a un Caza TIE'''
    C, Caux, P = Cola(), Cola(), Pila()
    base = [
        'Base Dantooine', 'Base Eco', 'Cuartel General de la Resistencia',
        'Gran Templo de Massassi', 'Puesto de avanzada Beta'
    ]
    lat = [73, -23, -37, 45, 4]
    lng = [-54, 166, -72, 4, 113]
    q1 = radians(randint(-90, 90))  # latitud de origen
    d1 = radians(randint(-180, 180))  # longitud de origen
    # q2 = latitud de llegada
    # d2 = longitud de llegada
    r = 6371  # en kilometros
    c1, c2, c3 = 0, 0, 0
    for i in range(len(base)):
        arribo(C, [base[i], randint(10, 200), lat[i], lng[i]])
    print('Base | Tamanio de la flota | Latitud | Longitud')
    barrido_cola(C)
    print()
    print('Coordenada actual:', round(q1, 6), ',', round(d1, 6))
    while not cola_vacia(C):
        x = atencion(C)
        q2 = radians(x[2])
        d2 = radians(x[3])
        formula = 2 * r * asin(
            sqrt(
                sin((q1 - q2) / 2)**2 +
                cos(q1) * cos(q2) * sin((d1 - d2) / 2)**2))
        dist = int(formula)
        print(x[0] + ' se encuentra a ' + str(dist) + 'km')
        apilar(P, [dist, x[0], x[1]])
        arribo(Caux, [x[1], x[0], dist])
    print()
    P = ordenar_pila(P)
    c1 = desapilar(P)
    c2 = desapilar(P)
    c3 = desapilar(P)
    print('Las tres bases mas cercanas son:')
    print(c1[1] + ' se encuentra a ' + str(c1[0]) + 'km')
    print(c2[1] + ' se encuentra a ' + str(c2[0]) + 'km')
    print(c3[1] + ' se encuentra a ' + str(c3[0]) + 'km')
    if c1[2] > c2[2] and c1[2] > c3[2]:
        print(c1[1] + ' posee la mayor flota aerea')
    elif c2[2] > c1[2] and c2[2] > c3[2]:
        print(c2[1] + ' posee la mayor flota aerea')
    else:
        print(c3[1] + ' posee la mayor flota aerea')
    print()
    barrido_cola(Caux)
    cont = 0
    while not cola_vacia(Caux):
        dato = atencion(Caux)
        if dato[0] > cont:
            cont = dato[0]
            info = dato
    print()
    print(info[1], 'posee la mayor flota(' + str(info[0]) + ')')
    print('Se encuentra a:', info[2], 'km')
Example #5
0
def aeropuerto():
    '''Algoritmo que permite administrar los despegues y aterrizajes de un
    aeropuerto'''
    Cdesp, Cater = Cola(), Cola()
    empr = [
        'Singapore Airlines', 'Fly Emirates', 'LATAM', 'Qatar Airways',
        'Aerolineas Argentinas', 'Iberia', 'Turkish Airlines', 'Avianca'
    ]
    hs = [00.30, 02.00, 04.45, 07.15, 12.15, 15.30, 18.05, 20.40]
    hl = [03.10, 04.30, 08.00, 11.25, 14.30, 17.50, 21.20, 23.45]
    aero = [
        'Aeropuerto Alfa', 'Aeropuerto Beta', 'Aeropuerto Gamma',
        'Aeropuerto Delta', 'Aeropuerto Lambda', 'Aeropuerto Sigma',
        'Aeropuerto Omega', 'Aeropuerto Epsilon', 'Aeropuerto Kappa'
    ]
    tipo = ['Negocios', 'Carga', 'Pasajeros']
    tdesp = [9, 3, 5]
    tater = [12, 5, 10]
    print(
        '     Empresa      | Hora salida | Hora llegada |    Origen    |    Destino    | Tipo de vuelo'
    )
    for i in range(len(empr)):
        arribo(
            Cdesp,
            [empr[i], hs[i], hl[i],
             choice(aero),
             choice(aero),
             choice(tipo)])
    barrido_cola(Cdesp)
    print('')
    while not cola_vacia(Cdesp) or not cola_vacia(Cater):
        if not cola_vacia(Cater):
            avion = atencion(Cater)
            pos = tipo.index(avion[5])
            tiempo = tater[pos]
            print('')
            print('Aterrizando avion de la empresa: ' + str(avion[0]))
            print('Horario de llegada: ' +
                  str('{0:.2f}'.format(avion[2]).zfill(5)) + 'hs')
            print('Tipo de vuelo: ' + str(avion[5]))
            sleep(tiempo)
        else:
            avion = atencion(Cdesp)
            pos = tipo.index(avion[5])
            tiempo = tdesp[pos]
            print('')
            print('Despegando avion de la empresa: ' + str(avion[0]))
            print('Horario de salida: ' +
                  str('{0:.2f}'.format(avion[1]).zfill(5)) + 'hs')
            print('Tipo de vuelo: ' + str(avion[5]))
            sleep(tiempo)
            arribo(Cater, avion)
Example #6
0
def invertir_pilaa(P):
    C = Cola()
    while not pila_vacia(P):
        arribo(C, desapilar(P))
    while not cola_vacia(C):
        apilar(P, atencion(C))
    barrido_pila(P)
Example #7
0
def marvel():
    '''Cola con personajes de Marvel Cinematic Universe'''
    C = Cola()
    personaje = ['Carol Danvers', 'Natasha Romanoff', 'Gamora Zen Whoberi',
                 'Tony Stark', 'Scott Lang', 'Steve Rogers', 'Stephen Strange',
                 'Peter Benjamin Parker']
    superheroe = ['Capitana Marvel', 'Black Widow', 'Gamora', 'Iron Man',
                  'Ant-Man', 'Capitan America', 'Doctor Strange', 'Spider Man']
    genero = ['F', 'F', 'F', 'M', 'M', 'M', 'M', 'M']
    for i in range(len(personaje)):
        arribo(C, [personaje[i], superheroe[i], genero[i]])
    print('Nombre del personaje | Nombre del superheroe | Genero')
    barrido_cola(C)
    print('')
    while not cola_vacia(C):
        dato = atencion(C)
        if dato[1] == 'Capitana Marvel':
            print('El personaje de la Capitana Marvel es: ' + dato[0])
        if dato[2] == 'F':
            print(dato[1] + ', personaje femenino')
        if dato[2] == 'M':
            print(dato[1] + ', personaje masculino')
        if dato[0] == 'Scott Lang':
            print('El nombre del superheroe de Scott Lang es: ' + dato[1])
        cad = dato[0]
        if cad[0] == 'S' or cad[0] == 'S':
            print('El personaje ' + dato[0] + ' empieza con S')
            print('El superheroe ' + dato[1] + ' empieza con S')
        if dato[0] == 'Carol Danvers':
            print('El superheroe de Carol Danvers es: ' + dato[1])
def punto_2():
    cola, nueva_cola, cola_ig = Cola(), Cola(), Cola()
    app = ['Facebook', 'Twitter', 'Instagram']
    cmnt = ['Nuevo amigo', 'Python', 'Me gusta', 'Hola!']
    for i in range(10):
        dato = Notificacion(choice(app), time(randint(0, 23), randint(0,59)), choice(cmnt))
        arribo(cola, dato)
    print('APLICACION | HORA | MENSAJE')
    barrido_cola(cola)
    print()
    while not cola_vacia(cola):
        aux = atencion(cola)
        # c
        if aux.app == 'Instagram':
            arribo(cola_ig, aux)
        # b
        if aux.app == 'Twitter' and aux.msj == 'Python':
            print('Notificaciones de Twitter que lleve la palabra Python:')
            print(aux)
        # a
        if aux.app != 'Facebook':
            arribo(nueva_cola, aux)
    print()
    print('Cola de notificaciones sin Facebook')
    barrido_cola(nueva_cola)
    print()
    print('Notificaciones de instagram almacenadas temporalmente')
    barrido_cola(cola_ig)
Example #9
0
def primoss(C):
    Caux = Cola()
    while not cola_vacia(C):
        x = atencion(C)
        if primos(x):
            arribo(Caux, x)
    C = Caux 
    barrido_cola(C)
Example #10
0
def cola_ordenada():
    '''Manteniene ordenados los elementos agregados en una cola'''
    C = Cola()
    Caux = Cola()
    for i in range(10):
        dato = randint(1, 50)
        print(str(dato) + ' agregado')  # pregunta uno por uno
        while not cola_vacia(C) and en_frente(C) <= dato:
            arribo(Caux, atencion(C))
        arribo(Caux, dato)
        while not cola_vacia(C):
            arribo(Caux, atencion(C))
        while not cola_vacia(Caux):
            arribo(C, atencion(Caux))
    print()
    print('Cola ordenada:')
    barrido_cola(C)
Example #11
0
def invertir(C):
    P = Pila()
    while not cola_vacia(C):
        apilar(P, atencion(C))
    while not pila_vacia(P):
        arribo(C, desapilar(P))
    print ('pila invertida')
    barrido_cola(C)
Example #12
0
def i_esimo_cola(C):
    '''Elimina un i-esimo elemento despues de frente de la cola'''
    Caux = Cola()
    pos = 5
    if tamanio_cola(C) > pos:
        i = 0
        while i < pos:
            x = atencion(C)
            arribo(Caux, x)
            i += 1
        elim = atencion(C)
        print('elemento eliminado:', elim)
        while not cola_vacia(C):
            arribo(Caux, atencion(C))
        print('Nueva cola')
        barrido_cola(Caux)
    else:
        print('Se excedio la cantidad de posiciones')
Example #13
0
def invertir_cola(C):
    '''Invierte el contenido de una cola con una pila auxiliar'''
    P = Pila()
    while not cola_vacia(C):
        apilar(P, atencion(C))
    while not pila_vacia(P):
        arribo(C, desapilar(P))
    print('Cola invertida')
    barrido_cola(C)
Example #14
0
def ocurrencias(C):
    '''Cantidad de repeticiones de un determinado elemento en una cola'''
    c = 0
    busc = 2  # elemento a comparar
    while not cola_vacia(C):
        dato = atencion(C)
        if dato == busc:
            c += 1
    print('El elemento', busc, 'se repite', c, 'veces')
Example #15
0
def vocales(C):
    Caux = Cola()
    while not cola_vacia(C):
        aux = atencion(C)
        if (aux == 'a') or (aux == 'e') or (aux == 'i') or (aux == 'o') or (aux == 'u') or (aux == 'A') or (aux == 'E') or (aux == 'I') or (aux == 'O') or (aux == 'U'):
            arribo(Caux, aux)
    C = Caux
    print('La Cola sin vocales es')
    barrido_cola(C)
Example #16
0
def personajes_sw():
    '''Operaciones sobre una cola de personajes de star wars
    y sus planetas de origen'''
    C, Caux, C1, C2 = Cola(), Cola(), Cola(), Cola()
    personaje = [
        'Breha Organa', 'Bail Organa', 'Killik', 'Chirpa el Ewok',
        'Asha Fahn el Ewok', 'Kneesaa el Ewok', 'Saqueador Tusken',
        'Dathcha el Jawa', 'Jabba el Hutt', 'Luke Skywalker', 'Han Solo',
        'Yoda', 'Jar Jar Binks', 'Darth Maul'
    ]
    origen = [
        'Alderaan', 'Alderaan', 'Alderaan', 'Endor', 'Endor', 'Endor',
        'Tatooine', 'Tatooine', 'Tatooine', 'Polis Massa', 'Corellia',
        'Desconocido', 'Naboo', 'Dathomir'
    ]
    for i in range(0, len(personaje)):
        arribo(C, [personaje[i], origen[i]])
    print('Personaje  |   Planeta de origen')
    barrido_cola(C)
    print()
    while not cola_vacia(C):
        x = atencion(C)
        if x[1] == 'Alderaan' or x[1] == 'Endor' or x[1] == 'Tatooine':
            print(str(x[0]) + ' originario/a del planeta ' + str(x[1]))
        if x[0] == 'Luke Skywalker' or x[0] == 'Han Solo':
            print(str(x[0]) + ' originario/a del planeta ' + str(x[1]))
        if x[0] != 'Yoda':
            arribo(C1, x)
        else:
            arribo(C1, ['Sheev Palpatine', 'Naboo'])
            arribo(C1, x)
        arribo(Caux, x)
        while not cola_vacia(Caux):
            x = atencion(Caux)
            if x[0] == 'Jar Jar Binks' and not cola_vacia(Caux):
                atencion(Caux)
            arribo(C2, x)
    print()
    print('Agregar personaje antes de Yoda')
    barrido_cola(C1)
    print()
    print('Eliminar personaje despues de Jar Jar Binks')
    barrido_cola(C2)
Example #17
0
def numeros_ordenados():
    C = Cola()
    Caux = Cola()
    numeros1 = [0, 5, 9, 11]
    numeros2 = [2, 6, 10, 14]
    for i in range(0, len(numeros1)):
        arribo(C, numeros1[i])
        arribo(Caux, numeros2[i])
    for i in range(0, tamanio_cola(C)):
        if (en_frente(C) < en_frente(Caux)):
            mover_final(C)
        else:
            while (en_frente(C) > en_frente(Caux)):
                arribo(C, atencion(Caux))
            mover_final(C)
    while not cola_vacia(Caux):
        arribo(C, atencion(Caux))
    print('Termino')
    barrido_cola(C)
Example #18
0
def eliminacion(C):
    '''Elimina los numeros NO primos de una cola'''
    Caux = Cola()
    while not cola_vacia(C):
        x = atencion(C)
        if primos(x):  # Funcion primos() en TDA_ColaDin
            arribo(Caux, x)
    C = Caux
    print('Cola de numeros primos')
    barrido_cola(C)
def por_nivel(raiz):
    'Barrido por nivel'
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        print(nodo.info)
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        if nodo.der is not None:
            arribo(cola, nodo.der)
Example #20
0
def ocurrencias(C):
    #print('ingrese la ocurrencia que desear comparar')
    aux = 2 #queria poner un input pero cuando lo ponia , el programa no me funcionaba
    cont = 0
    while not cola_vacia(C):
        xx = atencion(C)
        if (xx == aux):
            cont += 1
    if (cont > 0):
        print('La cantidad de ocurrencias de esta cola es : ', cont)
    else:
        print('NO hay ocurrencias en esta cola')
Example #21
0
def vocales(C):
    '''Elimina las vocales de una cola'''
    Caux = Cola()
    while not cola_vacia(C):
        x = atencion(C)
        if ord(x.lower()) != 97 and ord(x.lower()) != 101 and ord(
                x.lower()) != 105 and ord(x.lower()) != 111 and ord(
                    x.lower()) != 117:
            arribo(Caux, x)
    C = Caux
    print('Cola sin vocales')
    barrido_cola(C)
Example #22
0
def palindromo(C):
    P = Pila()
    Caux = Cola()
    while not cola_vacia(C):
        apilar(P, atencion(C))
    while not pila_vacia(P):
        arribo(Caux, desapilar(P))
    barrido_cola(Caux)
    if (Caux == C):
        print ('son palindromo')
    else:
        print('NO es palindromo')
Example #23
0
def cortar_por_nivel(raiz, bosque):
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        if altura(nodo) == 7:
            bosque.append(nodo.izq)
            bosque.append(nodo.der)
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        if nodo.der is not None:
            arribo(cola, nodo.der)
Example #24
0
def por_nivel(raiz):
    'Barrido por nivel'
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        print(nodo.info)
        if nodo.info[0] == 'Obi-Wan Kenobi':
            print(nodo.info[0], 'se encuentra en el nivel:', nodo.altura)
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        if nodo.der is not None:
            arribo(cola, nodo.der)
def por_nivel_meteorolgico(raiz):
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        if nodo.campo is None or nodo.umbral is None:
            print(nodo.info)
        else:
            print(nodo.info, nodo.campo, nodo.umbral)
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        if nodo.der is not None:
            arribo(cola, nodo.der)
def por_nivel_nario(raiz):
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        print(nodo.info)
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        hno = nodo.der
        while hno is not None:
            print(hno.info)
            if hno.izq is not None:
                arribo(cola, hno.izq)
            hno = hno.der
Example #27
0
def rango_negativos(C):
    '''Calcula el rango de valores de una cola y la cantidad
    de numeros negativos que contiene'''
    neg, rango, max, min = 0, 0, 0, 0
    while not cola_vacia(C):
        x = atencion(C)
        if x > max:
            max = x
        if x < min:
            min = x
        if x < 0:
            neg += 1
    rango = max + min
    print('Rango de valores enteros: ' + str(rango))
    print('Cantidad de numeros negativos: ' + str(neg))
Example #28
0
def por_nivel_obi(raiz):
    'Barrido por nivel'
    nivel = 0
    cola = Cola()
    arribo(cola, raiz)
    while not cola_vacia(cola):
        nodo = atencion(cola)
        nivel += 1
        if nodo.info == 'Obi-Wan Kenobi':
            print('Nivel de Obi-Wan Kenobi: ', nivel)
            break
        if nodo.izq is not None:
            arribo(cola, nodo.izq)
        if nodo.der is not None:
            arribo(cola, nodo.der)
Example #29
0
def procesador():
    C = Cola()
    ID = [4242, 1244, 6446, 8655]
    tiempo = [8, 12, 2, 15]
    for i in range(len(ID)):
        arribo(C, [ID[i], tiempo[i]])
    print('ID | Tiempo')
    barrido_cola(C)
    while not cola_vacia(C):
        aux = atencion(C)
        if (aux[1] < 4.5):
            sleep(aux[1])
            print(aux, ' ejecutado con exito')
        else:
            print('El dato ', aux ,' excedio el tiempo de procesamiento de 4,5 segundos')
            print('El dato ha sido devuelto a la cola con el tiempo restante de ejecucion')
            aux[1] = aux[1] - 4.5
            arribo(C, aux)
Example #30
0
def calcularYcontar(C):
    cont = 0
    rango = 0
    max = 0
    min = 0
    while not cola_vacia(C):
        aux = atencion(C)
        if (aux < 0):
            cont += 1
        if (aux > max):
            max = aux
        if (min < aux):
            min = aux
    if (cont > 0):
        print('La cantidad de elementos negativos es : ', cont)
    else:
        print('Esta cola no tiene elementos negativos')
    rango = max + min #No se si asi se saca el rango
    print('El rango de esta cola es : ', rango)