Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Korina en 4 Diciembre 2015, 15:28 pm



Título: Necesito ayuda urgente!!! Por favor... Python
Publicado por: Korina en 4 Diciembre 2015, 15:28 pm
Les agradecería que me ayudarán a realizar un programa en python con las siguientes características:
Ejercicio 1:

a)    El número siempre es de 4 dígitos. En el ejemplo esta el número 1234, si el número es diferente a 4 dígitos, no lo debe aceptar

b)    El programa reemplaza cada uno de los dígitos sumándole un 1. Así por ejemplo el numero 1234 se vuelve el 2345. Siempre deben mantenerse 4 dígitos, por lo tanto el 9 se convertiría en 0. Tomen en cuenta que debe ser dígito por dígito para que funcione correctamente, no sumar 1111 al número.

c)  Después se intercambia el primero con el tercer digito y el segundo con el cuarto. Así se obtiene el número 4523.

d)  Posteriormente reemplaza cada número por una letra usando la siguiente llave de cifrado: XAFZHKJYMD, es decir:
        0=X,1=A, 2=F, 3=Z, 4=H, 5=K, 6=J, 7=Y, 8=M, 9=D   

e) Entonces el número 4523 sería HKFZ

f)    Se debe realizar el mismo procedimiento de forma inversa para descifrar el número original. Si se introduce la palabra HKFZ entonces, se convierte a número 4523, se invierte 2-4,3-5, se resta 1, y el número cifrado es 1234.

g)    En base a esto, se deben crear 2 funciones: cifrarDato y descifrarDato. Estas dos funciones DEBEN estar en un script diferente, y deben recibir  el dato a cifrar y la llave de cifrado a manera de lista o texto de la siguiente forma:

cifrarDato(dato,llave)
decifrarDato(dato,llave)

Las funciones deben regresar el dato cifrado o descifrado, o bien no regresar nada en caso que los datos estén incorrectos.


Se los ruego, ayudenme porfavor, es para salvar el semestre....


Título: Re: Necesito ayuda urgente!!! Por favor... Python
Publicado por: simorg en 4 Diciembre 2015, 15:30 pm
Muestra lo que tienes hecho hasta el momento, y si tienes algún problema, te ayudaran, lo que no se hace en el Foro es hacerte tu trabajo.



Saludos.


Título: Re: Necesito ayuda urgente!!! Por favor... Python
Publicado por: Korina en 4 Diciembre 2015, 16:20 pm
Okey, gracias y perdón....
Sólo tengo esto

letras = []

def LeerLetras():
   global letras
   file = open("letras.txt","r")
   data = file.read()
   file.close()
   Bookings = data.split(";")
   
   for i in range((len(letras))):
       letras = letras.capitalize()

def cifrarDato(dato, llave):
    if dato > 4 and dato <4:
        print "Vuelve a intentar!"
    return
   
    if dato = "4": #Cómo validar cuatro
        dato = (raw_input("Dato: \t"))
        for i in range (len(dato)):
            dato = dato+1

#No se como invertirlo y sumarle uno a cada uno, esque se suma 1 a toda la cantidad


def descifrarDato(llave, dato):
???


Título: Re: Necesito ayuda urgente!!! Por favor... Python
Publicado por: RevolucionVegana en 4 Diciembre 2015, 16:31 pm
Wow que interesante yo aprendí algo de python y hay algunas cosas que pensando mucho y con código (no el más adecuado pero sirve) si que sabría hacerlas, en el caso de que tenga un rato libre para verlo lo escribo

Código:
letras = []

def LeerLetras():
   global letras
   file = open("letras.txt","r")
   data = file.read()
   file.close()
   Bookings = data.split(";")
   
   for i in range((len(letras))):
       letras = letras.capitalize()

def cifrarDato(dato, llave):
    if dato > 4 and dato <4:
        print "Vuelve a intentar!"
    return
   
    if dato = "4": #Cómo validar cuatro
        dato = (raw_input("Dato: \t"))
        for i in range (len(dato)):
            dato = dato+1

#No se como invertirlo y sumarle uno a cada uno, esque se suma 1 a toda la cantidad
[code=python]
[/code]


Título: Re: Necesito ayuda urgente!!! Por favor... Python
Publicado por: tincopasan en 4 Diciembre 2015, 20:09 pm
1) esto tendría que estar en el foro de scripting
2) no entiendo en que parte del enunciado dice que hay que usar un archivo
3) vas bastante mal en la lógica por ejemplo:
   si dato > 4 etc ¿cuándo asignaste el valor de dato?
4) si dato = 4 "#como validar cuatro"  supongo es una pregunta, que tal usar len
5) suma 1 a toda la cantidad porque es lo que eso hace dato+1, en todo caso podría ser i + 1
6) te falta casi todo
7) que mal salvar un semestre sin poder resolver esto.