Ejercicio: 2Eva_IIT2012_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
>>> cifradocesar('hola',3) 'KROD' >>> cifradocesar('HoLa',3) 'KROD' >>>
Instrucciones 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' >>>
Propuesta de solución en Python y también en versión matlab: