Ejercicio: 2Eva2012TII_T2 Cifrado César
El ejercicio se desarrolla primero con el ejemplo del enunciado, con mensaje='HOLA' y llave='3'.
Luego de resuelto el ejemplo se incorporan las situaciones de desplazamientos de posiciones en los extremos y la forma de función del algoritmo.
Ejemplo de ejecución del algoritmo
>>> cifradocesar('hola',3)
'KROD'
>>> cifradocesar('HoLa',3)
'KROD'
>>>
Algoritmo en Python
# 2Eva_IIT2012_T2 Cifrado César
# propuesta: edelros@espol.edu.ec
### INGRESO
##mensaje = input('mensaje: ')
##llave = int(input('llave: '))
# PROCEDIMIENTO
def cifradocesar(mensaje,llave):
alfabeto = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
m = len(alfabeto)
# mensaje en mayusculas
mensaje = mensaje.upper()
t = len(mensaje)
# crear resultado desde primera letra
resultado = ''
i = 0
while i<t:
letra = mensaje[i]
# buscar letra en alfabeto
encontre = -1
j = 0
while j<m and encontre<0:
if letra==alfabeto[j]:
encontre = j
j = j + 1
# cifrado Cesar
nueva = encontre + llave
if nueva>m:
nueva = nueva - m
if nueva<0:
nueva = nueva + m
cifrado = alfabeto[nueva]
resultado = resultado + cifrado
i = i + 1
return(resultado)
### SALIDA
##print('cifrado César: ',resultado)
Tarea: En el caso que el mensaje tiene un caracter espacio ' ' o ',' es decir un caracter que no está en el alfabeto, éste no se reemplaza. De no implementarse se muestra un error en la codificación, mostrado en rojo en el ejemplo.
>>> cifradocesar('hola,hola',3)
'KRODCKROD'
>>>