Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/56: Рейтинг темы: голосов - 56, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.03.2009
Сообщений: 5
1

Квадрат Полибия

08.05.2009, 12:23. Показов 10668. Ответов 3
Метки нет (Все метки)

Шифровальная таблица для латиницы представляет собой прямоугольник с шестью столбцами и пятью строками, которые нумеруются цифрами. В каждую клетку такого квадрата записывается одна буква. В результате каждой букве соответствует пара чисел (например, a-11, b-12, c-13 и т.д.), и шифрование сводится к замене буквы парой чисел. Необходимо написать программу, которая будет осуществлять шифрование и дешифрование данным способом.

Помогите, плз!... Хотя бы с шифрованием.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2009, 12:23
Ответы с готовыми решениями:

Квадрат Полибия - Написать программу, шифрующий текст именно по этому способу
Здравствуйте. Помогите написать программу, шифрующий текст именно по этому способу... Сам квадрат:...

Метод Полибия
Помогите, пожалуйста, составить программу по методу Полибия 2 вариант на pascal abc. Суть второго...

Шифр квадратом Полибия, ввод текста с клавиатуры
Здравствуйте! Нужно изменить код так, чтобы текст для шифрования вводился с клавиатуры...

Требуется вывести квадратную матрицу, где первый квадрат-единицы, квадрат внутри него-нули, потом снова единицы и т.д.
Требуется вывести квадратную матрицу, где первый квадрат-единицы, квадрат внутри него-нули, потом...

__________________
3
Администратор
79987 / 48549 / 244
Регистрация: 10.04.2006
Сообщений: 13,128
08.05.2009, 12:37 2
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

https://www.cyberforum.ru/pasc... 56624.html
2
0 / 0 / 0
Регистрация: 17.03.2009
Сообщений: 5
08.05.2009, 23:58  [ТС] 3
Спасибо!
0
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 3
20.11.2015, 21:30 4
Такой вопрос. Я из данных на форуме исходников сделал усложненную версию шифратора\дешифратора по квадрату Полибия. Текст для шифрования читается из текстового файла. Но он шифрует только первую строчку. А после 'Enter' чтение прекращается. Как сделать чтобы программа шифровала последующие строки?
Вот мой исходник:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
program Polibius;
uses crt;
const
  TPolibius: array['G' .. 'S', 'G' .. 'S'] of char = (
  
    ('G', '&', 'ё', '¥', 'W', ' ', '1', '0', 'х', 'З', '#', '!', 'S'),  
    ('~', 'Щ', '/', 'Q', 'ц', 'N', ';', 'п', '9', 'Е', 'o', 'K', '{'),
    ('й', 'd', '8', 'Ю', '7', 'а', 'x', 'J', '%', 'H', 'U', 'j', 'h'),
    ('C', 'д', 'л', 'f', 'Л', 'g', '}', 'М', 'у', '=', 'Д', '+', '>'),
    ('F', 'С', 'К', 'V', '|', '"', '6', 'Ж', 'Т', 'и', 'т', 'р', 'Й'),
    ('В', 'ф', 'A', 'в', 'О', 'з', 'Ц', '-', '5', 'щ', 'ъ', '4', '<'),
    ('я', ')', 'z', 'о', '`', '_', '\', '[', 'T', '?', 'P', '3', 'E'),
    ('s', 'X', 'a', 'Б', '2', 'Р', 'O', 'ш', 'Ь', 'Н', 'R', 'b', '^'),
    ('Ё', 'н', 'Ы', 'k', 'ь', 'M', 'B', 'И', 'm', ':', 'э', '*', 'I'),
    ('ы', 'n', 'l', '×', 'ч', 'г', '÷', 'П', 'м', 'к', 'v', 'c', '«'),
    ('(', 'Ч', 'ж', 'Г', '@', 'Х', '¤', 'У', 'p', 'Ъ', '№', 'Э', 'Y'),
    ('D', 'Ш', 'б', 'е', '»', 'с', 'Я', 'ю', ']', 'А', 'L', 'Z', 'Ф'),
    ('q', ' ', 'w', '.', 'e', 'r', ',', 't', 'y', 'u', '§', 'i', '£')
    
    
  );
function PolibiusEncipher(toCode: string): string;
var
  i: integer;
  ix, jx: char;
  s: string;
begin
 
  s := '';
  for i := 1 to length(toCode) do begin
    for ix := 'G' to 'S' do
      for jx := 'G' to 'S' do
        if TPolibius[ix, jx] = toCode[ i ] then begin
          s := s + ix + jx; break;
        end; 
  end;
  PolibiusEncipher := s
end;
 
function PolibiusDecipher(toDecode: string): string;
var
  i: integer;
  s: string;
begin
  s := '';
  i := 1;
  while i <= length(toDecode) do begin
    s := s + TPolibius[toDecode[ i ], toDecode[succ(i)]];
    inc(i, 2);
  end;
  PolibiusDecipher := s
end;
 
var
  b, s, k: string;
  input, output, routput:text;
begin
//Шифрование
         assign(input, 'input.txt');
        
          reset(input);
         readln(input, k);
  s := PolibiusEncipher(k);
      writeln('Зашифрованный текст:', s);
         assign(output, 'output.txt');
         rewrite(output);
         writeln(output, s);
         close(input);
         close(output);
//Дешифрование         
      assign(output, 'output.txt'); reset(output);
      readln(output, b);
      writeln('Расшифрованный текст.', PolibiusDecipher(b));   
      close(output);
  assign(routput, 'routput.txt');   
  rewrite(routput);
  writeln(routput, PolibiusDecipher(b));
  close(routput);
      writeln('Конец программы.');
end.
Добавлено через 11 минут
И ещё она шифрует по английскому алфавиту от G до S, а не по первой строке квадрата как это исправить?
Еще интересно, как сделать что бы при отсутствии файла input, программа не слетала, а переходила к расшифрованию?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2015, 21:30

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Шифр Полибия
Здравствуйте, помогите, пожалуйста, реализовать шифр Полибия. Его суть состоит в следующем: Каждая...

Шифрование методом квадрата Полибия
Напишите пожалуйста программу, которая шифрует методом квадрата Полибия.

Если квадрат числа меньше 100, напечатать число и его квадрат
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат

Отрицательные элементы умножить на квадрат наименьшего элемента, а неотрицательные - на квадрат наибольшего
В массиве необходимо все отрицательные элементы умножить на квадрат его наименьшего элемента, а все...

Если квадрат числа меньше 100, напечатать число и его квадрат
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат.

Квадрат задан координатами своих вершин, определить радиус и длинну окружности, вписанной в квадрат
Квадрат задан координатами своих вершин, определить радиус и длинну окружности, вписанной в квадрат.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.