![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите пожалуста !мне необходимо создать программу,которая будет зашифровывать слово ,поставив букве её номер в алфавите,и идентичную только для расшифровки!если кто-нибудь знает как это организовать помогите пожалуста.пишу на delphi ,если можно-приведите код
Последний раз редактировалось Dima170792, 21.04.2011 в 19:31. |
|
#2
|
||||
|
||||
|
Chr - возвращает символ по его коду: Chr(65) = "A"
Ord - возвращает код символа: Ord('A') = 65 |
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
а чего тут в 2-х строчках сложного?
Код:
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Edit2.Text:='';
Edit3.Text:='';
// шифруемся
for i:=1 to Length(Edit1.Text) do
Edit2.Text:=Edit2.Text+Format('%.3d', [Ord(Edit1.Text[i])]);
// дешифруемся
for i:=0 to (Length(Edit2.Text) div 3)-1 do
Edit3.Text:=Edit3.Text+Chr(StrToInt(Edit2.Text[i*3+1]+Edit2.Text[i*3+2]+Edit2.Text[i*3+3]));
end; |
|
#5
|
|||
|
|||
|
К сожалению Ваш код не подходит
Последний раз редактировалось Dima170792, 21.04.2011 в 22:25. |
|
#6
|
|||
|
|||
|
-Необходимо создать программу,которая будет зашифровывать слово ,поставив каждой букве её номер в алфавите.если знаете-подскажите пожалуйста!
|
|
#7
|
|||
|
|||
|
-Необходимо создать программу,которая будет зашифровывать слово ,поставив каждой букве её номер в алфавите.если знаете-подскажите пожалуйста!например-А=1,Б=2,В=3,и т.д.
слово ''пример''за шифруется так-17181014618 |
|
#8
|
||||
|
||||
|
Вот как то так:
Код:
Function CodeTxt(Txt: String): String;
Const
Alfavit: Array [1..34] of Char = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя ';
Var
i, j: Integer;
begin
For i:= 1 To Length(Txt) Do
For j:= 1 To 34 Do
begin
if Alfavit[j] = Txt[i] Then Result:= Result + Format('%.2d', [j]);
end;
end;
Function DeCodeTxt(Txt: String): String;
Const
Alfavit: Array [1..34] of Char = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя ';
Var
S: String;
i, j: Integer;
begin
i:= 1;
While i <= Length(Txt) Do
begin
S:= Txt[i] + Txt[i+1];
j:= StrToInt(S);
Result:= Result + Alfavit[j];
Inc(i, 2);
end;
end; |
|
#9
|
||||
|
||||
|
Цитата:
А как вы узнаете, сколько цифр уходит на один символ (при расшифровке). Я бы ваш "пример" расшифровывал бы: 1 7 1 8 10 1 4 6 1 8 - и это тоже правильно ![]() А Ё А Ж И А Г Е А Ж ![]() Только нолик вызывает сомнения и заставляет расшифровывать его с предыдущей цифрой ![]() |
|
#10
|
||||
|
||||
|
надеялся, что дальше сам догадаешься, но видать ошибся:
Код:
var
i: Integer;
begin
Edit2.Text:='';
Edit3.Text:='';
// шифруемся
for i:=1 to Length(Edit1.Text) do
Edit2.Text:=Edit2.Text+Format('%.2d', [Ord(Edit1.Text[i])-Ord('а')]);
// дешифруемся
for i:=0 to (Length(Edit2.Text) div 2)-1 do
Edit3.Text:=Edit3.Text+Chr(StrToInt(Edit2.Text[i*2+1]+Edit2.Text[i*2+2])+Ord('а'));
end;Цитата:
|
|
#11
|
|||
|
|||
|
Код:
да, и с заданием автор тожа напутал что-то: с большими (строчными) и маленькими (прописными) буквами что делать? кейсить? тожа очень удачное замечание |
|
#12
|
|||
|
|||
|
Код:
надеялся, что дальше сам догадаешься, но видать ошибся |
|
#14
|
|||
|
|||
|
Цитата:
Да проще надо быть. IntToHex сделает все, что нужно. При этом нам точно дочтаточно будет 1 байта, т.е. в 16 представлении всегда 2 цифры, а ведущий 0 будет функцией подствлен автоматически. |
|
#15
|
||||
|
||||
|
Цитата:
|