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>