Смесь из литер., алгоритм шифрования (перестановка) |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Смесь из литер., алгоритм шифрования (перестановка) |
кзои |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Приветствую всех. Я вообще новичок в програмировании и вот в ВУЗЕ мне предложили одну задачу, я парюсь и не могу зделать самое главное. В двух словах дана таблица (кодировочная). Приводить её не буду, потому как получится, что я озадачиваю вас писать эту программу. Скажу только, что символы кодируются двумя цифрами
И далее идёт алгоритм смеси. 1)смесь разбивается на группы по N=<число слов в тексте> 2)выделяются 1-е, 2-е и т.д. символы из каждой группы 3)подряд идущие пробелы и знаки препинания объединяются в один символ Выглядит всё это примерно так. Исходный текст ПРИМЕР СОСТАВЛЕНИЯ СМЕСИ. Результат шифрования ПССРОМИСЕМТСЕАИРВ._Л._Е._Н._И._Я._ _. Результат дешифровки (N=3) 1) ПСС|РОМ|ИСЕ|МТС|ЕАИ|РВ.|_Л.|_Е.|_Н.|_И.|_Я.|_ _. 2) ПРИМЕР_ _ _ _ _ СОСТАВЛЕНИЯ_ СМЕСИ……. 3) ПРИМЕР_СОСТАВЛЕНИЯ_СМЕСИ. ================================================= А теперь о самой проблемме, я не могу реализовать сам этот алгоритм (слишком мало опыта), в принципе вся эта таблица уже находится в программе. Подскажите пожалуйста, как такое реализовать при кодировании. Заранее огромное спасибо, извините за лемерство. |
volvo |
Сообщение
#2
|
Гость |
кзои, я не понял, ты закодировать это не можешь, или ДЕкодировать?
Если кодировать, то извини, как ты хочешь чтобы тебе помогли, если нет данных... Если ДЕкодировать, то что именно не выходит? Какой из пунктов, тобой обозначенных? |
кзои |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Мне нужно закодировать и раскодировать файл. А процесс кодирования указан здесь
Прикрепленные файлы exersise.rar ( 5.16 килобайт ) Кол-во скачиваний: 213 |
volvo |
Сообщение
#4
|
Гость |
кзои, вот тебе пример реализации самого шифрования/дешифрования...
const Дальше сам справишься? Что-то я, если честно, не совсем разобрался, что там с таблицей дальше делать? |
кзои |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Знаете, чувствую не решить мне проблемму. Вот в файле примерная программа, но на Delphi (кстати кодирует она неправильно, но похоже). Я хотел бы вместо алгоритма который в программе, поставить тот который вы дали, как раз в приложенном файле и реализована таблица кодирования. Помогите please. Очень нужно. Я скоро с ума сойду.
Прикрепленные файлы crypt.rar ( 10.33 килобайт ) Кол-во скачиваний: 177 |
volvo |
Сообщение
#6
|
Гость |
кзои,
в приведенной тобой программе я не разбирался, легче все написать с нуля, тем более "смесь" уже есть... Ты мне расскажи, сначала символы строки меняются на цифры, или сначала - "смесь", а потом замена по таблице? + к этому, немного не понятен такой момент: где хранится информация о количестве слов в незакодированной строке? Это же обязательно знать для дешифрования строки. Тоже пишется в файл? |
кзои |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Сначала производится смесь, а потом кодирование. Кодирование идёт с использованием оператора CASE я таку понял. С ним же идёт и раскодирование, тоесть сама таблица уак-бы им описывается, а сводится всё к чтению файла и созданию щашифрованного. В общем всё с файлами.
|
volvo |
Сообщение
#8
|
Гость |
Повторить вопрос?
Цитата где хранится информация о количестве слов в незакодированной строке? |
кзои |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Получается, что нигде. Сначала всё смешивается, потом по таблице меняется на код (2 числа), и файл получается зашифрован, а при дешифровке эта таблица берёт первые два символа и заменяет на букву.
Сообщение отредактировано: кзои - |
volvo |
Сообщение
#10
|
Гость |
Проверяй:
const исходный текст - в "before.txt", зашифрованный - в "after.txt", восстановленный - в "restor.txt" ... |
кзои |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Вот, что получилось
Текст файла before.txt: Всё, что вы видите это просто текст и ничего особого. На выходе в файле after.txt: 41131347313422272833344522343216 22331728 15282824 412865 22 3333 161265 34 3434 142865 16 28 281465 2865 64 При расшифровке (текст файла restor.txt): (этот текст сюда не вставится, там досовская кодировка (((((( ) Сообщение отредактировано: кзои - |
volvo |
Сообщение
#12
|
Гость |
кзои, а в какой кодировке before.txt?
А символы в Table в какой кодировке? Все должно быть в досовской. У нас, извините, раздел "Паскаль"... Если тебе нужна была работа под Windows (в кодировке Win или Unicode), надо было постить тему в Delphi или в 32-битные компиляторы... + к этому: если ты НЕ заметил, то обращаю твое внимание, что в таблице, которую ты же и привел, присутствуют ТОЛЬКО символы верхнего регистра. Я заменил их на символы нижнего... С какой такой радости ты в before.txt печатаешь текст, содержащий ОБА регистра? Естественно, уже кодирование будет неверным... Я не говорю о ДЕкодировании. Ты задание бы внимательно перечитал, прежде чем браться за него. |
кзои |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Кодировка была DOS, символы большие. Ну в общем спасибо за помощь.
|
кзои |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Извините за назойливость не могли бы В ы обьяснить значение переменный
curr_len; count; len; Я всё зделал как Вы показали, но не получается ( кодировка DOS а на выходе чушь. Я не знаю что делать. Помогите please |
Текстовая версия | 18.05.2024 6:27 |