Ну пожалуйста, только вот нахрена тут эта матрица - хоть убей, не понимаю. Есть кодированный текст, есть ключи, и этого, на мой взгляд, вполне достаточно. А матрица - она так, похоже, просто для наглядности. Но хотите с матрицей - вот Вам с матрицей:
Код:
Const
k1:Array[1..6] of Byte=(5,3,1,2,4,6);
k2:Array[1..4] of Byte=(4,2,3,1);
Var
Coded_Text,Decoded_Text_1,Decoded_Text_2,S:String;
Matrix:Array[1..6,1..4] of Char;
i,j:Byte;
Begin
Write('Enter the Coded_Text: ');
Readln(Coded_Text);
Writeln;
For j:=1 to 4 do
For i:=1 to 6 do
Matrix[i,k2[j]]:=Coded_Text[(j-1)*6+i];
Writeln(' k1\k2 1 2 3 4');
For i:=1 to 6 do
begin
Write(' ',i,' ');
For j:=1 to 4 do
write(' ',Matrix[i,j],' ');
Writeln;
end;
Writeln;
Decoded_Text_1:='';
For j:=1 to 4 do
begin
S:=Copy(Coded_Text,(k2[j]-1)*6+1,6);
Decoded_Text_1:=Decoded_Text_1+S;
end;
Decoded_Text_2:='';
For i:=1 to 6 do
For j:=1 to 4 do
begin
S:=Copy(Decoded_Text_1,(j-1)*6+k1[i],1);
Decoded_Text_2:=Decoded_Text_2+S;
end;
Writeln(Decoded_Text_2);
Readln;
End.