Bergervei/Pascal-Cäsarverfahren
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
== Der Cäsar-Algorithmus ==
# Teste das Programm mit verschiedenen Eingaben.
# Erkläre mit eigenen Worten, was das Programm macht.
<code id="4ed9e2cc22523" hidden>
function caesar_test(klar: string; v: integer): string;
var a,i,ascii : integer;
wort,gross: string;
begin
wort:=''; gross:='';
a:=length(klar);
for i:=1 to a do gross:=gross+uppercase(klar[i]);
for i:=1 to a do
begin
ascii:=gross[i]; //ord noch nicht bekannt, einfach weglassen, dann wird automatisch umgewandelt
if (ascii<91) and (ascii>64) then
begin
ascii:=ascii+v;
if ascii>90 then ascii:=ascii-26;
wort:=wort+chr(ascii);
end
else wort:=wort+'*';
end;
result:=wort;
end;
</code>
<run id="4ea11d8166927">
writeln(caesar_test(inputDialog('Klartext:'), StrToInt(inputDialog('Verschiebezahl:'))));
</run>
== Implementation ==
# Implementiere den beschriebenen Algorithmus derart, dass die Funktion <tt>caesar</tt> sowohl zum Ver- als auch Entschlüsseln gentutzt werden.
<code id="4ea11d8166865">
function caesar(klar: string; v,richtung: integer): string;
var a,i,ascii : integer;
wort,gross: string;
begin
wort:=''; gross:='';
a:=length(klar);
for i:=1 to a do gross:=gross+uppercase(klar[i]);
for i:=1 to a do
begin
ascii:=ord(gross[i])+richtung*v;
if ascii>90 then ascii:=ascii-26;
if ascii<65 then ascii:=ascii+26;
wort:=wort+chr(ascii);
end;
result:=wort;
end;
</code>
<check>result:=(caesar('HALLO',2,1)=Caesar_test('HALLO',2));</check>
<run id="4ea11d816698f">writeln(caesar('HALLO',2,1));</run>