def dados(lista): t = [] for i in range(len(jugadores)): turno = None while turno == None: turno = randint(1,len(jugadores)) if turno in t: turno = None else: t.append(turno) insertar(lista,Jugador(jugadores[i],turno),'turno') print(str(turno) + '.- sera la posicion de ' + jugadores[i]) print('') print('--- Jugadores por turnos ---') barrido_lista(lista) print('') print('--- Comienza el juego ---') aux = lista.inicio while aux != ' ': dado = (choice(dados)) sleep(1) print('Dado = ' + str(dado)) if dado == 5: break else: print('El jugador ha sacado ' + str(dado)) print('...Turno del siguiente jugador...') aux = aux.sig if aux == None: aux = lista.inicio print('El jugador ' + aux.info.nombre + ' ha ganado')
def proyecto_software(lista): aux = lista.inicio lista_actividades = Lista() tareas_entre_fechas = Lista() costo = 0 sum_tiempo = 0 fecha1 = time.strftime("11/3/2019") fecha2 = time.strftime("14/11/2019") c = 0 persona = input('Ingrese una persona para ver activiades realizadas: ') while (aux is not None): sum_tiempo = sum_tiempo + aux.info[2] c += 1 costo = costo + aux.info[1] if aux.info[4] == persona: insertar(lista_actividades, aux.info[0]) if time.strftime(aux.info[3]) >= fecha1 and time.strftime( aux.info[3]) <= fecha2: insertar(tareas_entre_fechas, aux.info) aux = aux.sig print("Actiividades realizadas por ", persona) barridoLista(lista_actividades) print("Tareas realizadas entre ", fecha1, " y ", fecha2) barridoLista(tareas_entre_fechas) prom_tiempo = sum_tiempo / c print("Tiempo promedio de las tareas: ", prom_tiempo)
def local_informatica(lista_stock, lista_proveedores): lista_disco_solido = Lista() lista_teclado_inalambrico = Lista() lista_aux = Lista() lista_aux1 = Lista() aux_proveedores = lista_proveedores.inicio aux_stock = lista_stock.inicio while (aux_proveedores is not None): encontrado = False while (aux_stock is not None) and (encontrado is False): if (aux_proveedores.info[0] == aux_stock.info[0]): aux_stock.info[5] = aux_stock.info[5] + aux_proveedores.info[5] encontrado = True aux_stock = aux_stock.sig if encontrado is False: insertar(lista_stock, aux_proveedores.info) aux_proveedores = aux_proveedores.sig aux_stock = lista_stock.inicio while (aux_stock is not None): if (aux_stock.info[1] == 'Pendrive') and (aux_stock.info[2] == 'Kingston'): eliminar(lista_stock, aux_stock.info) if (aux_stock.info[1] == 'Disco solido'): insertar(lista_disco_solido, aux_stock.info) elif aux_stock.info[1] == 'Teclado inalambrico': insertar(lista_teclado_inalambrico, aux_stock.info) aux_stock = aux_stock.sig aux_disco_solido = lista_disco_solido.inicio aux_teclado_inalambrico = lista_teclado_inalambrico.inicio costo_disco_solido = 0 costo_teclado_inalambrico = 0 while (aux_disco_solido is not None) or (aux_teclado_inalambrico is not None): costo_disco_solido = costo_disco_solido + (aux_disco_solido.info[4] * aux_disco_solido.info[5]) costo_teclado_inalambrico = costo_teclado_inalambrico + ( aux_teclado_inalambrico.info[4] * aux_teclado_inalambrico.info[5]) aux_disco_solido = aux_disco_solido.sig aux_teclado_inalambrico = aux_teclado_inalambrico.sig aux_stock = lista_stock.inicio while (aux_stock is not None): insertar(lista_aux, aux_stock.info, 1) insertar(lista_aux1, aux_stock.info, 2) aux_stock = aux_stock.sig print('------------------------------------------------------------') print("Listado ordenado por tipo: ") barridoLista(lista_aux) print('------------------------------------------------------------') print("Listado ordenado por marca: ") barridoLista(lista_aux1) print('------------------------------------------------------------') print('Costo de existencia del disco solido: ', costo_disco_solido) print('Costo de existencia del teclado inalambrico: ', costo_teclado_inalambrico) print('------------------------------------------------------------') barridoLista(lista_stock)
def parciales(lista): print('Alumnos ordenados por apellido: ') for i in range(len(alumnos)): legajo = i+1 dato = Alumno(alumnos[i],apellidos[i],legajo) insertar(lista, dato, 'apellido') barrido_lista(lista) for i in range(tamanio_lista(lista)): i += 1 for j in range(3): pos = busqueda_lista(lista,i,'legajo') dato = Parcial(materias[j],randint(4,10),date(2020,randint(1,12),randint(1,30))) insertar(pos.sublista, dato, 'materia') barrido_sublista(lista) print(' ') aux = lista.inicio p = 0 while aux != None: aprobado = True cont = 0 prom = 0 pos = aux.sublista.inicio while pos != None: cont += 1 if pos.info.nota < 7: aprobado = False prom += pos.info.nota pos = pos.sig if aprobado == True: print(aux.info.nombre + ' ' + aux.info.apellido + ' aprobó todas las materias') if ((prom / cont) > 8.89): p += 1 print(aux.info.nombre + ' ' + aux.info.apellido + ' Tiene promedio mayor a 8,89, su promedio es: ' + str(round(prom/cont,2))) aux = aux.sig if (p < 1): print('Ningun alumno tiene promedio mayor a 8,89.') print('') print('Alumnos con apellido que comienza con L') aux = lista.inicio while aux != None: if aux.info.apellido[0] == 'L': print(aux.info.nombre + ' ' + aux.info.apellido + '; legajo ' + str(aux.info.legajo)) aux = aux.sig print('') print('Promedio general:') aux = lista.inicio while aux != None: suma_notas = 0 c = 0 pos = aux.sublista.inicio while pos != None: suma_notas += pos.info.nota c += 1 pos = pos.sig prom = (suma_notas / c) print('El promedio de el alumno ' + aux.info.nombre + ' ' + aux.info.apellido + ' es ' + str(round(prom,2))) aux = aux.sig
def diccionario(palabra, significado, tabla): dato = [palabra, significado] aux = hash_palabra(palabra) if tabla[aux] is None: lista = Lista() insertar(lista, dato) tabla[aux] = lista else: insertar(tabla[aux], dato)
def dividir_lista(lista): aux = lista.inicio lista_par = Lista() while aux is not None: if aux.info % 2 == 0 : insertar(lista_par, aux.info) eliminar(lista,aux.info) aux = aux.sig print('Lista par es :') barrido_lista(lista_par) print('la lista de impares es: ') barrido_lista(lista)
def separa_pares(l): lista_pares = Lista() aux = l.inicio while (aux is not None): if (aux.info % 2) == 0: insertar(lista_pares, aux.info) eliminar(l, aux.info) aux = aux.sig print('Lista de pares: ') barridoLista(lista_pares) print('Lista de impares') barridoLista(l)
def lista_sin_repetidos(lista1, lista2): lista_sr = Lista() aux = lista1.inicio while aux is not None: if busqueda_lista(lista_sr, aux.info) is None: insertar(lista_sr, aux.info) aux = aux.sig aux = lista2.inicio while aux is not None: if busqueda_lista(lista_sr, aux.info) is None: insertar(lista_sr, aux.info) aux = aux.sig print('Lista concatenada sin repetidos:') barrido_lista(lista_sr) print('Interseccion de las listas: ', tamanio_lista(lista_sr))
def omitir_repetidos(l1, l2): lista_aux = Lista() lista_aux = l1 aux = l2.inicio print('Lista 1') barridoLista(l1) print('Lista 2') barridoLista(l2) c = 0 while (aux is not None): if busquedaLista(lista_aux, aux.info) == -1: insertar(lista_aux, aux.info) else: c += 1 aux = aux.sig print('Cantidad de repetidos: ', c) print('Lista concatenada sin repeticiones: ') barridoLista(lista_aux)
def repositorio(lista): cambios = Lista() sin_lineas = Lista() aux = lista.inicio max = aux.info[1].tamanio usuario_mas_commit = aux.info[0] aux_commit = aux.info[1].inicio max_lineas = aux_commit.info[3] usuario_mas_lineas = aux.info[0] min_lineas = aux_commit.info[4] usuario_menos_lineas = aux.info while (aux is not None): if aux.info[1].tamanio > max: usuario_mas_commit = aux.info[0] max = aux.info[1].tamanio aux_commit = aux.info[1].inicio while (aux_commit is not None): if time.strftime(aux_commit.info[1]) > time.strftime('19:45'): if aux_commit.info[2] == 'test.py': insertar(cambios, aux.info[0]) if aux_commit.info[3] > max_lineas: usuario_mas_lineas = aux.info[0] max_lineas = aux_commit.info[3] if aux_commit.info[3] < min_lineas: min_lineas = aux_commit.info[4] usuario_menos_lineas = aux.info if aux_commit.info[3] == 0 and aux_commit.info[4] == 0: insertar(sin_lineas, aux.info[0]) aux_commit = aux_commit.sig aux = aux.sig print('Usuario con mayor cantidad de commits: ', usuario_mas_commit) print('Usuario con mayor cantidad de lineas agregadas: ', usuario_mas_lineas) print('Usuario con menor cantidad de lineas agregadas: ', usuario_menos_lineas) print('Usuarios que realizaron cambios en Test.py despues de las 19:45: ') barridoLista(cambios) print('Usuarios que realizaron commits sin agregar ni eliminar lineas: ') barridoLista(sin_lineas)
def musica(l): lista_artics_monkeys = Lista() aux = l.inicio max_duracion = aux.info[2] info = '' while (aux is not None): if aux.info[1] == 'Artics Monkeys': insertar(lista_artics_monkeys, aux.info[0]) if aux.info[2] > max_duracion: info = aux.info max_duracion = aux.info[2] aux = aux.sig print('La cancion mas larga es: ', info[0]) print('El artista es: ', info[1]) print('La duracion es es: ', info[2]) print('La cantidad de reproducciones es: ', info[3]) print('Canciones de Artic Monkeys: ') barridoLista(lista_artics_monkeys) print("Lista ordenada por cantidad de reproducciones (TOP 5): ") barridoLista(l)
def productos(lista): lista_aux = Lista() calificacion_3 = Lista() productos_h = Lista() prod = input('Ingrese el producto: ') aux = lista.inicio while (aux is not None): if aux.info[0] == prod: print('Datos del producto: ') print(aux.info) if aux.info[2] == 3: insertar(calificacion_3, aux.info, 1) if aux.info[0][0] == 'h' or aux.info[0][0] == 'H': insertar(productos_h, aux.info) aux = aux.sig campo = input( 'Para ordenar por nombre ingrese 0; Para ordenar por calificacion ingrese 2: ' ) aux = lista.inicio while (aux is not None): insertar(lista_aux, aux.info, campo) aux = aux.sig if campo == '0': print('Lista ordenada por nombre: ') barridoLista(lista_aux) elif campo == '2': print('Listado ordenado por calificacion: ') barridoLista(lista_aux) else: print('ERROR!') print('Producto mas barato de calificacion 3: ', calificacion_3.inicio.info) print('Precio de los productos que empiezan con H: ') barridoLista(productos_h)
def proyecto_sW(): proyecto = Lista() a_tiempo = Lista() fuera_de_tiempo = Lista() personal = ['Milagros', 'Fiamaa', 'Lujan', 'Raul', 'Pamela', ''] actividades = ['Recopilar informacion','Estudio de factibilidad','Planificacion','Analisar la informacion','Codificar el sistema','Probar el sistema','Instalacion Sw'] prom = 0 costo_total = 0 for i in range(len(personal)): costo = randint(0, 50000) tiempo_ejecucion = randint(1, 10) fecha_inicio = [ randint(1, 31), randint(1, 12),2020] fecha_estimada = [ randint(1, 31), randint(1, 12),2020] fechaF_efectiva = [ randint(1, 31), randint(1, 12),2020] persona_cargo = choice(personal) actividad = actividades[i] tareas = [costo,actividad, tiempo_ejecucion, fecha_inicio, fecha_estimada, fechaF_efectiva, persona_cargo] insertar(proyecto, tareas) print() print('Lista con actividades:') barrido_lista(proyecto) aux = proyecto.inicio print() while aux is not None: # A prom = prom + aux.info[2] # B costo_total = costo_total + aux.info[0] # C if aux.info[5]: print('Persona:',aux.info[6]) print('Actividades que realiza:',aux.info[1]) print('Costo de la actividad:',aux.info[0]) print('Tiempo de ejecucion:',aux.info[2]) print() if aux.info[2] < 7: insertar(a_tiempo,aux.info[1]) else: insertar(fuera_de_tiempo,aux.info[1]) aux = aux.sig # D fecha1 = [1,2,2020] fecha2 = [25,4,2020] print() print('Actividades entre '+ str(fecha1) + ' y '+ str(fecha2)) aux = proyecto.inicio while aux is not None: if fecha1 < aux.info[5] and fecha2 > aux.info[5]: print(aux.info[1]) aux = aux.sig print() print('Tareas que se realizaron a tiempo: ') barrido_lista(a_tiempo) print() print('Tareas que se realizaron fuera de tiempo: ') barrido_lista(fuera_de_tiempo)
self.apellido = apellido self.nombre = nombre self.dni = dni def __str__(self): return self.apellido + " " + self.nombre + " " + str(self.dni) # persona = Persona('acosta', 'juan', 33) # dic = persona.__dict__ # print('nombre' in dic) lista = Lista() persona = Persona('acosta', 'juan', 33) insertar(lista, persona, 'apellido') persona = Persona('perez', 'martin', 35) insertar(lista, persona, 'apellido') persona = Persona('perez', 'jorge', 36) insertar(lista, persona, 'apellido') persona = Persona('bonato', 'ana', 34) insertar(lista, persona, 'apellido') barrido(lista) #perez martin persona1 = eliminar(lista, 80, 'dni') print('dato eliminado', persona1) barrido(lista)
from tda_lista import Lista, insertar, eliminar, busqueda, barrido, lista_vacia from random import randint lista = Lista() for i in range(100): insertar(lista, chr(randint(65, 90))) barrido(lista) dato = eliminar(lista, 'A') while (dato is not None): dato = eliminar(lista, 'A') dato = eliminar(lista, 'E') while (dato is not None): dato = eliminar(lista, 'E') dato = eliminar(lista, 'I') while (dato is not None): dato = eliminar(lista, 'I') dato = eliminar(lista, 'O') while (dato is not None): dato = eliminar(lista, 'O') dato = eliminar(lista, 'U') while (dato is not None): dato = eliminar(lista, 'U') print() barrido(lista)
#Ejercicio 2 class Personaje(object): """docstring for Personaje""" def __init__(self, nombre_s, anio, nombre_p="", grupo=""): self.nombre_p = nombre_p self.nombre_s = nombre_s self.anio = anio self.grupo = grupo p1 = Personaje("Capitana Marvel", 1992, "", "Guardianes de la galaxia") p2 = Personaje("Vlanck Widow", 1961, "asd", "Guardianes de la galaxia") listaPersonajes = li.Lista() li.insertar(listaPersonajes, p1, 'nombre_s') li.insertar(listaPersonajes, p2, 'nombre_s') #A if li.busqueda(listaPersonajes, 'Capitana Marvel', 'nombre_s'): print("Capitana Marvel esta en la lista") else: print("Capitana Marvel no esta en la lista") #B colaGuardianes = c.Cola() nPersonaje = listaPersonajes.inicio while nPersonaje is not None: if nPersonaje.info.grupo == 'Guardianes de la galaxia': c.arribo(colaGuardianes, nPersonaje.info) nPersonaje = nPersonaje.sig
from tda_lista import Lista, insertar, eliminar, busqueda, barrido, lista_vacia from random import randint lista_uno = Lista() lista_dos = Lista() for i in range(10): insertar(lista_uno, randint(0, 50)) for i in range(43): insertar(lista_dos, randint(0, 50)) aux = lista_uno.inicio barrido(lista_uno) while (aux is not None): pos = busqueda(lista_dos, aux.info) if (pos is not None): print(aux.info) aux = aux.sig # for i in range(30): # insertar(lista_uno, randint(0, 50)) # barrido(lista) # while(not lista_vacia(lista)): # dato = eliminar(lista, lista.inicio.info) # if(dato % 2 == 0): # insertar(lista_par, dato) # else:
def aeropuertos(lista): for i in range(len(destinos)): num_v = i+1 d = randint(1,30) m = randint(1,12) a = randint(2020,2021) fecha = [d,m,a] kms = choice(km) cant = choice(asientos) dato = Vuelo(choice(empresas),num_v,cant,fecha,destinos[i],kms) insertar(lista,dato,'destino') aux = lista.inicio while aux != None: cant = aux.info.c_asientos p = cant//1.5 precio = 0 for i in range(cant): asiento = i+1 ocupado = choice(tru) if asiento < p: clase = 'Turista' precio = (75*kms) else: clase = 'Primera' precio = (203*kms) dato = Asiento(asiento,ocupado,clase,precio) insertar(aux.sublista,dato,'numero') aux = aux.sig # A aux = lista.inicio while not aux == None: if aux.info.destino == 'Atenas': print('Destino a Atenas: ') print(aux.info) if aux.info.destino == 'Miconos': print('Destino a Miconos: ') print(aux.info) if aux.info.destino == 'Rodas': print('Destino a Rodas: ') print(aux.info) aux = aux.sig print('') # B aux = lista.inicio while not aux == None: print() s_n = input('Desea ver los asientos libres de la clase turista del destino '+ aux.info.destino + ': ') if (s_n == 'S') or (s_n == 's'): pos = aux.sublista.inicio while not pos == None: if pos.info.clase == 'Turista' and pos.info.ocupado == False: print('El asiento '+ str(pos.info.numero) + ' esta desocupado') pos = pos.sig aux = aux.sig # C print() print('Total recaudado por cada vuelo') aux = lista.inicio while not aux == None: recaudado = 0 pos = aux.sublista.inicio while pos != None: if pos.info.ocupado == True: recaudado += pos.info.precio pos = pos.sig print('El vuelo nro '+str(aux.info.num_v)+', a '+ aux.info.destino +' recaudo: '+ str(recaudado)+ ' dinero.') aux = aux.sig print() # E s_n = None while (s_n != 'n') and (s_n != 'N'): s_n = input('Quiere comprar un nuevo pasaje? S/N: ') if (s_n == 'S') or (s_n == 's'): destino = input('Indique su destino: ') bus = None bus = busqueda_lista(lista,destino,'destino') if bus != None: compra = False while compra == False: pas = int(input('Elija numero de pasaje: (1/'+ str(bus.info.c_asientos) +') : ')) pos = bus.sublista.inicio while pos != None: if pos.info.numero == pas: if pos.info.ocupado == False: pos.info.ocupado = True print('Compra de pasaje exitosa.') print() compra = True break else: print('Lo siento, ese pasaje esta ocupado.') print() break pos = pos.sig # F print() elim = None while (elim != 'n') and (elim != 'N'): elim = input('Desea eliminar algun vuelo? S/N: ') if (elim == 's') or (elim == 'S'): vuelo = int(input('Indique con numero, el Nro de vuelo a eliminar: ')) bus = None bus = busqueda_lista(lista,vuelo,'num_v') if bus != None: b = input('- Seguro que desea eliminar el vuelo con destino a '+ bus.info.destino+' ? S/N: ') if (b == 's') or (b == 'S'): eliminar(lista,bus.info.num_v,'num_v') print('>>> Se ha eliminado el vuelo Nro: '+str(bus.info.num_v)+', con destino a '+ bus.info.destino ) pos= bus.sublista.inicio recaudado = 0 while pos != None: if pos.info.ocupado == True: recaudado += pos.info.precio pos = pos.sig print('>>> La cantidad de dinero a devolver es igual a: ' + str(recaudado)) print() # G print() print('Empresas y kilómetros de vuelos con destino a Tailandia:') aux = lista.inicio while aux != None: if aux.info.destino == 'Tailandia': print('__ La empresa '+aux.info.empresa + ' tiene un viaje a Tailandia de '+str(aux.info.kms)+' KMs.') aux = aux.sig
nombres_superHeroes = [ 'Thor', 'Shazam', 'Aquaman', 'Wolverine', 'Capitan america', 'Linterna verde' ] casa = ['Marvel', 'DC', 'DC', 'Marvel', 'Marvel', 'DC'] anio_aparicion = [1962, 2011, 1941, 1974, 1941, 1940] bio = [ 'Martillo, uno de los dioses mas poderosos', 'Fuerza sobrehumana', 'Fuerza y valor para retos', 'Traje bandera de estados unidos', 'Anillo de poder' ] # Insertando en la lista for l in range(0, 5): dato = [nombres_superHeroes[l], anio_aparicion[l], casa[l], bio[l]] insertar(lista_superheroes, dato) # Armando registros de canciones nombre_cancion = [ 'Crying Lightning', 'Parque Acuatico', 'Esperando el impacto', 'Where Is The Love?', 'La Rueda Magica' ] artista = [ 'Artics Monkeys', 'El Kuelgue', 'Bersuit Vergarabat', 'The Black Eyed Peas', 'Fito Paez' ] duracion = [3.43, 2.53, 3.34, 4.12, 3.54] reproducciones = [19883309, 4147845, 7633770, 463109437, 762594] # Insertando en la lista for l in range(0, 5):
def agregar_ta(tabla, hash, dato, criterio=None): '''Agrega elementos a una tabla abierta''' pos = hash(dato, tabla) if tabla[pos] is None: tabla[pos] = Lista() insertar(tabla[pos], dato, criterio)
def agregar_ta(tabla, hash, dato, criterio=None): posicion = hash(dato, tabla) if (tabla[posicion] is None): tabla[posicion] = Lista() insertar(tabla[posicion], dato, criterio)
def cargarNumerosRand(lista): for e in range(10): insertar(lista, randint(1, 10))
barrido_lista(lista) #eliminar_primos(lista) #6 comic = Lista () nombre = [ 'Linterna Verde' , 'Wolverine' , 'Dr. Strange' , 'Capitana Marvel' , 'Mujer Maravilla' , 'Flash' , 'Star-Lord' , 'Joker' ] año = [ 1940 , 1974 , 1963 , 1968 , 1941 , 1940 , 1976 , 1940 ] casacomic = [ 'DC' , 'Marvel' , 'DC' , 'Marvel' , 'DC' , 'DC' , 'Marvel' , 'DC' ] biografia = [ 'traje: verde, arma: anillo de poder' , 'poderosa capacidad de regeneración' ,'hechicero supremo' , 'guerrera extraterrestre de la civilizacion Kree' , 'princesa guerrera de las amazonas' , 'capacidad de correr, moverse y pensar rápido' ,'policia interplanetario' , 'criminal mas notable de Gotham City' ] maravilla , dc = 0 , 0 for i in range ( len(nombre)): insertar (comic, [ nombre [ i ], año [ i ], casacomic [ i ], biografia [ i ]]) #barrido_lista (comic) #a. def eliminiar_nodo(comic): aux = comic.inicio while aux is not None: dato = aux.info if dato[0] == 'Linterna Verde': eliminar(comic, aux.info) aux = aux.sig print('Lista sin linterna verde: ' ) barrido_lista(comic) #eliminiar_nodo(comic)
def lista_peliculas(lista): for i in range(len(peliculas)): dato = Pelicula(peliculas[i],randint(1,10),randint(1970,2020),randint(100000,10000000)) insertar(lista,dato,'nombre') barrido_lista(lista) print('') # A pos = None while pos == None: pos = input('Ingrese un año de estreno: ') if pos not in '1234567890': pos = None aux = lista.inicio vacio = False while aux is not None: if pos == aux.info.estreno: print('- '+aux.info.nombre +' se estreno en el año: '+ str(aux.info.estreno)) vacio = True aux = aux.sig if vacio == False: print('No se estreno pelicula en ese año.') print('') # B mas_rec = 0 may_p = '' aux = lista.inicio while aux is not None: if aux.info.recaudacion > mas_rec: mas_rec = aux.info.recaudacion mayor_p = aux.info aux = aux.sig print('Datos de la pelicula que mas ha recaudado:') print(may_p) print('') # C print('Mayor valoracion:') aux = lista.inicio max_val = 0 while aux is not None: if aux.info.valoracion > max_val: max_val = aux.info.valoracion aux = aux.sig aux = lista.inicio while aux is not None: if aux.info.valoracion == max_val: print('- ' +aux.info.nombre +' tiene la valoracion mas alt con un puntaje es de ' + str(max_val) + ' puntos.') aux = aux.sig print('') # D print('Peliculas mostradas por criterio:') criterio = None lista_aux = Lista() print('CRITERIOS: nombre - valoracion - estreno - recaudacion : ') while criterio == None: criterio = input('Ingrese criterio por el que quiere mostrar: ') if (criterio != 'nombre') and (criterio != 'recaudacion') and (criterio != 'estreno') and (criterio != 'valoracion'): criterio = None print('Se ha producido un error: el criterio ha sido mal ingresado, vuelva a ingresar...') # ordenado por criterio print('') aux = lista.inicio while aux is not None: insertar(lista_aux, aux.info, criterio) aux = aux.sig print('Peliculas por ' + criterio +'...') sleep(2) barrido_lista(lista_aux)
def navesss(): lista_ventas = Lista() clientes = Lista() sin_clientes = Lista() nombre_clientes = Lista() informe = Lista() #A archivo = open('naves') linea = archivo.readline() while linea: linea = linea.replace('\n', '') linea = linea.split(';') linea[0] = linea[0].upper() linea[1] = linea[1].upper() linea[2] = float(linea[2]) linea[3] = linea[3].title() linea[4] = linea[4].title() insertar(lista_ventas, linea) linea = archivo.readline() print('Lista de ventas de naves') barrido_lista(lista_ventas) print() aux = lista_ventas.inicio cont = 0 ac = 0 devolver = 0 ingresoAT = 0 while aux is not None: #B if aux.info[4] == 'Desconocido': insertar(sin_clientes, aux.info) else: insertar(clientes,aux.info) pos = busqueda_lista(nombre_clientes, aux.info[4],4) #E if pos == None: insertar(nombre_clientes,aux.info[4]) #D cont += 1 ac = ac + aux.info[2] #F if aux.info[4] == 'Darth Vader': insertar(informe, aux.info) #H if aux.info[1] == 'AT-AT' or aux.info == 'AT-ST' or aux.info == 'AT-TE': ingresoAT = ingresoAT + aux.info[2] aux = aux.sig print('Total de ingresos de creditos galacticos: ') print(ac) print() print('Total de naves vendidas:') print(cont) print() print('Listado de clientes') barrido_lista(nombre_clientes) print() print('Informe de compras de Darth Vader') barrido_lista(informe) print() print('Clientes que han comprado naves construidas con material reciclado y monto a devoler:') aux2 = lista_ventas.inicio while aux2 is not None: #G if aux2.info[3] == 'Si': devolver = (aux2.info[2] * 15) / 100 print('Al cliente: '+ aux2.info[4] + ' se le devolvera, '+str(round(devolver,2))) aux2 = aux2.sig print() print('Ingreso genero la producción de naves cuyos modelos contengan la sigla “AT”.: '+str(round(ingresoAT,2)))
def github(lista): lista = Lista() user = Usuario('Roman') insertar(lista, user, 'nombre') user = Usuario('Regina') insertar(lista, user, 'nombre') user = Usuario('Tania') insertar(lista, user, 'nombre') user = Usuario('Jesus') insertar(lista, user, 'nombre') commit = Commit('test.py', '11-11-20 19:00', 'testeo de la applicacion', 46) pos = busqueda_lista(lista, 'Roman', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('data.py', '11-11-20 19:00', 'correccion error', 12) pos = busqueda_lista(lista, 'Roman', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('object.java', '11-11-20 19:00', 'modelado del objeto', -37) pos = busqueda_lista(lista, 'Regina', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('app.py', '11-11-20 19:00', 'basta chicos', 34) pos = busqueda_lista(lista, 'Tania', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('front.html', '11-11-20 19:00', 'update', 47) pos = busqueda_lista(lista, 'Jesus', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('vista.css', '11-11-20 19:00', 'update', -2) pos = busqueda_lista(lista, 'Jesus', 'nombre') insertar(pos.sublista, commit, 'archivo') print('Lista de colaboradores: ') barrido_lista(lista) print() # a aux = lista.inicio mayor = 0 while aux is not None: if tamanio_lista(aux.sublista) > mayor: mayor = tamanio_lista(aux.sublista) aux = aux.sig aux = lista.inicio while aux is not None: if tamanio_lista(aux.sublista) == mayor: print('Colaborador con mayor cantidad de commits: ' + aux.info.nombre) print('Cantidad de commits: '+ str(mayor)) aux = aux.sig print() # b mayor = 0 usuario = '' aux = lista.inicio while aux is not None: pos = aux.sublista.inicio mayor_aux = 0 while pos is not None: mayor_aux += pos.info.cant_lineas pos = pos.sig if mayor_aux > mayor: mayor = mayor_aux usuario = aux.info.nombre aux = aux.sig print(usuario +', agrego la mayor cantidad de lineas: ' +str(mayor)) menor = 0 usuario_menor = '' aux = lista.inicio while aux is not None: pos = aux.sublista.inicio menor_aux = 0 while pos is not None: menor_aux += pos.info.cant_lineas pos =pos.sig if menor_aux < menor: menor = menor_aux usuario_menor = aux.info.nombre aux = aux.sig print(usuario_menor+ ' elimino la mayor cantidad de lineas: '+ str(menor)) print() # C aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,'test.py','archivo') if pos is not None: print(aux.info.nombre + ', ha realizado cambios en test.py') aux = aux.sig # D print() aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,0,'cant_lineas') if pos is not None: print(aux.info.nombre + ' ha realizado un commit con 0 lineas') aux = aux.sig print() # E aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,'app.py','archivo') if pos is not None: print(aux.info.nombre + ', ha realizado cambios en app.py') barrido_sublista(aux.sublista) aux = aux.sig
# nombre, modalidad, horas, codigo tabla_catedra = crear_tabla(50) catedra = Catedra("Algoritmos y estructura de datos", "Anual", 10, "ADC_12345") agregar_tc(tabla_catedra, bernstein_catedra, catedra) cont = 0 for e in tabla_catedra: print(cont, " ", e) cont += 1 profesores = Lista() insertar(profesores, "Walter") insertar(profesores, "Ricardo") posicion = buscar_tc_catedra(tabla_catedra, bernstein_catedra, Catedra("", "", 0, "ADC_12345")) if posicion: print("Carga de docente realizada.") tabla_catedra[posicion].docentes = profesores cont = 0 for e in tabla_catedra: if e: print("Docentes : ") barrido(e.docentes) print(e)
def pokemones(lista): for i in range(len(entrenadores)): aux = Entrenador(entrenadores[i],randint(0,10),randint(0,100),randint(0,100),randint(1,10)) insertar(lista,aux,'t_ganados') barrido_lista(lista) print('') aux = lista.inicio while not aux == None: print(aux.info) print('---- Pokemones') cant = aux.info.cant_pok for j in range (cant): pok = choice(list(pokemon.keys())) dato = Pokemon(pok, pokemon[pok][0], pokemon[pok][1], randint(1,50)) print(dato) insertar(aux.sublista,dato,'nivel') aux = aux.sig print('') #b print('') print('<<<<< Entrenadores que han ganado MAS de 3 torneos Pokemon >>>>>') aux = lista.inicio c = 0 while not aux == None: if aux.info.t_ganados > 3 : print(aux.info) c += 1 aux = aux.sig print(' - Hay ' + str(c) + ' entrenadores que ganaron mas de 3 torneos Pokemon.') print('') # C torn = 0 ent = None aux = lista.inicio nv = 0 pok = None while not aux == None: if aux.info.t_ganados > torn: torn = aux.info.t_ganados max_torn = aux.info.nombre ent = aux.sublista.inicio while not ent == None: if nv < ent.info.nivel: nv = ent.info.nivel pok = ent.info.nombrepok ent = ent.sig aux = aux.sig print('- El entrenador que mas Torneos Pokemon ha ganado es: ' + max_torn + ', con ' + str(torn)+ ' Torneos ganados.') print('- Su pokemon de mayor nivel es: ' + pok + ' de nivel ' + str(nv)) print('') nom = input('ingrese Entrenador a mostrar sus datos y pokemones: ') pos = busqueda_lista(lista,nom,'nombre') if not pos == None: print(pos.info) print('_____Pokemones:') aux = pos.sublista.inicio while not aux == None: print(aux.info) aux = aux.sig print('') # e print('- ENTRENADORES CON PORCENTAJE DE VICTORIA MAYOR A 79% :') aux = lista.inicio x = False while aux is not None: bat_tot = aux.info.bat_ganadas + aux.info.bat_perdidas porcentaje = (aux.info.bat_ganadas * 100)/bat_tot if porcentaje > 79: x = True print(aux.info.nombre +' tiene un porcentaje de ' +str(round(porcentaje,2)) + '% batalladas ganadas.') aux = aux.sig if x == False: print('No hay Entrenadores con un porcentaje mayor a 79.') print() # f aux = lista.inicio while aux is not None: sub = aux.sublista.inicio while sub is not None: if (sub.info.tipo == 'fuego'): if (sub.info.subtipo == 'planta'): print(aux.info.nombre, ': tiene un pokemon tipo fuego y subtipo planta, ' + sub.info.nombrepok) if (sub.info.tipo == 'agua'): if (sub.info.subtipo == 'volador'): print(aux.info.nombre, ': tiene un pokemon tipo agua y subtipo volador, ' + sub.info.nombrepok) sub = sub.sig aux = aux.sig print('-') print('') # g nom = input('ingrese Entrenador a sacar promedio de nivel de sus Pokemones: ') pos = busqueda_lista(lista,nom,'nombre') if not pos == None: print(pos.info) niveles = 0 cant = 0 sub = pos.sublista.inicio while sub is not None: cant += 1 print(sub.info) niveles += sub.info.nivel sub = sub.sig prom = niveles / cant print('--- El promedio de nivel de sus pokemones es: '+ str(round(prom, 2))) print('') # H aux = lista.inicio cont = 0 pok = input(str('Ingrese el nombre del pokemon a buscar: ')) while aux is not None: pos = busqueda_lista(aux.sublista, pok, 'nombrepok') if pos is not None: cont += 1 print(aux.info.nombre +' tiene a ' + pok) aux = aux.sig print(str(cont) +' entrenadores tienen al pokemon '+ pok) print('') # J aux = lista.inicio while aux is not None: sub = aux.sublista.inicio while sub is not None: if (sub.info.nombrepok == 'Tyrantrum') or (sub.info.nombrepok == 'Terrakion') or (sub.info.nombrepok == 'Wingull'): print('El entrenador ' +aux.info.nombre + ', tiene al pokemon ' + sub.info.nombrepok) sub = sub.sig aux = aux.sig print('') # K pos = None n = None x = None while ent not in entrenadores: ent = input('Ingrese nombre del entrenador: ') pos = busqueda_lista(lista,ent,'nombre') while n not in pokemon: n = input('Ingrese nombre de pokemon a buscar: ') if (not pos == None) and (not n == None): print('') b = False nom = pos.sublista.inicio while not nom == None: if (nom.info.nombrepok == n): b = True break nom = nom.sig if b == False: print('El entrenador '+ pos.info.nombre + ' no tiene al pokemon buscado.') elif b == True: print('Entrenador y pokemon encontrados.') print('Mostrando sus datos...') sleep(1.5) print(pos.info) sleep(0.7) print(nom.info)
import tda_lista as li import tda_lista_doble as ld import tda_lista_lista as ll import random from datetime import date, datetime, timedelta, time oListaAleatoria = li.Lista() for i in range(30): li.insertar(oListaAleatoria, random.randint(0,50)) oListaAleatoria2 = li.Lista() for i in range(30): li.insertar(oListaAleatoria2, random.randint(0,50)) #Ejercicio 1 '''def tamanioLista(oLista): actual = oLista.inicio tamanio = 0 while actual is not None: actual = actual.sig tamanio += 1 return tamanio print(tamanioLista(oListaAleatoria))''' #Ejercicio 2 '''vocales = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
def cargarLetras(lista): for e in range(10): insertar(caract, chr(randint(97, 123)))