program CRIPTOGRAFIAFUNCAO;
var
nome : string;
escolha : integer;
denovo : string;
i : integer;
n : integer;
function crip(frase : string) : string;
var
i : integer;
num : integer;
begin
frase:=upcase(frase);
num := 3;
for i:= 1 to length(frase) do
if frase[i] = 'Z' then
frase[i] := 'C'
else if (frase[i] = 'X') then
frase[i] := 'A'
else if (frase[i] = 'Y') then
frase[i] := 'B'
else
frase[i] := chr(ord(frase[i])+ num);
crip := frase;
end;
function descrip(frase : string) : string;
var
i : integer;
num : integer;
begin
frase:=upcase(frase);
num := -3;
for i:= 1 to length(frase) do
if frase[i] = 'C' then
frase[i] := 'Z'
else if (frase[i] = 'A') then
frase[i] := 'X'
else if (frase[i] = 'B') then
frase[i] := 'Y'
else
frase[i] := chr(ord(frase[i])+ num);
descrip := frase;
end;
begin
repeat
writeln('Voce deseja criptografar ou descriptografar uma frase??');
writeln('1 - Criptografar Digite');
writeln('2 - Descriptografar Digite');
readln(escolha);
writeln();
case escolha of
1 : begin
writeln('digite uma frase');
readln(nome);
writeln(crip(nome));
writeln();
end;
2 : begin
writeln('digite uma frase');
readln(nome);
writeln(descrip(nome));
writeln();
end;
else
writeln('Digite uma Opcao valida');
writeln();
end;
n :=1;
while (n<=3) do
begin
writeln('Deseja Utilizar novamente?? (SIM/NAO)');
readln(denovo);
denovo := upcase(denovo);
n := n + 1;
if (denovo <> 'NAO') and (denovo <> 'SIM') then
writeln('Voce tem 3 chances de digitar SIM OU NAO.. voce ja gastou ',n -1)
else
n := 4;
end;
if (denovo <> 'NAO') and (denovo <> 'SIM') then
denovo :='NAO';
until(denovo = 'NAO') ;
end.
