IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Шифрование, Заканчиваем 11 класс, а тут программирование совсем сложным стало... П
Black Zi
сообщение 19.03.2007 17:41
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Зи

Репутация: -  0  +


1. Создать программу шифровщик-дишифровщик. Вначале выбераем шифровку или дишифровку выполняем. Для шифровки вводим русский текст, преобразуем все буквы в заглавные, а затем прибавляем каждому коду буквы сдвиг (сдвиг может быть и отрицательным, мы сами его вводим). А на дишифровщике точно на оборот... Заранее благодарю!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 20.03.2007 17:21
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Мне кажется просто Цезарь это не совсем то что нужно, я думаю должно быть что-то вроде этого:

const
s_alpha = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
b_alpha = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';

function Lower(s: String): String;
var
i: Integer;
begin
for i := 1 to Length(s) do
s[i] := s_alpha[ Pos(s[i], b_alpha) ];
Lower := s;
end;

function Crypt(const s: String; shift: Integer): String;
var
newPos, i, delta: Integer;
r: String;
begin

shift := shift - 33 * (shift div 33);

if shift < 0 then shift := 33 + shift;

r := '';

for i := 1 to Length(s) do begin
newPos := Pos(s[i], s_alpha) + shift;
if newPos > 33 then dec(newPos, 33);
r := r + b_alpha[newPos];
end;

Crypt := r;
end;

function DeCrypt(s: String; shift: Integer): String;
begin
Decrypt := Lower(Crypt(Lower(s), -shift));
end;

var
s: String;

begin
s := 'абвя';
writeln(s);
s := Crypt(s, -34);
writeln(s);
s := DeCrypt(s, -34);
writeln(s);
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 23:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"