![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Ну почему так не любим использовать поиск? Надеетесь, что ваша тема такая уж оригинальная? Тема обсуждалась не раз, имеюются готовые программы.
|
|
#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)
| ||