Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 00:01   #11
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
alexander13, если Вам поможет.
Шикарно. Спасибо, так гораздо лучше.

Upd. После некоторого шаманства программа заработала. Кодирование/декодирование у меня работает (по крайней мере, для ручного ввода). В связи с этим, прошу предоставить набор входных данных, при которых программа дает сбой.
Μολὼν λαβέ

Последний раз редактировалось alexander13; 13.02.2013 в 00:21.
alexander13 вне форума Ответить с цитированием
Старый 13.02.2013, 00:46   #12
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Итак, ответ.
Программа действительно выдавала неправильные шифры. Тест проводился на фразе "Madnessistheemergencyexit" с ключевым словом "Joker". Спец. символы появлялись на пересечениях J с буквами s и r. Код шифрованного символа вычисляется [примерно] в этой строке:
Код:
m := (((shifr(text1[i])) + (shifr(keyword1[q]))) mod 31);
Соответственно, меняем 31 на 26, запускаем программу и она работает.
По крайней мере, с моими тестовыми строками. Это НЕ значит, что по остальному тексту ошибок нет. Я не просматривал весь текст. Наверняка такой же косяк и в обработке файлов. Но мысль понятно, надеюсь.
Ах, да. Это так, потому что фраза вводится латинскими буквами, а мощность латинского алфавита 26, а не 31... вооот..

Upd. Т. к. код полностью не смотрел, то на других наборах данных вполне могут быть косяки. Если найдете - говорите.

Upd. 2 Да, как показал беглый просмотр, еще минимум в трех местах надо сделать аналогичную замену. В том числе, для дешифровки.
Μολὼν λαβέ

Последний раз редактировалось alexander13; 13.02.2013 в 00:54.
alexander13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправте программу!! vadimc Помощь студентам 1 27.11.2012 12:19
Исправте код C# NickJons Общие вопросы .NET 0 02.11.2012 17:54
исправте 92Edik Паскаль, Turbo Pascal, PascalABC.NET 1 25.05.2011 08:47
Исправте ошибку dimon305 Помощь студентам 0 18.05.2010 21:23
Исправте программу.Ссылочные типы данных. Динамическая память ромка) Паскаль, Turbo Pascal, PascalABC.NET 2 30.05.2008 04:24