Pascal/Turbo Pascal - CODIGO CESAR

   
Vista:

CODIGO CESAR

Publicado por carlos (12 intervenciones) el 19/04/2012 16:33:50
Hola, tengo una duda sobre un programa que me han pedido en clase que trata del codigo cesar, que consiste en que el programa lea una letra y muestre 6 letras a su dcha (si introducimos la E, dara la K, etc), mientras que si introducimos cualquier otro caracter del teclado de el mismo caracter. Esto ya lo he echo, pero me han pedido que lo amplie, para que en vez de que el usuario introduzca un solo caracter, introduzca una frase acabada en un punto y haga lo mismo pero con toda la frase introducida. Mi programa es este, solo tengo que retocarlo para que en vez de un caracter, el usuario pueda meter una secuencia y el programa de la secuencia en el codigo cessar. Me podeis echar un cable?? Gracias, a y por cierto, tengo solo que modificar este programa, no hacer otro nuevo, si me ayudais agradeceria que fuera un programa identico a este solo que poniendo lo de la secuencia entera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PROGRAM cifrado_cesar;
 
VAR mayuscula, letra: char; {declaramos las variables mayusculoa y char}
 
BEGIN writeln ('Introduce un caracter:'); readln(mayuscula);
       {Introducimos una letra mayuscula}
 
 
       IF ((ord(mayuscula)<85) AND (ord(mayuscula)>=65)) OR ((ord(mayuscula)<117) AND (ord(mayuscula)>=97))
        THEN  letra:=char(ord(mayuscula)+6)
        ELSE  letra:=char(ord(mayuscula)-20);
 
 
      IF (ord(mayuscula)>=65) AND (ord(mayuscula)<=123)
       THEN  write(letra)
       ELSE  write(mayuscula);
 
      readln;
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CODIGO CESAR

Publicado por ramon (2072 intervenciones) el 23/04/2012 22:00:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{Algo como esto te vale}
 
 
program cesar;
uses
  crt;
 var
   dato : string;
   cont : integer;
 begin
     clrscr;
     write(' Entre Frase : ');
     readln(dato);
    for cont := 1 to length(dato) do
    begin
       if dato[cont] in [#65..#90] then
       begin
           write(chr(ord(dato[cont]) + 6));
       end
     else
           write(dato[cont]);
    end;
       readln;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar