Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Заполнение матрицы буквами (http://www.tehnari.ru/f41/t78822/)

slav@ 29.09.2012 14:21

Заполнение матрицы буквами
 
Вложений: 1
дан текст.вводится ключ с помощью которого осуществляется заполнение матрицы по строчкам.написать программу заполнения матрицы.вот пример задания

Vladimir_S 29.09.2012 18:48

Вам на Аде или Кобол сойдёт?

slav@ 29.09.2012 20:49

мне если можно,то на паскале......на бейсике еще можно

Vladimir_S 29.09.2012 21:05

Ничего не понял: в таблице переставлены только строки в соответствии с ключом k1, ключ k2 не задействован. Это как?

Vladimir_S 29.09.2012 21:08

А, нет - отбой, понял.

Vladimir_S 29.09.2012 21:59

Вложений: 1
Ну вот Вам на Free Pascal. Сразу предупреждаю - на Pascal ABC не пойдет: этот ублюдочный продукт типизированных констант в упор не понимает.
Код:

Const
 k1:Array[1..6] of Byte=(5,3,1,2,4,6);
 k2:Array[1..4] of Byte=(4,2,3,1);
 Coded_Text:String='ПСНОРЙЕРВАИК ЕАНФОИЕОТШВ';
Var
 Decoded_Text_1,Decoded_Text_2,S:String;
 i,j:Byte;
Begin
 Writeln(Coded_Text);
 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;
 Writeln(Decoded_Text_1);
 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.


slav@ 30.09.2012 10:31

coded_text не константа.мы вводим текст шифрование перестановкой,и на основе этого текста по ключам создаем матрицу.....вот у меня не получается ее создать((

Vladimir_S 30.09.2012 12:04

Цитата:

Сообщение от slav@ (Сообщение 798529)
coded_text не константа.мы вводим текст шифрование перестановкой,и на основе этого текста по ключам создаем матрицу.....вот у меня не получается ее создать((

Пустяки - сейчас добавлю.
Но вот чего я не пойму, так это того, а что делать, если текст содержит НЕ 24 позиции? То есть меньше или больше. Ведь ключи подобраны именно под 24.

Vladimir_S 30.09.2012 12:44

Вложений: 1
Ну пожалуйста, только вот нахрена тут эта матрица - хоть убей, не понимаю. Есть кодированный текст, есть ключи, и этого, на мой взгляд, вполне достаточно. А матрица - она так, похоже, просто для наглядности. Но хотите с матрицей - вот Вам с матрицей:
Код:

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.


slav@ 04.10.2012 15:33

а если поменять второй ключ то расшифровка работает неправильно(((((((


Часовой пояс GMT +4, время: 18:11.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.