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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.04.2007, 11:28   #1
***СкаЙ***
Пользователь
 
Регистрация: 02.04.2007
Сообщений: 38
Восклицание Алгоритм Цезаря

Написал алгоритм шифровки, а он кодирует токо начало строк в мемо. Подскажите в чем может быть загвоздка. Зарание спасибо.
procedure TForm1.N3Click(Sender: TObject);
var j , h:integer; l, rez, q, g:string; f:char;
begin
Цитата:
n12.Enabled:=false;
s:=strtoint(inputbox('Øèôð Öåçàðÿ','Ââåäèòå êëþ÷ü (òîëüêî öåëîå ÷èëî)','0'));
n3.Enabled:=true;
h:=0;
while h<memo1.lines.count do begin
inc(h);
q:=memo1.Lines[h];
rez:='';
for j:=1 to length(q) do
begin
f:=q[j];
l:=chr((ord(f)+s)mod 255);
rez:=rez+l;
end;
memo2.lines.Add(rez);
end;
n3.Enabled:=false;
n4.Enabled:=true;
end;
procedure TForm1.N4Click(Sender: TObject);
var a, rez, d, g:string; c:char;
i, k, h :integer;
begin
memo1.Clear;
h:=0;
while h<memo2.Lines.Count do begin
inc(h);
a:=memo2.Lines[h];
rez:='';
for k:=1 to length(a) do
begin
c:=a[k];
d:=chr((abs(ord(c)- s))mod 255);
rez:=rez+d;

end;
memo1.lines.Add(rez);
end;
end;
***СкаЙ*** вне форума
Старый 23.04.2007, 21:51   #2
RSLoader
_________
Пользователь
 
Аватар для RSLoader
 
Регистрация: 27.03.2007
Сообщений: 69
По умолчанию

Возможно, загвоздка здесь: d:=chr((abs(ord(c)- s))mod 255)
Попробуй убрать mod 255 - наверняка заработает.
Вот мой аналогичный код:
Код:
//Функция возвращает закодированную или
//раскодированную (в зависимости от значения Decode)
//строку S шифром Цезаря с ключом Key
function Cesar(Key:Integer; S:String; Decode:Boolean):String;
var
  i:Integer;
  st:String;
begin
  st:=S;
  if Decode then Key:=-Key;
  for i:=1 to Length(S) do
    st[i]:=Chr((Ord(S[i])+Key));
  Result:=st;
end;
//Шифровка
procedure TForm1.Button1Click(Sender: TObject);
var
  i,Key:Integer;
begin
  Key:=StrToInt(Edit1.Text); //Ключ вводим в Edit1
  for i:=0 to Memo1.Lines.Count-1 do
    Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],False);
end;
//Расшифровка
procedure TForm1.Button2Click(Sender: TObject);
var
  i,Key:Integer;
begin
  Key:=StrToInt(Edit1.Text);
  for i:=0 to Memo1.Lines.Count-1 do
    Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],True);
end;
RSLoader вне форума
Старый 27.04.2007, 02:40   #3
***СкаЙ***
Пользователь
 
Регистрация: 02.04.2007
Сообщений: 38
По умолчанию

Спасиба тебе огромное!!!!!
***СкаЙ*** вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аффинная система подстановок Цезаря Karyuudo Помощь студентам 12 10.02.2010 19:26
Алгоритм SunKnight Работа с сетью в Delphi 5 29.04.2008 15:24
Алгоритм Rifler Паскаль, Turbo Pascal, PascalABC.NET 3 30.03.2008 01:33
Помогите с алгоритмом Цезаря!!! Пожалуйста ***СкаЙ*** Помощь студентам 6 05.04.2007 11:10