def DVader(): legion = ['FL', ' TF', 'TK', 'CT', 'FN', 'FO'] tablaL = crear_tabla(10) tablaC = crear_tabla(1500) for i in range(1500): legion = choice(legion) cod = randint(1000, 5000) st = Stormtroopers(legion, cod) agregar_ta(tablaL, bernstein_st, st, 'legión') agregar_ta(tablaC, hash_division_st, st, 'código') print('Sormtroopers ordenados por legion: ') barrido_ta(tablaL) print('Stormtroopers ordenados por código: ') barrido_ta(tablaC) pos = hash_division(537, tablaC) if tablaC[pos]: print('Stormtrooper designados para una misión de exploración') barrido_lista(tablaC[pos]) print() pos = hash_division(781, tablaC) if tablaC[pos]: print('Stormrooper designados para una misión de asalto') barrido_lista(tablaC[pos]) print() posl = bernstein('FN', tablaL) if tablaL[posl]: print('Stormroopers de la Legión FN') barrido_lista(tablaL[posl]) print() posl = bernstein('CT', tablaL) if tablaL[posl]: print('Stormtroopers de la Legión CT') barrido_lista(tablaL[posl])
def mensajes_cifrados(): tabla = crear_tabla(10) tabla_aux = crear_tabla(10) def desifrar(dato): dic = {'#?&': '0','abc': '1','def':'2','ghi':'3','jkl':'4','mnñ':'5','opq':'6','rst':'7','uvw':'8','xyz':'9'} cadena = '' for i in range (0, len(dato), 3): cadena += dic[dato[i:i+3]] return chr(int(cadena)) def cifrar(dato): valor = str(ord(dato)) valor_cirado = ['#?&','abc','def','ghi','jkl','mnñ','opq','rst','uvw','xyz'] cadena = '' for num in valor: numInt = int(num) cadena += valor_cirado[numInt] cadena += "%" return cadena a = 'El hombre adecuado en el sitio equivocad0 puede cambiar el rumbo del mundo. Despierte, Sr. Freeman. Despierte y mire a su alrededor.' a_cifrado = '' print('Mensaje a cifrar:') print(a) print() # cifrando for letra in a: valor = buscar_ta(tabla, hash_diccionario, Palabra(letra, ''), 'palabra') cifrado = '' if valor is None: cifrado = cifrar(letra) palabra = Palabra(letra, cifrado) agregar_ta(tabla, hash_diccionario, palabra, 'palabra') else: cifrado = valor.info.significado a_cifrado += cifrado print('Mensaje cifrado:') print(a_cifrado) print() lista = a_cifrado.split('%') lista.pop() # desifrando msj = '' for letras in lista: valor = buscar_ta(tabla_aux, bernstein_palabra, Palabra(letras, ''), 'palabra') decifrado = '' if valor is None: decifrado = desifrar(letras) palabra = Palabra(letras, decifrado) agregar_ta(tabla_aux, bernstein_palabra, palabra, 'palabra') else: decifrado = valor.info.significado msj += decifrado print('Mensaje decifrado') print(msj)
def guia_telefono(): tabla = crear_tabla(20) guiatel = Guia_Tel(randint(400000, 499999), 'Juan Fernando', 'Quintero', 'Bogota 543') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Marcelo', 'Gallardo', 'Figueroa Alcorta 57') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Gonzalo', 'Martínez', 'Madrid 912') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Rodolfo', 'D´Onofrio', 'Dubai 2142') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') print('NUMERO DE TELEFONO | NOMBRE | APELLIDO | DIRECCION') barrido_ta(tabla)
def imperio_galactico(): tabla_legion = crear_tabla(10) tabla_codigos = crear_tabla(1000) legiones = ['FL', 'TF', 'TK', 'CT', 'FN', 'FO'] # a for i in range(2000): legion = choice(legiones) codigo = randint(1000, 9999) trooper = Stormtroopers(legion, codigo) agregar_ta(tabla_legion, bernstein_troopers, trooper, 'legion') agregar_ta(tabla_codigos, hash_division_troopers, trooper, 'codigo') # b print('Troopers ordenados por legion') barrido_ta(tabla_legion) print() print('Troopers ordenados por código') barrido_ta(tabla_codigos) print() # c posc = hash_division(537, tabla_codigos) if tabla_codigos[posc]: print('Trooper designados para una misión de exploración') barrido_lista(tabla_codigos[posc]) print() posc = hash_division(781, tabla_codigos) if tabla_codigos[posc]: print('Trooper designados para una misión de asalto') barrido_lista(tabla_codigos[posc]) print() # d posl = bernstein('FN', tabla_legion) if tabla_legion[posl]: print('Troopers de la Legión FN') barrido_lista(tabla_legion[posl]) print() posl = bernstein('CT', tabla_legion) if tabla_legion[posl]: print('Troopers de la Legión CT') barrido_lista(tabla_legion[posl])
def guia_telefono(): tabla = crear_tabla(20) guiatel = Guia_Tel(randint(400000, 499999), 'Genaro', 'Arijon', 'Parana 234') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Federico', 'Gonzalez', 'Rpublica de Libano') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Nahuel', 'Mani', 'Barrio 150') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') guiatel = Guia_Tel(randint(400000, 499999), 'Pedro', 'Fister', '9 de julio 42') agregar_ta(tabla, hash_division_guiatel, guiatel, 'numero') print('NUMERO DE TELEFONO | NOMBRE | APELLIDO | DIRECCION') barrido_ta(tabla)
def diccionario(tabla): palabra = Palabra('danzar', 'Bailar al ritmo de una música') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') palabra = Palabra('ballena', 'Animal mamífero marino') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') palabra = Palabra('madriguera', 'Cueva donde viven y se esconden algunos animales') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') palabra = Palabra('felicidad', 'Sentimiento de alegría o satisfacción') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') barrido_ta(tabla) #b. determinar si una palabra existe y mostrar su significado pos = buscar_ta(tabla, hash_diccionario, Palabra('Hola', ''), 'palabra') if (pos is not None): print('Palabra', pos.info.palabra, 'significado', pos.info.significado) print() #c. borrar una palabra del diccionario; print('Elemento eliminado:', quitar_ta(tabla, hash_diccionario, Palabra('Hielo', ''), 'palabra')) barrido_ta(tabla)
def diccionario(): tabla = crear_tabla(26) # a palabra = Palabra('Hola', 'Es un saludo') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') palabra = Palabra('Hielo', 'Agua congelada') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') palabra = Palabra('Arbol', 'Parte de la naturaleza') agregar_ta(tabla, hash_diccionario, palabra, 'palabra') print(tabla) barrido_ta(tabla) print() # b pos = buscar_ta(tabla, hash_diccionario, Palabra('Hola', ''), 'palabra') if(pos is not None): print('Palabra', pos.info.palabra, 'significado', pos.info.significado) print() # c print('Elemento eliminado:', quitar_ta(tabla, hash_diccionario, Palabra('Hielo', ''), 'palabra')) barrido_ta(tabla)
def sms_cifrados(): tabla = crear_tabla(10) tabla_aux = crear_tabla(10) def desifrar_sms(dato): dic = { '#?&': '0', 'abc': '1', 'def': '2', 'ghi': '3', 'jkl': '4', 'mnñ': '5', 'opq': '6', 'rst': '7', 'uvw': '8', 'xyz': '9' } cad = '' for i in range(0, len(dato), 3): cad += dic[dato[i:i + 3]] return chr(int(cad)) def cifrar_sms(dato): val = str(ord(dato)) val_cirado = [ '#?&', 'abc', 'def', 'ghi', 'jkl', 'mnñ', 'opq', 'rst', 'uvw', 'xyz' ] cad = '' for num in valor: num_ent = int(num) cad += val_cirado[num_ent] cad += "%" return cad mensaje = 'El amor y el odio, son dos lados de una misma cuchilla. –Jacqueline Carey.' mensaje_cifrado = '' print('Mensaje a cifrar: ') print(mensaje) print() for letra in mensaje: valor = buscar_ta(tabla, hash_diccionario, Palabra(letra, ''), 'palabra') cifrado = '' if valor is None: cifrado = cifrar_sms(letra) palabra = Palabra(letra, cifrado) agregar_ta(tabla, hash_diccionario, palabra, 'palabra') else: cifrado = valor.info.significado mensaje_cifrado += cifrado print('Mensaje cifrado:') print(mensaje_cifrado) print() lista = mensaje_cifrado.split('%') lista.pop() sms = '' for letras in lista: valor = buscar_ta(tabla_aux, bernstein_palabra, Palabra(letras, ''), 'palabra') decifrado = '' if valor is None: decifrado = desifrar_sms(letras) palabra = Palabra(letras, decifrado) agregar_ta(tabla_aux, bernstein_palabra, palabra, 'palabra') else: decifrado = valor.info.significado sms += decifrado print('El mensaje ha sido decifrado') print(sms)