Gymnasium Zitta/Langer/Beispiel 2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
'''Der Caesar-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>
# 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="4ea08ce22327c">writeln(caesar(HALLO,2));</run>