![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Здравтствуйте!
Очень прошу помогите пожалуйста если можно скорее до завтра, очень и очень нужно. Суть такая: в одно поле Memo записывается текст далее нажимаем на кнопку и этот текст шифроуется по следующему принципу и выводится в другое поле Memo: Сообщение вписывается в квадратную матрицу и выписывается "змейкой" в указанном порядке: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Результат: 5 A 4 3 9 F K E 8 2 1 7 D J P O I C 6 B H N G M L Трудность в алгоритме шифрования. Не могу сделать этот алгоритм. Очень очень прошу помогите. За ранее всем большущее СПАСИБО. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Далеко не любой текст имеет длинну корень из которой будет целым числом, придется добавлять пробелы, или еще какие нибудь спец символы.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Я понимаю это. Просто вместо пробелов можно поставить звездочку (*). Но как это сделать я не могу сообразить.
|
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Сегодня только вечером смогу выложить, ели отлажу.
|
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Большущее спасибо! Буду ждать.
|
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 14 Всего: 116 |
Rusman, матрицу сам заполнишь? Я задал ее константой. Вот дальнейшие действия:
|
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Спасибо! Пытаюсь разобраться, но что-то не получается. Я беру читаю матрицу из 1-ого поля Мемо, но ведь корень из кол-во букв некоторого текста не получиться целым числом, нужно добавить пробелы и в пробелы вставить какие нибудь симовлы.
Добавлено @ 11:28 Пока буду пробовать что-то делать с вариантом Yanis. volvo877, буду ждать твоего варианта. Всем вам огромное спасибо за помощь! Добавлено @ 11:29 Извините, перепутал имена. Жду вариант Yanis-а |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 14 Всего: 116 |
Rusman,
а ведь alexeis1, тебе об этом и говорил... Построчно заполняй матрицу, и все НЕзаполненные тобой элементы заполняй пробелами (или какими-то другими символами), а еще лучше - сначала FillChar-ом заполни всю матрицу каким-то сиволом, а потом заноси в нее буквы - все, на что не хватит букв исходной строки, останется равным заданному тобой символу. Потом шифруй... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Для заполнения матрицы текстом из мемо мне код удалось написать
Добавлено @ 11:41 А вот дальше что-то никак... Это сообщение отредактировал(а) alexeis1 - 5.5.2006, 11:41 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
p.s. матрица получается по индексам volvo877. т.е. для его кода.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Ура! Сделал. Большое спасибо всем! Щас буду пытаться делать расшифровку.
Еще хочу вас попросить объяснить некоторые моменты в этой программе. Сейчас я её разберу и напишу что не могу понять. Если вы можете, то пожалуйста объясните. Спасибо за внимание! |
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
1. Что такое Trunc.
2. Что такое Inc. 3.Что такое Until. 4. За что обозначили Count. 5. Что такое Dec. |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 14 Всего: 116 |
Rusman,
F1 заклинило? Dec(X) равносильно x := x - 1 Inc(X) равносильно x := x + 1 Trunc(x) - целая часть числа Х Repeat ... Until условие это один из циклов (с постусловием) Ну, а Count (как я понимаю, в моей процедуре) - это количество обработанных символов матрицы. Цикл должен продолжаться до тех пор, пока не будут обработаны Sqr(n), то есть n*n символов (другими словами - вся матрица) |
|||
|
||||
Sunr1se |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
1. Trunc отбрасывет от числа дробную часть
2. Inc увеличивает значение переменной на единицу 3. Until...repeat - это цикл с постусловием. Те команды, которые находятся между командами until и repeat, будут повторятся, пока верно условие (оно находится после команды until, в нашем случае это count >= sqr(n)) 4. Не совсем понял вопрос. 5. Dec уменьшает значение переменной на единицу --------------------
IRC-канал Винграда |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Trunc - отсечение дробной части.результат integer;
Inc(i) - тоже что i := i + 1; для Integer; если inc(i, 3); - i := i + 3 repeat Until - опрераторные скобки цикла. ВЫПОЛНЯЕМ .................. ПОКА (....) НЕ БУДЕТ ИСТИНЫМ(TRUE) Count - текущая позиция(индекс символа) в шифрованной строке Dec - обратное inc i := i - 1; если dec(i, 3); - i := i - 3; ----------------------- ничего себе сколько человек отозвалось ![]() ![]() ![]() ![]() ![]() Это сообщение отредактировал(а) alexeis1 - 5.5.2006, 14:26 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |