Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2009, 22:58   #1
next1380
Новичок
Джуниор
 
Регистрация: 31.10.2009
Сообщений: 2
По умолчанию Шифр Уинстона

Помогите плиз с реализацией на делфи или паскале шифра Уинстона.
Необходима программа которая будет кодировать и декодировать текст на основе его алгоритма.
next1380 вне форума Ответить с цитированием
Старый 01.11.2009, 00:43   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...в чем затык?
...наработки?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.12.2012, 18:07   #3
for_tuna
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...в чем затык?
...наработки?
вот есть программа. как реализовать дешифровку? помогите,пожалуйста

Код:
uses crt;
type
  ttable=array[1..7,1..5] of char;
const
  list:ttable=(('а','б','в','г','д'),
               ('е','ж','з','и','к'),
               ('л','м','н','о','п'),
               ('р','с','т','у','ф'),
               ('х','ц','ч','ш','щ'),
               ('ъ','ы','ь','э','ю'),
               ('я','.',',',':',' '));
  
  mixdepth=1000;
 
procedure findxy(table:ttable;c:char;var x,y:byte);
var
  p,o:byte;
begin
  for o:=1 to 7 do
  for p:=1 to 5 do
  if table[o,p]=c then
  begin
    x:=p;
    y:=o;
    exit;
  end;
end;
 
var
  table1,table2:ttable;
  p,o,p2,o2:byte;
  i:integer;
  c:char;
  s,s2:string;
begin
  
  for o:=1 to 7 do
  for p:=1 to 5 do
  begin
    table1[o,p]:=list[o,p];
    table2[o,p]:=list[o,p];
  end;
  
  
  randomize;
  for i:=1 to mixdepth do
  begin
    
    o:=random(7)+1;
    p:=random(5)+1;
    o2:=random(7)+1;
    p2:=random(5)+1;
    c:=table1[o,p];
    table1[o,p]:=table1[o2,p2];
    table1[o2,p2]:=c;
    
    o:=random(7)+1;
    p:=random(5)+1;
    o2:=random(7)+1;
    p2:=random(5)+1;
    c:=table2[o,p];
    table2[o,p]:=table2[o2,p2];
    table2[o2,p2]:=c;
  end;
  
  clrscr;
  for o:=1 to 7 do
  begin
    for p:=1 to 5 do write(table1[o,p]:2);
    write('  | ');
    for p:=1 to 5 do write(table2[o,p]:2);
    writeln;
  end;
  writeln('Введите текст который будет зашифрован используя только символы из таблиц:');
  readln(s);
  if odd(length(s)) then s:=s+' '; 

  i:=1;
  s2:='';
  while i<length(s) do
  begin
    findxy(table1,s[i],p,o);
    findxy(table2,s[i+1],p2,o2);
    s2:=s2+table2[o,p2]+table1[o2,p];
    inc(i,2);
  end;
  
  writeln('Зашифрованная строка:');
  writeln(s2);
end.
for_tuna вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифр Уинстона next1380 Помощь студентам 0 31.10.2009 22:48
Шифр Progs1024 Паскаль, Turbo Pascal, PascalABC.NET 9 12.10.2009 19:51
Шифр Хилла Fallen Soul Помощь студентам 4 05.10.2009 02:09
че за шифр? Анастасия123456789 Помощь студентам 4 11.05.2009 19:19
Шифр Razora Свободное общение 10 26.06.2007 15:52