program Caesar_Code;
uses wincrt;
type talphabet = array[1..26,1..2] of char;
var alpha : talphabet;
anzahl, i, j : byte;
ktext
: string;
procedure Feld_belegen(v:byte);
var spalte, zeile : byte;
begin
for spalte:=1 to 26 do
alpha[spalte,1]:=chr(spalte+64);
for spalte:=1 to 26-v do
alpha[spalte,2]:=chr(spalte+64+v);
i:=0;
for spalte:=26-v+1 to 26 do
begin
inc(i);
alpha[spalte,2]:=chr(i+64)
end;
end;
procedure Feld_ausgeben;
begin
for i:=1 to 2 do
begin
for j:=1 to 26 do
write(alpha[j,i],'
');
writeln;
end;
end;
procedure Verschluesseln(v:byte; var text:string);
var stelle : byte;
buch : char;
hilfs : string;
begin
writeln('Verschlüsselung');
hilfs:='';
for i:=1 to length(text) do
begin
buch:=upcase(text[i]);
for j:=1 to 26 do
if alpha[j,1]=buch
then
stelle:=j;
writeln(buch,' ->
',alpha[stelle,2]);
readkey;
hilfs:=hilfs+alpha[stelle,2];
end;
text:=hilfs;
end;
procedure Entschluesseln(v:byte; var text:string);
var stelle : byte;
buch : char;
hilfs : string;
begin
writeln('Entschlüsselung');
hilfs:='';
for i:=1 to length(text) do
begin
buch:=upcase(text[i]);
for j:=1 to 26 do
if alpha[j,2]=buch
then
stelle:=j;
writeln(buch,' ->
',alpha[stelle,1]);
readkey;
hilfs:=hilfs+alpha[stelle,1];
end;
text:=hilfs;
end;
begin
writeln('Cäsar - Code');
write('Um wieviele Stellen soll das Alphabet verschoben werden?
');
readln(anzahl);
Feld_belegen(anzahl);
writeln;
Feld_ausgeben;
readkey;
writeln;
writeln('Welcher Text soll verschlüsselt werden? ');
readln(ktext);
writeln;
Verschluesseln(anzahl,ktext);
writeln;
writeln('Geheimtext: ',ktext);
writeln;
Entschluesseln(anzahl,ktext);
writeln;
writeln('Klartext: ',ktext);
end.