コード例 #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 ?')
コード例 #2
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])
コード例 #3
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')
コード例 #4
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)
コード例 #5
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)
コード例 #6
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)
コード例 #7
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)
コード例 #8
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)
コード例 #9
0
def aeropuerto():
    C = Cola()
    nom_empresa = ['Singapore Airlines', 'Qatar Airways', 'Emirates', 'Delta']
    hora_salida = [21.00, 10.00, 17.15, 7.30]
    hora_llegada = [4.00, 19.30, 1.00, 00.45]
    aerop_origen = ['Aeropuerto de Changi', 'Aeropuerto Internacional de Incheon', 'Aeropuerto Internacional de Haneda', 'Aeropuerto Internacional de Hong Kong']
    aerop_destino = ['Aeropuerto Internacional Hamad', 'Aeropuerto de Munich', 'Aeropuerto Internacional Chubu Centrair', 'Aeropuerto de Heathrow']
    tipo = ['Negocio', 'Pasajero', 'Negocio', 'Carga']
    print('     Empresa      | Hora salida | Hora llegada |  Aeropuerto de Origen    |    Aeropuerto de Destino    | Tipo de vuelo')
    for i in range(0, len(nom_empresa)):
        arribo(C, [nom_empresa[i], hora_salida[i], hora_llegada[i], aerop_origen[i], aerop_destino[i], tipo[i]])
    barrido_cola(C)
コード例 #10
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)
コード例 #11
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')
コード例 #12
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)
コード例 #13
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)
コード例 #14
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)
コード例 #15
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')
コード例 #16
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)
コード例 #17
0
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)
コード例 #18
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)
コード例 #19
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)
コード例 #20
0
def StarWars ():
    C = Cola()
    Caux = Cola()
    Caux2 = 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)
    while not cola_vacia(C):
        aux = atencion(C)
        if (aux[1] == 'Alderaan') or (aux[1 == 'Endor']) or (aux[1] == 'Tatooine'):
            print('El personaje ', aux[0], ' pertenece al planeta ', aux[1])
        if (aux[0] == 'Luke Skywalker'):
            print('El planeta natal de Luke Skywalker es ', aux[1])
        if (aux[0] == 'Han Solo'):
            print('El planeta natal de Han Solo es ', aux[1])
        if (aux[0] != 'Yoda'):
           arribo(Caux, aux)
        else:
            arribo(Caux, ['Personaje', 'Nuevo'])
            arribo(Caux, aux) 
        if (aux[0] != 'Jar Jar Binks'):
            arribo(Caux2, aux)
        else:
            arribo(Caux2, aux)
            arribo(Caux2, ['Personaje2', 'Nuevo2'])
    print('La Cola con el personaje nuevo antes de Yoda es:')
    barrido_cola(Caux)
    print('La Cola con el personaje nuevo despues de Jar Jar Binks es:')
    barrido_cola(Caux2)
コード例 #21
0
def turnos():
    '''Cola de turnos en un consultorio'''
    Corig, Caux, C1, C2 = Cola(), Cola(), Cola(), Cola()
    letr = ['A', 'B', 'C', 'D', 'E', 'F']
    for i in range(1000):
        # zfill() agrega ceros a la izquierda
        arribo(Corig, [choice(letr), randint(000, 999)])
    barrido_cola(Corig)
    while not cola_vacia(Corig):
        dato = atencion(Corig)
        if dato[0] == 'A' or dato[0] == 'C' or dato[0] == 'F':
            arribo(C1, dato)
        if dato[0] == 'B' or dato[0] == 'D' or dato[0] == 'E':
            arribo(C2, dato)
        arribo(Caux, dato)
    print('Cantidad turnos A, C o F: ' + str(tamanio_cola(C1)))
    print('Cantidad turnos B, D o E: ' + str(tamanio_cola(C2)))
    if tamanio_cola(C1) > tamanio_cola(C2):
        print('La cola 1 tiene mayor cantidad de turnos')
    elif tamanio_cola(C2) > tamanio_cola(C1):
        print('La cola 2 tiene mayor cantidad de turnos')
    else:
        print('Son iguales')
    print('')
    A, C, F = 0, 0, 0
    B, D, E = 0, 0, 0
    while not cola_vacia(C1):
        dato1 = atencion(C1)
        if dato1[0] == 'A':
            A += 1
        if dato1[0] == 'C':
            C += 1
        if dato1[0] == 'F':
            F += 1
    while not cola_vacia(C2):
        dato2 = atencion(C2)
        if dato2[0] == 'B':
            B += 1
        if dato2[0] == 'D':
            D += 1
        if dato2[0] == 'E':
            E += 1
    print('La cola 1 contiene:')
    print('A: ' + str(A) + ', C: ' + str(C) + ', F: ' + str(F))
    print('La cola 2 contiene:')
    print('B: ' + str(B) + ', D: ' + str(D) + ', E: ' + str(E))
    print('')
    if A > C and A > F:
        print('En cola 1, mayoria de letras A')
    elif C > A and C > F:
        print('En cola 1, mayoria de letras C')
    else:
        print('En cola 1, mayoria de letras F')
    if B > D and B > E:
        print('En cola 2, mayoria de letras B')
    elif D > B and D > E:
        print('En cola 2, mayoria de letras D')
    else:
        print('En cola 2, mayoria de letras E')
    print('')
    cont = 0
    while not cola_vacia(Caux):
        dato = atencion(Caux)
        if dato[1] <= 506:
            # print(dato)
            cont += 1
    print('Cantidad de turnos con numero menor a 506: ' + str(cont))