shl расшифровка



Автор Инесса Моисеенко задал вопрос в разделе Другие языки и технологии

Здравствуйте!Нужно написать программу в Pascale и получил лучший ответ

Ответ от Миоко Таканава[гуру]
program N73313493; uses crt; const inFileName = \'text.txt\'; outFileName = \'result.txt\'; procedure Encode; var inFile, outFile: Text; c: byte; t, s: string; i, j: word; begin assign(inFile, inFileName); assign(outFile, outFileName); {$I-} reset(inFile); if IOResult = 0 then begin rewrite(outFile); if IOResult = 0 then begin writeln(\'Введите текст для шифрования: \'); readln(t); for i := 1 to length(t) do begin c := ord(t[ i ]); for j := 1 to 8 do begin if not EOF(inFile) then begin readln(inFile, s); while (length(s) > 0) and (s[length(s)] = #32) do delete(s, length(s), 1) end else s := \'\'; if c and $80 > 0 then s := s + #32; writeln(outFile, s); c := c and $7F shl 1 end end; while not EOF(inFile) do begin readln(inFile, s); while (length(s) > 0) and (s[length(s)] = #32) do delete(s, length(s), 1); writeln(outFile, s) end; close(outFile); writeln(\'Текст зашифрован\'#13#10) end else writeln(\'Не удалось создать файл \', outFileName); close(inFile) end else writeln(\'Не удалось открыть файл \', inFileName) {$I+} end; procedure Decode; var inFile: Text; c: byte; t, s: string; i: word; begin assign(inFile, outFileName); {$I-} reset(inFile); if IOResult = 0 then begin t := \'\'; c := 255; while (c <> 0) and not EOF(inFile) do begin for i := 1 to 8 do begin c := c and $7F shl 1; if not EOF(inFile) then begin readln(inFile, s); if s[length(s)] = #32 then c := c or 1 end end; t := t + chr(c) end; close(inFile); writeln(\'Расшифрованный текст: \'); writeln(t, #13#10) end else writeln(\'Не удалось открыть файл \', outFileName) {$I+} end; var op: char; begin repeat writeln(\'Выберите операцию: \'); writeln(\'1. Шифрование\'); writeln(\'2. Расшифровка\'); write(\'3. Выход\'#13#10\'> \'); op := readkey; writeln(op); case op of \'1\': Encode; \'2\': Decode; end until op = \'3\'; end. Файл с \"Евгением Онегиным\" text.txt должен лежать рядом с экзешником программы. Файл со скрытым текстом result.txt создаётся в этой же папке. P.S. Оптимальнее использовать свой алфавит, например 6-тиразрядный. И буквы одного языка, и цифры, и знаки препинания в него уместятся. Ещё лучше использовать кодировку методом Хаффмана по фиксированной частотности встречи букв в языке шифровки (чтобы не включать в результирующий файл словарь) : строк в маскирующем тексте требуется ещё меньше. P.P.S. O_o программа получилась стоимостью аж на 150 рублей. Жду перевода :))

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Здравствуйте!Нужно написать программу в Pascale
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*