|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Криптография, Необходима помощь!
В общем согласно заданию необходимо, что бы в методе шифрования цезаря участвовали только символы "а...я", я очень долго пытался разобраться но ничего не выходит помогите плз.
Код:
procedure TForm1.BZShClick(Sender: TObject); var i:integer; begin str1:=mzSh.Text; MZZash.Text:=''; bl:=StrToInt(ESdv.Text); for i:=1 to length(str1) do mzZash.Text:=mzZash.Text+chr( (ord(str1[i])+bl) mod 256 ); end; procedure TForm1.BZPozShClick(Sender: TObject); var i:integer; begin //str1:=mzZash.Text; //bl:=StrToInt(ESdv.Text); MZPozsh.Text:=''; for i:=1 to length(str1) do MZPozsh.Text:=MZPozsh.Text+chr( (ord(str1[i])+(224-32)) mod +224 ); end; Последний раз редактировалось Admin, 11.05.2012 в 10:07. |
#2
|
|||
|
|||
Код:
alpha:array [0..32] of byte; for i:=byte('a') to byte('я') do alpha[i]:=ord(i); Код:
position:=byte('буква')-224; Для входной строки s процедура шифрования будет примерно следующая: Код:
for i:=o to length(s)-1 do newS[i]:=byte(S[i]-221); //C учетом сдвига на 3 символа Последний раз редактировалось PS11011010, 11.05.2012 в 13:33. |
#3
|
|||
|
|||
Не могли бы Вы объяснить, что именно необходимо отредактировать что бы все заработало?
|
#4
|
|||
|
|||
В каком смысле отредактировать? И до какой степени заработало?
|
#5
|
|||
|
|||
Вот что я сделал, вероятнее всего это неправильно, подскажите как правильно отредактировать что бы все заработало?
Код:
procedure TForm1.BZShClick(Sender: TObject); var i:integer; alpha:array [0..32] of byte; begin str1:=mzSh.Text; MZZash.Text:=''; bl:=StrToInt(ESdv.Text); for i:=byte('a') to byte('я') do alpha[i]:=ord(i); mzZash.Text:=mzZash.Text+chr( (ord(str1[i])+bl) mod 224 ); end; procedure TForm1.BZPozShClick(Sender: TObject); var i:integer; begin str1:=mzZash.Text; bl:=StrToInt(ESdv.Text); MZPozsh.Text:=''; for i:=1 to length(str1) do MZPozsh.Text:=MZPozsh.Text+chr( (ord(str1[i])-(224)) mod 224); end; |
#6
|
|||
|
|||
Код:
mzZash.Text:=mzZash.Text+chr( (ord(str1[i])+bl) mod 224 ); |
#7
|
|||
|
|||
Код:
begin S:=newS.Text; for i:=0 to length(s)-1 do newS[i]:=byte(S[i]-221); //MZZash.Text:=''; //bl:=StrToInt(ESdv.Text); //for i:=1 to length(str1) do //mzZash.Text:=mzZash.Text+chr( (ord(str1[i])+bl) mod 256 ); end; lmikle: Пользуемся тегами!!! Я к сожалению незнаю как исправить, по этому и прошу помоч. Последний раз редактировалось lmikle, 11.05.2012 в 23:24. |
#8
|
|||
|
|||
Код:
procedure TForm1.BZShClick(Sender: TObject); var i:integer; s: string; begin newS.Text:=''; for i:=0 to length(s)-1 do newS[i]:=byte(S[i]-221); //str1:=mzSh.Text; //MZZash.Text:=''; //bl:=StrToInt(ESdv.Text); //for i:=1 to length(str1) do //mzZash.Text:=mzZash.Text+chr( (ord(str1[i])+bl) mod 256 ); end; |
#9
|
||||
|
||||
Ну почему так не любим использовать поиск? Надеетесь, что ваша тема такая уж оригинальная? Тема обсуждалась не раз, имеюются готовые программы.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
|||
|
|||
Умею я юзать поиск, есть необходимость в редактировании именно этой версии...
|
#11
|
|||
|
|||
Я, к сожалению, не совсем все понимаю в твоих кодах, поэтому накидаю общую схему действий.
1. Считываешь строку из текстового поля Код:
input:=Edit1.text; Код:
for i:=0 to length(input)-1 do output[i]:=ord(byte(input[i])-224+dx); |
Этот пользователь сказал Спасибо PS11011010 за это полезное сообщение: | ||
Mouse (12.05.2012)
|