Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите решить задачку на Паскале

Автор: SpikyGirl 5.04.2007 23:53

Короче нужна задача на Паскале про Шрифт Цезаря. Нужно чтобы задавался пятизначный ключ и вводился текст, который будет шифроваться. Например, надо зашифровать "ПРИВЕТ" и ключ 12345. Первая буква сдвигается на первое число ключа тоесть на 1 вместо П теперь Р, вторая буква сдвигается на второе число ключа, на 2 - вместо Р теперь [color=#CC33CC]Т и т. д.

Автор: volvo 5.04.2007 23:58

Здесь: http://volvo71.narod.ru/faq_folder/code_text.htm#code_caesar

P.S.
Только шифр Цезаря - это не то, что здесь описано... Описан здесь шифр Вижинера, скорее всего...

Автор: Tan 5.04.2007 23:59

Ну так ключ эта строка значит можешь обратиться к каждому элементу и узнать его, потом переводишь в целочисленный тип командой val а сдигание осуществляешь так : chr(ord(x) + y ) где х это элемент текста, а y это переведённая в целочисленный цифра.

Автор: Tan 6.04.2007 0:25

Вот, что у меня вышло, не забывай что в слове может быть сколько угодно букв, но должно изменяться только 5, как я понял из твоего условия, если это то, что тебе надо, подправь остальное сама.

uses crt;
var s,buf,key : string[5];
i : byte;
X ,code : integer;
k : char;
begin
readln (s);
readln (key);
for i:=1 to 5 do
begin
k:=key[i];
buf[i]:=s[i];
val (k,X,CODE);
s[i]:=chr (ord(buf[i]) + x);
end;
writeln (s);
readkey;
end.