Para aquellos que no lo sepan, el cifrado
“Cesar” es un método de cifrado muy sencillo consistente en ir
sustituyendo cada letra del mensaje a cifrar, por una letra que se
encuentra un número fijo de posiciones en el alfabeto. Se trata de una
técnica de cifrado que debe su nombre al emperador romano “Julio Cesar” a
quién se atribuye su creación. A continuación muestro un sencillo
ejemplo en el que cifraremos la palabra “CASA” empleando un valor de
desplazamiento de 2:
Pues bien, en el articulo de hoy vamos a
hacer un sencillo programa para cifrar mediante tal método, un texto
introducido por nosotros.
Para ello como es natural, lo primero que
haremos será pedir (mediante el correspondiente “input”) el texto que
queremos traducir, que almacenaremos en la variable “texto”:
A continuación, procederemos a crear la
cadena de caracteres alfabéticos. Como queremos que nuestro programa
funcione tanto para mayúsculas como para minúsculas, haremos que la
variable “abc” (que es la que contendrá al alfabeto a emplear) contenga
las letras en mayúsculas o minúsculas, en función de la naturaleza
(mayúscula o minúscula) del texto introducido:
Por su parte, vamos a crear nuestro
programa de modo que podamos escoger el valor de desplazamiento dentro
del alfabeto (lo que determinará la correspondencia entre caracteres).
Para ello emplearemos otro “input”, en formato entero (“int”) en el que
pediremos dicho valor. Tras ello, crearemos la cadena “cifrad” (que es
la que destinaremos a albergar el texto cifrado final):
Con esto ya tenemos los datos de partida.
El paso siguiente es crear el sencillo algoritmo en el que una variable
(a la que llamaremos “c”) irá representando a cada uno de los
caracteres de la cadena “texto” (el texto a cifrar):
Así, para cada valor de “c” (cada letra
de “texto”) lo primero que comprobará el programa es si tal carácter se
encuentra en la cadena “abc”. En en caso de que así sea, a la cadena
“cifrad” se le añadirá el carácter ubicado en la posición
correspondiente dentro de “abc”. La cual, a su vez, se corresponderá
con el resto resultante de la división de la nueva posición
correspondiente (es decir la posición del valor actual de “c” mas el
valor de desplazamiento “k”) y la longitud de la cadena “abc” (la cual
obtenemos con la función “len”, aunque podríamos haber puesto
directamente “27” que es el número de caracteres de la cadena “abc”). La
razón del empleo de esta operación está en evitar los herrores “out of
range” que podrían producirse en determinados casos (por ejemplo si
tenemos que sustituir una “x” usando un valor de desplazamiento de 3).
Esto, como ya apuntamos, es para el caso
de que el valor de “c” se encuentre, efectivamente en “abc”. No obstante
puesto que queremos que todos los caracteres introducidos se vean de
algún modo, representados en el texto final, diremos que si el valor
actual de “c” no está en “abc”, dicho carácter se añada (sin
sustitución) a la cadena “cifrad” sin más.
Para comprobar que nuestro programa hace,
en efecto lo que queremos, ejecutaremos el código 3 veces,
introduciendo un texto en mayúsculas, otro en minúsculas y otro en el
que hemos empleado dos caracteres (“¿” y “?”) no incluido en “abc”,
aparte de los espacios en blanco:
Podemos ver como, eh¡fectivamente, en los 3 casos el programa a procedido a cifrar con éxito el texto introducido por nosotros.
Comentarios
Publicar un comentario