示例#1
0
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')
示例#2
0
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)
示例#3
0
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)
示例#4
0
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
示例#5
0
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
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))
示例#9
0
 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)
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
        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)
示例#15
0
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
示例#17
0
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:
示例#18
0
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
示例#19
0
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):
示例#20
0
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)
示例#21
0
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))
示例#23
0
    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)
示例#24
0
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)
示例#25
0
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)))
示例#26
0
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
示例#27
0

# 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)
示例#28
0
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)))