Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Pascal Сортировки https://www.cyberforum.ru/ pascal/ thread33243.html
Сортировка массива различными способами { Описание всех алгоритмов можно найти в книге: Кнут Д., Искусство программирования для ЭВМ, Т. 3.: Сортировка и поиск. М.: Мир, 1978. ...
Квадрат Полибия Pascal
Шифровальная таблица для латиницы представляет собой прямоугольник с шестью столбцами и пятью строками, которые нумеруются цифрами. В каждую клетку такого квадрата записывается одна буква. В...
Заполнить массив А(n,m) целыми случайными числами Pascal
Помогите решить,очень надо.Заполнить массив А(n,m) целыми случайными числами таким образом чтобы и в каждой строке и в каждом столбце каждый следующий элемент был не меньше предыдущего...
Pascal Дана матрица. Упорядочить элементы строк матрицы по возрастанию 1) Дана матрица. Упорядочить элементы строк матрицы по возрастанию, а сами строки по неубыванию произведения четных элементов строк. Использовать сортировку бинарными вставками, реализовав метод в... https://www.cyberforum.ru/ pascal/ thread33215.html
Pascal Необходимо разработать рекурсивный алгоритм. https://www.cyberforum.ru/ pascal/ thread33201.html
Разработать рекурсивный алгоритм и программу решения задачи, в которой вычислить : f(n)=(1+n!)/n!. Исходные данные вводятся с клавиатуры. Программа должна быть реализована с использованием...
Pascal Запись
По ходу роботы возник такой момент .. в роботе в запись нужно добавить 7 полей с которых 4 типа string и 3 типа integer , Это все я обьявил в type .. потом хочу создать масив записей ... но здесь...
Паскаль.Процедуры.Матрицы. Pascal
написать процедуру для ввода и выода элементов двухмерных массивов как целого(integer),так и вещественного(real) Буду благодарен за любую подсказку...лаба горит,без зачета могу остаться...
Pascal Поиск и сортировка Помогите, пожалуйста с задачкой! Необходимо упорядочить массив R(I) по невозрастанию, используя следующий подход: для i=2,3,...,1 каждый элемент r(i) вставлять в нужное место среди упорядоченных... https://www.cyberforum.ru/ pascal/ thread33178.html
Pascal Динамический список, не пойму... https://www.cyberforum.ru/ pascal/ thread33176.html
Здравствуйте, есть задание: Сформировать динамический список, элементами которого являются целые числа (в условии дано - это элементы массива). Выполнить задание, не...
Pascal Работа с текстом. Написать программу которая бы считала кол-во слов в блокноте .txt За рание огромное спасибо!!! https://www.cyberforum.ru/ pascal/ thread33173.html
Администратор
79868 / 48431 / 244
Регистрация: 10.04.2006
Сообщений: 13,126
0

Шифрование

08.05.2009, 12:32. Просмотров 81871. Ответов 7
Метки (Все метки)


Шифрование методом Льюиса

Эта программа оставит символы, не присутствующие в строке Alpha_Hor без изменения. То же самое касается и заглавных букв (хотя заглавные буквы можно внести в эту самую строку).
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
const
  len = 26;
 
  {Это символы для выбора столбца таблицы}
  alpha_hor: string = 'abcdefghijklmnopqrstuvwxyz';
 
  {Здесь будут символы для выбора строки таблицы}
  alpha_ver: string = '';
 
var
  {Это собственно таблица кодирования}
  table: array[1 .. len, 1 .. len] of char;
 
{функция получает строку S и возвращает строку,
  полученную из исходной сдвигом на N позиций}
function shift(s: string; n: integer): string;
  begin
    s := copy(s, length(s) - pred(n), n) + s;
    delete(s, length(s) - pred(n), n); shift := s
  end;
 
var
  i, j, row, col: integer;
  s: string; ch: char;
 
  key: string;
  is_russian: boolean;
  f_in: file of char; f_out, f_key: text;
begin
  { Заполнение таблицы кодировки }
  for i := 1 to len do begin
    {получаем строку символов для текущей строки таблицы}
    s := shift(alpha_hor, pred(i));
    for j := 1 to len do
      table[i, j] := s[j];
    {
      не забываем первый символ заносить в "хранилище"
      для выбора строк по кодируемой букве
    }
    alpha_ver := alpha_ver + s[1]
  end;
 
  { связываем логические файлы программы с физическими файлами на диске }
 
  { файл с фразой для кодирования - открываем для чтения }
  assign(f_in, 'f_00in.txt');
  {$i-} reset(f_in); {$i+}
 
  { файл для сохранения результата - открываем для записи }
  assign(f_out, 'f_00out.txt');
  {$i-} rewrite(f_out); {$i+}
 
  {
    файл, содержащий ключевое слово - открываем для чтения,
    считываем слово в строковую переменную и закрываем файл
  }
  assign(f_key, 'f_00key.txt');
  {$i-} reset(f_key); {$i+}
  readln(f_key, key);
  close(f_key);
 
  { счетчик закодированных символов }
  i := 0;
  {до конца кодируемого файла делаем следующее:}
  while not eof(f_in) do begin
    { читаем очередной символ }
    read(f_in, ch);
    { находим по нему строку таблицы }
    row := pos(ch, alpha_ver);
    {
      эта переменная содержит значение успеха предыдущей операции
      (если True, то символ присутствует в таблице, иначе False)
    }
    is_russian := (row > 0);
    if is_russian then begin
      { Если символ присутствует в таблице, его надо кодировать }
 
      { увеличиваем счетчик закодированных символов }
      inc(i);
 
      {
        находим столбец по значению ключевого символа
        (операция mod используется, чтобы исключить выход
        за пределы ключа, т.к. длина ключа обычно меньше
        длины шифруемой последовательности)
      }
      col := pos(key[i mod (length(key))], alpha_hor);
      { и заменяем простой символ на зашифрованный (из таблицы) }
      ch := table[row, col];
    end;
    {
      если символ надо было шифровать, он уже зашифрован,
      если он не может быть зашифрован, он остался без изменений.
      Пишем его в выходной файл
    }
    write(f_out, ch)
  end;
 
  { И закрываем оба файла: исходный и зашифрованный }
  close(f_out);
  close(f_in)
end.


Вернуться к обсуждению:
Шифрование
18
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2009, 12:32
Готовые ответы и решения:

шифрование)
Программа должна реализовывать шифрования и расшифровки текстовых фалов. Имя файла содержимое...

Шифрование
Может кто помочь с этими Тремя заданиями? Буду очень благодарен ))...

Xor шифрование
Доброго времени суток! Нужно написать программу xor шифрования строки другой строкой. Строка,...

Шифрование текста
Привет Извините за название темы, сам не заметил, что написал. Задача На вход программе...

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