Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.18;
Скачать: CL | DM;

Вниз

простая замена   Найти похожие ветки 

 
ksenia ©   (2006-05-31 14:25) [0]

Всем здрасте!
Господа, посмотрите пожалуйста.....не получается....в чем ошибка?
Хочу зашивровать слово....методом шифра простой замены. Метод основан на замене каждой буквы сообщения на другую букву того же алфавита, путем смещения от исходной буквы на 3 буквы.

const alfpor: array [1..5,1..8] of string=(("A","B","C","D","E","F","G","H"),
                                        ("I","J","K","L","M","N","O","P"),
                                        ("Q","R","S","T","U","V","W","X"),
                                        ("Y","Z","0","1","2","3","4","5"),
                                        ("6","7","8","9","a","b","c","d"));

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var str,str1:String;
   ks,i,j,a,b:integer;
begin
 str:=Edit1.Text;
 ks:=Length(str);
 Edit1.Text:=IntToStr(ks);
 for i:=1 to ks do
    begin
      if str[i]=alfpor[a][b]then
      begin
      str1:=alfpor[a][b];
      alfpor[a][b]:=alfpor[a+3][b+3];
      alfpor[a+3][b+3]:=str1;
      Memo1.Lines.Add(str1);
      end;
    end;
end;


 
Laymer   (2006-05-31 14:40) [1]

Почемубы не изменять просто код буквы

var str: string;

function StrMove(st: string): string;
var i: integer;
begin
 result := "";
 for i := 1 to Length(st) do
   result := result + Chr(Ord(st[i]) + 3);
end;
...

str := StrMove(str);


 
Laymer   (2006-05-31 14:41) [2]

А если еще проивить фантазию то можно четные буквы менять на +32 а не четные на -32 или еще как - нить


 
Laymer   (2006-05-31 14:46) [3]


> ksenia ©

А твоя прога работать и не будет, если это весь кусочек кода. Чтоб найти букву в двумерном масиве тебе еще придется вводить два массива!!!


 
ksenia ©   (2006-05-31 14:52) [4]


> А твоя прога работать и не будет, если это весь кусочек
> кода. Чтоб найти букву в двумерном масиве тебе еще придется
> вводить два массива!!!


Объясни, пож-та,  подробней....как это сделать?

что значат Chr, Ord?


 
Laymer   (2006-05-31 14:59) [5]

Chr и Ord две функции
Chr преводит из числа в символ.
Ord наоборот, ты получаеш код символа.


 
ksenia ©   (2006-05-31 15:07) [6]

Спасибо тебе большое за пример, он работает...и за объяснение...

А расскажи еще ....зачем мы присваиваем  пробел, result := "";
для чего он нужен?


 
Kolan ©   (2006-05-31 15:19) [7]


>
> А расскажи еще ....зачем мы присваиваем  пробел, result
> := "";
> для чего он нужен?
>

Это не пробел, а пустая строка. Можно сказать, что ты очищаешь строку.
Дело в том, что ты всё время добавляешь к Result что-то:
result := result + Chr(Ord(st[i]) + 3);

Представь что там был мусор, например: "аывавы23к2ктаЕ;№%:Ка34"
Если ты не сделаешь
result := "";,
то будешь прибавлять символы к мусору получится неверно.
А так перед началом выполнения -  result := result + Chr(Ord(st[i]) + 3); ты всё очишаешь..

Аналогия - расчет суммы. Перед циклом её(сумму) всегда обнуляют...


 
ksenia ©   (2006-05-31 15:24) [8]

...Понятно....


 
ksenia ©   (2006-05-31 15:28) [9]

а как мне ограничить кол-во символов..., т.е., например, я не хочу чтобы у меня буквы ABC заменялись на №%:?



Страницы: 1 вся ветка

Текущий архив: 2006.06.18;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.01 c
2-1149146091
new_user
2006-06-01 11:14
2006.06.18
Пункт меню


15-1148668271
SergP
2006-05-26 22:31
2006.06.18
mp3 --> wav Чем сконвертировать?


15-1148546247
_Hawk_
2006-05-25 12:37
2006.06.18
Как преобразовать текст?


2-1148990528
Steep
2006-05-30 16:02
2006.06.18
popup окна


2-1149226040
Niko
2006-06-02 09:27
2006.06.18
Репозиторий в приложении





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский