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, '°')
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)
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')
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)
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)
def contar(): p_voc = Pila() p_con = Pila() po = Pila() parrafo = 'Los hombres no son nada, los principios lo son todo.' numeros = '0123456789' vocales = 'aeiouAEIOU' consonantes = 'bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ' print(parrafo) for dato in parrafo: if dato in vocales: apilar(p_voc, dato) elif dato in consonantes: apilar(p_con, dato) else: apilar(po, dato) # A) B) y D) voc, cons, o, eb, n = 0, 0, 0, 0, 0 while not pila_vacia(p_voc): desapilar(p_voc) voc += 1 while not pila_vacia(p_con): desapilar(p_con) cons += 1 while not pila_vacia(po): m = desapilar(po) o += 1 if m == ' ': eb += 1 elif m in numeros: n += 1 print('Cantidad de vocales:', voc) print('Cantidad de consonantes:', cons) print('Cantidad de otros caracteres:', o) print('Cantidad de espacios en blanco:', eb) print('Cantidad de numeros:', n) # C) total = voc + cons + o print('Porcentaje de vocales:', round(voc * 100 / total, 2), '%') print('Porcentaje de consonantes:', round(cons * 100 / total, 2), '%') # E) if voc == o: print('Igual cantidad de vocales y otros caracteres') else: print('Cantidades distintas de vocales y otros caracteres') # F) z = False while not pila_vacia(p_con): dato = desapilar(p_con) if dato == 'z': z = True if z: print('Existen letras Z en el parrafo')
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))
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))
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)
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)
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)
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
def cont_ocurrencias(pila, oc): c = 0 aux = 0 pila_auxiliar = Pila() while not pila_vacia(pila): aux = desapilar(pila) if oc == aux: c += 1 apilar(pila_auxiliar, aux) while not pila_vacia(pila_auxiliar): if c == 0: print('No existe el elemento ingresado en la pila') else: print('La cantidad de ocurrencias en la pila es de ' + str(c))
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")
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')
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)
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')
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)
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))
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))
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)
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))
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)
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)
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)
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)
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)
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)
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)
def palindromo(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) if cadena == cadena_aux: print("la palabra es palindromo")