Example #1
0
def iesimo(pila, pos):
    paux = Pila()
    for i in range(0, pos):
        apilar(paux, desapilar(pila))
    desapilar(pila)
    while not pila_vacia(paux):
        apilar(pila, desapilar(paux))
Example #2
0
def interseccion_personajes():
    pila_5 = Pila()
    pila_7 = Pila()
    pila_aux = Pila()
    e5 = [
        'Luke Skywalker', 'Lando Calrissian', 'Yoda', 'Chewbacca',
        'Emperador Palpatine', 'C3PO'
    ]
    e7 = ['Rey', 'Finn', 'Luke Skywalker', 'Kylo Ren', 'Chewbacca', 'C3PO']
    for i in range(0, len(e5)):
        apilar(pila_5, e5[i])
        apilar(pila_7, e7[i])
    print('Episodio V: The empire strikes back')
    barrido_pila(pila_5)
    print('Episodio VII: The force awakens')
    barrido_pila(pila_7)
    while not pila_vacia(pila_5):
        m = desapilar(pila_5)
        while not pila_vacia(pila_7):
            y = desapilar(pila_7)
            if (m == y):
                print('El personaje ' + str(m) +
                      ' se encuentra en ambos episodios')
            apilar(pila_aux, y)
        while (not pila_vacia(pila_aux)):
            y = desapilar(pila_aux)
            apilar(pila_7, y)
Example #3
0
def buscar_personajes():
    pila = Pila()
    pila_auxiliar = Pila()
    Leia_Organa = False
    Boba_Fett = False
    personajes_sw = [
        'Leia Organa', 'Yoda', 'Palpatine', 'C-3po', 'Darth Maul',
        'Darth Vader', 'Luke Skywalker', 'Chewbacca'
    ]
    for i in range(0, 9):
        star_w = random.choice(personajes_sw)
        apilar(pila, star_w)
    while not pila_vacia(pila):
        m = desapilar(pila)
        if m == 'Leia Organa':
            apilar(pila_auxiliar, m)
            Leia_Organa = True
        if m == 'Boba Fett':
            apilar(pila_auxiliar, m)
            Boba_Fett = True
    while not pila_vacia(pila_auxiliar):
        apilar(pila, desapilar(pila_auxiliar))
    if Leia_Organa == True:
        print('Leia Organa existe en la pila de personajes')
    if Boba_Fett == True:
        print('Boba Fett existe en la pila de personajes')
Example #4
0
def ordenados():
    p = Pila()
    p_aux = Pila()
    aux = 0
    elemento = input("Ingrese el elemento (-100 para no cargar mas): ")
    int(elemento)
    while (elemento != -100):
        if pila_llena(p):
            print("No hay mas espacio")
        else:
            if pila_vacia(p):
                apilar(p, elemento)
            else:
                aux = desapilar(p)
                while elemento < aux and not pila_vacia(p):
                    apilar(p_aux, aux)
                    aux = desapilar(p)
                else:
                    if elemento < aux:
                        apilar(p, elemento)
                        apilar(p, aux)
                    else:
                        apilar(p, aux)
                        apilar(p, elemento)
                if not pila_vacia(p_aux):
                    while not pila_vacia(p_aux):
                        apilar(p, desapilar(p_aux))
            elemento = input("Ingrese el elemento (-100 para no cargar mas): ")
            int(elemento)
    barrido(p)
Example #5
0
def temperatura():
    p = Pila()
    p_aux = Pila()
    sum = 0
    c_encima = 0
    c_debajo = 0
    for i in range(0, 30):
        apilar(p, random.randint(15, 27))
    max = desapilar(p)
    min = max
    apilar(p, max)
    while not pila_vacia(p):
        aux = desapilar(p)
        sum = sum + aux
        if aux < min:
            min = aux
        if aux > max:
            max = aux
        apilar(p_aux, aux)
    media = sum / 30
    while not pila_vacia(p_aux):
        aux = desapilar(p_aux)
        if aux > media:
            c_encima += 1
        elif aux < media:
            c_debajo += 1
        apilar(p, aux)
    print("Valor maximo de temperatura: ", max)
    print("Valor minimo de temperatura: ", min)
    print("Promedio del total de los valores: ", media)
    print("Valores por encima de la media: ", c_encima)
    print("Valores por debajo de la media: ", c_debajo)
    print("Lista de los valores: ")
    barrido(p)
Example #6
0
def temperaturas(pila):
    pila = Pila()
    pila_aux = Pila()
    t_max = cima(pila)
    t_min = cima(pila)
    t_med = 0
    v_mayores = 0
    v_menores = 0
    print('Temperaturas registradas en el mes:')
    barrido_pila(pila)
    while not pila_vacia(pila):
        dato = desapilar(pila)
        t_med += dato
        if dato < t_min:
            t_min = dato
        if dato > t_max:
            t_max = dato
        apilar(pila_aux, dato)
    grado = tamanio_pila(pila_aux)
    t_med = t_med / grado
    while not pila_vacia(pila_aux):
        dato = desapilar(pila_aux)
        if dato >= t_med:
            v_mayores += 1
        else:
            v_menores += 1
    print('Temperatura minima:', t_min, '°')
    print('Temperatura maxima :', t_max, '°')
    print('El rango de temperatura media:', round(t_med, 2), '°')
    print('Temperaturas mayores e iguales a la media:', v_mayores, '°')
    print('Temperaturas menores a la media:', v_menores, '°')
Example #7
0
def eliminar_elemento(p, pos):
    pila_aux = Pila()
    for i in range(0, pos):
        apilar(pila_aux, desapilar(p))
    desapilar(p)
    while not pila_vacia(pila_aux):
        apilar(p, desapilar(pila_aux))
Example #8
0
def qe_onda_el_enunciado_wtf():
    cola = Cola()
    cola_aux = Cola()
    pila = Pila()
    base = [
        'Base Dantooine', 'Base Eco', 'Cuartel General de la Resistencia',
        'Gran Templo de Massassi', 'Puesto de avanzada Beta'
    ]
    latitud = [73, -23, -37, 45, 4]
    longitud = [-54, 166, -72, 4, 113]
    q1 = radians(randint(-90, 90))
    d1 = radians(randint(-180, 180))
    r = 6371
    c1 = 0
    c2 = 0
    c3 = 0
    for i in range(len(base)):
        arribo(cola, [base[i], randint(10, 200), latitud[i], longitud[i]])
    print('Base - Tamaño de flota - Latitud - Longitud')
    barrido_cola(cola)
    print('La coordenada actual es :', round(q1, 6), ',', round(d1, 6))
    while not cola_vacia(cola):
        x = atencion(cola)
        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(pila, [dist, x[0], x[1]])
        arribo(cola_aux, [x[1], x[0], dist])
    print()
    pila = ordenar(pila)
    c1 = desapilar(pila)
    c2 = desapilar(pila)
    c3 = desapilar(pila)
    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(cola_aux)
    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')
Example #9
0
def caminoMasCortoAristasPunto5(grafo, origen, destino, campo=0):
    camino = dijkstraAristasPunto5(grafo, origen, destino, campo)
    pila = Pila()
    while (not pila_vacia(camino)):
        dato = desapilar(camino)
        if (destino == dato[1][0].info):
            apilar(pila, dato[1][0].info)
            destino = dato[1][1]
    while (not pila_vacia(pila)):
        print(desapilar(pila))
Example #10
0
def caminoMasCortoPunto10(grafo, origen, destino, campo=0):
    camino = dijkstraPunto10(grafo, origen, destino, campo)
    pila = Pila()
    while (not pila_vacia(camino)):
        dato = desapilar(camino)
        if (destino == dato[1][0].info['nombre']):
            apilar(pila, dato[1][0].info['nombre'])
            destino = dato[1][1]
    while (not pila_vacia(pila)):
        print(desapilar(pila))
Example #11
0
def pila_pares(p):
    pila_aux = Pila()
    aux = 0
    while not pila_vacia(p):
        aux = desapilar(p)
        if (aux % 2) == 0:
            apilar(pila_aux, aux)
    while not pila_vacia(pila_aux):
        apilar(p, desapilar(pila_aux))
    print('Pila con pares: ')
    barrido(p)
Example #12
0
def pila_par(pila):
    paux = Pila()
    aux = 0
    while not pila_vacia(pila):
        aux = desapilar(pila)
        if aux % 2 == 0:
            apilar(paux, aux)
    while not pila_vacia(paux):
        apilar(pila, desapilar(paux))
    print('La pila con numeros pares es: ')
    barrido_pila(pila)
Example #13
0
def ordenar_pila(p):
    aux = Pila()
    while not pila_vacia(p):
        cont = 0
        dato = desapilar(p)
        while not pila_vacia(aux) and (cima(aux) >= dato):
            apilar(p, desapilar(aux))
            cont += 1
        apilar(aux, dato)
        for i in range(0, cont):
            apilar(aux, desapilar(p))
    return aux
Example #14
0
def ordenar_pila():
    pila = Pila()
    pila_auxiliar = Pila()
    while not pila_vacia(pila):
        dato = random.randint(1, 50)
        if not pila_vacia(pila):
            while not pila_vacia(pila) and cima(pila) >= dato:
                apilar(pila_auxiliar, desapilar(pila))
            apilar(pila, dato)
            while not pila_vacia(pila_auxiliar):
                apilar(pila, desapilar(pila_auxiliar))
            barrido_pila(pila)
Example #15
0
def reemplazar_ocurrencias(p, elemento):
    c = 0
    aux = 0
    pila_aux = Pila()
    while not pila_vacia(p):
        aux = desapilar(p)
        if elemento == aux:
            c += 1
            aux = int(input("Ingrese un numero para reemplazar la ocurrencia"))
        apilar(pila_aux, aux)
    while not pila_vacia(pila_aux):
        apilar(p, desapilar(pila_aux))
    if c == 0:
        print("El elemento no existe en la pila")
Example #16
0
def fibonacci(valor):
    p = Pila()
    p_aux = Pila()
    apilar(p, 0)
    apilar(p, 1)
    for i in range(1, valor):
        f1 = desapilar(p)
        f0 = desapilar(p)
        aux = f1 + f0
        apilar(p, f0)
        apilar(p, f1)
        apilar(p, aux)
    print("Fibonacci de: ", valor)
    barrido(p)
Example #17
0
def remplazar(pila, oc):
    c = 0
    aux = 0
    paux = Pila()
    while not pila_vacia(pila):
        aux = desapilar(pila)
        if oc == aux:
            c += 1
            aux == input('Ingrese una caracter para reemplazar  ')
        apilar(paux, aux)
    while not pila_vacia(paux):
        apilar(pila, desapilar(paux))
    if c == 0:
        print('El elemento no se encuentra en la pila')
Example #18
0
def ocurrencias(p, elemento):
    c = 0
    aux = 0
    pila_aux = Pila()
    while not pila_vacia(p):
        aux = desapilar(p)
        if elemento == aux:
            c += 1
        apilar(pila_aux, aux)
    while not pila_vacia(pila_aux):
        apilar(p, desapilar(pila_aux))
    if c == 0:
        print("El elemento no existe en la pila")
    else:
        print("La cantidad de ocurrencias del elemento son: ", c)
Example #19
0
def cant_vocale(pila):
    cont = 0
    while not pila_vacia:
        m = desapilar(pila)
        if m == 'A' or m == 'a' or m == 'E' or m == 'e' or m == 'I' or m == 'i' or m == 'O' or m == 'o' or m == 'U' or m == 'u':
            cont += 1
    print('La cantidad de vocales en la pila es : ', cont)
Example #20
0
def cartas():
    p = Pila()
    po = Pila()
    pb = Pila()
    pe = Pila()
    pc = Pila()
    palos = ['Oro', 'Basto', 'Copa', 'Espada']
    while not pila_llena(p):
        num = random.randint(1, 13)
        palo = random.choice(palos)
        apilar(p, [num, palo])
    while not pila_vacia(p):
        aux = desapilar(p)
        if aux[1] == "Basto":
            apilar(pb, aux)
        if aux[1] == "Copa":
            apilar(pc, aux)
        if aux[1] == "Oro":
            apilar(po, aux)
        if aux[1] == "Espada":
            apilar(pe, aux)
    print("Mazo de basto")
    barrido(pb)
    print("Mazo de copa")
    barrido(pc)
    print("Mazo de oro")
    barrido(po)
    print("Mazo de espada")
    barrido(pe)
    pe = ordenar_pila(pe)
    print("Mazo de espada ordenados")
    barrido(pe)
Example #21
0
def restringir_valores():
    p = Pila()
    p_aux = Pila()
    while not pila_llena(p):
        apilar(p, random.randint(0, 800))
    print("Lista de valores: ")
    barrido(p)
    while not pila_vacia(p):
        aux = desapilar(p)
        if (aux % 2 == 0) or (aux % 3 == 0) or (aux % 5 == 0):
            apilar(p_aux, aux)
    while not pila_vacia(p_aux):
        apilar(p, desapilar(p_aux))
    print("")
    print("Lista de valores que son multiplos de 2, 3 o 5")
    barrido(p)
Example #22
0
def peliculas():
    '''Pila de peliculas y sus datos'''
    pila = Pila()
    c = 0
    titulo = [
        'Reservoir Dogs', 'Bohemian Rhapsody', 'Doctor Strange',
        'Avengers: Infinity War', 'Guardianes de la galaxia'
    ]
    estudio = [
        'Marvel Studios', 'Artisan Entertainment', 'GK Films',
        'Marvel Studios', 'Marvel Studios', 'Marvel Studios'
    ]
    anio = ['1992', '2018', '2016', '2018', '2014']
    for i in range(0, 6):
        title, studio, year = titulo[i], estudio[i], anio[i]
        apilar(pila, [title, studio, year])
    print('Peliculas:')
    barrido_pila(pila)
    while not pila_vacia(pila):
        dato = desapilar(pila)
        if dato[2] == '2014':
            print(str(dato[0]) + ' fue estrenada en 2014')
        if dato[2] == '2018':
            c += 1
        if dato[1] == 'Marvel Studios' and str(dato[2]) == '2018':
            print(str(dato[0]) + ' fue producida por Marvel en el año 2018')
    print('Se estrenaron', c, 'peliculas en 2018')
Example #23
0
def ej_factorial(n):
    pila = Pila()
    aux = 1
    for i in range(1, n + 1):
        apilar(pila, i)
    while not pila_vacia(pila):
        aux = aux * desapilar(pila)
    print('Factorial del numero ingresado: ', str(aux))
Example #24
0
def invertir_pila(p):
    c = Cola()
    barrido(p)
    while not pila_vacia(p):
        arribo(c, desapilar(p))
    while not cola_vacia(c):
        apilar(p, atencion(c))
    barrido(p)
Example #25
0
def invertiir(pila):
    cola = Cola()
    while not pila_vacia(pila):
        arribo(cola, desapilar(pila))
    while not cola_vacia(cola):
        apilar(pila, atencion(cola))
    print('Pila invertida: ')
    barrido_pila(pila)
Example #26
0
def invertir(p):
    pila_aux = Pila()
    print('Pila original: ')
    barrido(p)
    while not pila_vacia(p):
        apilar(pila_aux, desapilar(p))
    print('Pila invertida: ')
    barrido(pila_aux)
Example #27
0
def factorial(num):
    p = Pila()
    aux = 1
    for i in range(1, num + 1):
        apilar(p, i)
    while not pila_vacia(p):
        aux = aux * desapilar(p)
    print('El factorial de ', num, 'es', aux)
Example #28
0
def vocales(p):
    c = 0
    while not pila_vacia(p):
        aux = desapilar(p)
        aux.lower()
        if (aux == 'a') or (aux == 'e') or (aux == 'i') or (aux == 'o') or (
                aux == 'u'):
            c += 1
    print("La cantidad de vocales es: ", c)
Example #29
0
def inversa(palabra):
    pila = Pila()
    aux = len(palabra)
    palabra_auxiliar = ''
    for i in range(0, aux):
        c = palabra[i]
        apilar(pila, c)
    while not pila_vacia(pila):
        palabra_auxiliar = palabra_auxiliar + desapilar(pila)
    print(palabra_auxiliar)
Example #30
0
def palabra_invertida(cadena):
    p = Pila()
    aux = len(cadena)
    cadena_aux = ''
    for i in range(0, aux):
        car = cadena[i]
        apilar(p, car)
    while not pila_vacia(p):
        cadena_aux = cadena_aux + desapilar(p)
    print(cadena_aux)