Zitat:
halt normale Transposition (bei der einfach der Geheimtext zeilenweise in eine Tabelle geschrieben wird und die dann spaltenweise wieder ausgegeben wird
Wenn du dieses Verfahren machen willst, schreibs dir einfach mal hin:
Code:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
Wenn du jetzt die erste Spalte runter gehst, begegnen dir die Zahlen 1,6,11 , also Zahlen der Form
a+x*n, wobei a die Nummer deiner Spalte ist (hier 1) x die Nummer der Zeile ist und n die Anzahl der Ziffern pro Zeile (hier 5). (Wobei hier die 1 die Koordinate (1,0) hat.
Also brauchst du sowas wie eine Schleife
Delphi-Quellcode:
str:='';
for a:=1 to 5 do
for x:=0 to 2 do
str:= str+klartext[round(a+x*n)];
Ich weiss grad nicht, ob erkannt wird, dass das Produkt aus zwei Integern wieder integer ist, wenn es so ist, kannst du das Round auch weglassen.
Dabei muss noch beachtet werden, dass Strings eigentlich bei Null beginnen (str:='123' -> str[0]=1)
dann musst du dir noch Gedanken über einen möglichen Abbruch der Schleife machen, also sowas wie (if a+x*n>high(klartext) oder so.
Erwarte das Beste und bereite dich auf das Schlimmste vor.