Gymnasium Zitta/Langer/Beispiel 2
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="4d36f53cceb17" hidden>
var k:String; v:Integer;
function caesar_test(klar:string; v:integer):string;
var a,i,ascii:integer; wort:String;
begin
a:=length(klar);
wort:='';
for i:=1 to a do
begin
ascii:=(klar[i]); //ord noch nicht bekannt, einfach weglassen, dann wandelt er automatisch um
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="4d376467e979a">
k:= inputDialog('Klartext');
v:= StrToInt(inputDialog('Verschiebezahl'));
writeln (caesar_test(k,v));
</run>
== Implementation ==
# Ergänze den Quelltext.
<code id="4d376467e972c">
function caesar(klar:string; v:integer):string;
var a,i,ascii:integer; wort:String;
begin
//Länge vom Klartext (klar) bestimmen
//Zählschleife mit Laufvariable i
begin
//Ermittle den ASCII-Code (ascii) des i-ten Buchstabens
//addiere v zum Ascii-Code
wort:=wort+chr(ascii)
end;
result:=wort;
end;
</code>
<check>result:= caesar('HALLO',2) = Caesar_test('HALLO',2);</check>
<run id="4ea11e4cadaf3">writeln(caesar('HALLO',2));</run>