예제 #1
0
def caracteres(cola):
    cola_d = Cola()
    cola_c = Cola()
    cont = 0
    num = False
    i = False
    while not cola_vacia(cola):
        dato = atencion(cola)
        if dato.isdigit():
            arribo(cola_d, dato)
        else:
            arribo(cola_c, dato)
    print('El tamaño de la cola de numeros es: ' + str(tamanio(cola_d)))
    print('El tamaño de la cola de caracteres es: ' + str(tamanio(cola_c)))
    while not cola_vacia(cola_c):
        dato = atencion(cola_c)
        if dato.isalpha():
            cont += 1
        if dato == '?':
            i = True
        if dato == '#':
            num = True
    print('Cantidad de letras en la cola de caracteres es de : ' + str(cont))
    if i:
        print('Hay signos de interrogacion en la cola')
    if num:
        print('Existen # en la cola')
예제 #2
0
def cola_con_negativos(cola):
    while tamanio(cola) < 20:
        datos = int(randint(-30, 30))
        arribo(cola, datos)
    print('cola')
    for x in range(tamanio(cola)):
        print(en_frente(cola))
        mover_final(cola)

    print(cola_con_negativos(cola))
    max = None
    min = None
    c = 0
    for i in range(tamanio(cola)):
        if (max == None) and (min == None):
            max = en_frente(cola)
            min = en_frente(cola)
        else:
            if (max < en_frente(cola)):
                max = en_frente(cola)
            if min > en_frente(cola):
                min = en_frente(cola)
        if en_frente(cola) < 0:
            c += 1
        mover_final(cola)

    print("El rango es entre" + str(min) + " y " + str(max))
    print("La cantidad de negativos es: " + str(c))
예제 #3
0
def eliminar(cola):
    cola_aux = Cola()
    pos = 5
    if tamanio(cola) > pos:
        i = 0
        while i < pos:
            x = atencion(cola)
            arribo(cola_aux, x)
            i += 1
        eliminado = atencion(cola)
        print('El elemento eliminado es:', eliminado)
        while not cola_vacia(cola):
            arribo(cola_aux, atencion(cola))
        print('Cola:')
        barrido_cola(cola_aux)
예제 #4
0
def eliminacion(cola):
    cola = Cola()
    while not cola_vacia(cola):
        m = atencion(cola)
    for i in range(tamanio(cola)):
        m = en_frente(cola)
    for i in range(0, m):
        i += 1
        if (m % i == 0):
            c_div += 1
    if c_div >= 3:
        atencion(cola)
    else:
        print(m)
        mover_final(cola)
예제 #5
0
def palindromo():
    pila = Pila()
    cola = Cola()
    palindromo = True
    palabra = 'anana'

    print(palabra)
    for letra in palabra:
        apilar(pila, letra)
        arribo(cola, letra)
    for i in range(0, tamanio(cola)):
        dato_cola = atencion(cola)
        dato_pila = desapilar(pila)
        if dato_cola != dato_pila:
            palindromo = False
    if palindromo:
        print(True)
    else:
        print(False)
예제 #6
0
def colas_combinadas():
    cola1 = Cola()
    cola2 = Cola()
    datos = [0, 2, 4, 7, 8, 10]
    datos2 = [1, 3, 5, 6, 9, 11]
    for i in range(0, len(datos)):
        arribo(cola1, datos[i])
        arribo(cola2, datos2[i])
    print('Cola 1 es :')
    barrido_cola(cola1)
    print('Cola 2 es:')
    barrido_cola(cola2)
    for i in range(0, tamanio(cola1)):
        if en_frente(cola1) < en_frente(cola2):
            mover_final(cola1)
        else:
            while en_frente(cola1) > en_frente(cola2):
                arribo(cola1, atencion(cola2))
            mover_final(cola1)
    while not cola_vacia(cola2):
        arribo(cola1, atencion(cola2))
    print('Combinacion de ambas colas: ')
    barrido_cola(cola1)
예제 #7
0
def consultorio():
    Corig = Cola()
    cola_aux = Cola()
    C1 = Cola()
    C2 = Cola()
    letras = ['A', 'B', 'C', 'D', 'E', 'F']
    for i in range(1000):
        arribo(Corig, [choice(letras), 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(cola_aux, dato)
    print('Cantidad turnos A, C o F: ' + str(tamanio(C1)))
    print('Cantidad turnos B, D o E: ' + str(tamanio(C2)))
    if tamanio(C1) > tamanio(C2):
        print('La cola 1 tiene mayor cantidad de turnos')
    elif tamanio(C2) > tamanio(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')
    c = 0
    while not cola_vacia(cola_aux):
        dato = atencion(cola_aux)
        if dato[1] <= 506:
            c += 1
    print('Cantidad de turnos con numero menor a 506: ' + str(c))
예제 #8
0
    cont = 0
    while not cola_vacia(cola_aux):
        dato = atencion(cola_aux)
        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')


#ej16

cola = Cola()
id = 0
while tamanio(cola) < 7:
    id += 1
    dato = [0, 0]
    dato[0] = id
    dato[1] = randint(1, 8)
    arribo(cola, dato)
while not cola_vacia(cola):
    if (en_frente(cola)[1] > 4.5):
        sleep(4.5)
        en_frente(cola)[1] -= 4.5
        print('El proceso ' + str(en_frente(cola)[0]) +
              'se excedio de tiempo y fue aarribado')
        mover_final(cola)
    else:
        sleep(en_frente(cola)[1])
        x = atencion(cola)