Programa que Codifica mediante el procedimiento Cesar pudiendo elegir el desplazamiento:
{Programa de cifrado de caracteres que a cada letra le hace corresponder la que
se encuentra 6 posiciones mas a la derecha, de tal manera que cuando llega a la
z, vuelve a empezar por la a}
program cesar(input,output);
var
desplazamiento:integer;
secuencia:string[100];
letra_cifrada:char;
contador,posicion_ascii:byte;
begin
writeln('Introduzca una secuencia de caracteres acabada en punto:');
readln(secuencia);
writeln('Secuencia codificada:');
contador:=1;
desplazamiento:=2;
while (secuencia[contador]<>'.') do
begin
posicion_ascii:=ord(secuencia[contador]);
If ((64<posicion_ascii) and (posicion_ascii<(91-desplazamiento))) or
((96<posicion_ascii) and (posicion_ascii<(123-desplazamiento))) then
{Si el caracter introducido esta en el intervalo ascii basta con sumar 6 a
las posicion del caracter original para encontrar la posicion del caracter
cifrado}
begin
posicion_ascii:=posicion_ascii+desplazamiento;
letra_cifrada:=chr(posicion_ascii);
write(letra_cifrada)
end
{En cambio si la letra no se encuentra en esos dos intervalos
a la posicion de la letra hay que restarle 26 (para volver a empezar
por la a, mayuscula o minuscula) y despues sumarle 6, con lo que en
definitiva se le restan 20}
else if (((91-desplazamiento)<=posicion_ascii)and(posicion_ascii<91)) or
(((123-desplazamiento)<=posicion_ascii)and(posicion_ascii<123)) then
begin
posicion_ascii:=posicion_ascii-(26-desplazamiento);
letra_cifrada:=chr(posicion_ascii);
write(letra_cifrada)
end
else
{Por el contrario, si el caracter introducido no esta en ninguno de los
asnteriores intervalos, el caracter introducido no corresponde con una letra
por lo que se le advierte al usuario que no es valido, y no se realiza
ningun calculo}
write(letra_cifrada);
contador:=1+contador
end;
readln
end.
Salu10!
Resolución de distintos problemas en el ámbito de la ingenieria mediante el uso de la programación. Los programas abarcan todos los niveles de dificultad, así como la mayoría de las herramintas con las que contamos al programar. Si tienes cualquier duda a cerca de un programa, o quieres proponer alguna nueva entrada, no dudes en contactar escribiendo en cualquiera de las entradas del blog ¡Bienvenido!
martes, 9 de octubre de 2012
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario