Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 8
1

Шифрование текста

24.03.2011, 15:08. Просмотров 2977. Ответов 2
Метки нет (Все метки)


Привет
Извините за название темы, сам не заметил, что написал.
Задача
На вход программе подается текст, состоящий не более чем из 200 символов. Текст был зашифрован следующим образом. Сначала определили количество букв в самом коротком слове, обозначив полученное число n (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами). Затем заменили каждую английскую букву в тексте на следующую за ней n-й по счету в алфавите (алфавит считается циклическим, за буквой Z следует буква А), оставив другие символы неизменными. Строчные буквы при этом остались строчными, а прописные — прописными. Напишите программу, которая будет выводить расшифрованный текст. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Пример входных данных
Jgnnq yqtnf! Vjku oguucig ku xgta ugetgv.
Пример выходных данных
Hello world! This message is very secret.

В программе есть кусочек, где я не понимаю почему не складываются два числа.
S2 - строка с инпут.
min - минимальная длина слова, т.е. на сколько символов назад нужно сдвинуться.

Код
for i:=1 to length(s2) do     {считываю строку}
begin
if (s2[i] in ['a'..'z']) or (s2[i] in ['A'..'Z']) then  {если она принадлежит английским буквам то вычитаю, иначе просто вывожу этот символ}
 begin
  l:=ord(s2[i]);
  if (l>97) and (l<122) then {если английские маленькие} 
   begin
   l:=l-min; 
if l<97 then l:=l+26;   {если выходит за пределы. Поиск символа с обратной стороны. Т.Е было a на два символа назад - y}
   end
   else
   begin
   l:=l-min;
   if l<65 then l:=l+26; {тоже самое с большими}
   end;
   write(output, chr(l));
   writeln(chr(l));
 end
 else
 begin
  write(output, s2[i]);
  end;
Вот. Ошибка с символом под номером 97. Делаю 97-2=95. Все ок. но условие if l<97 then l:=l+26; не выполняется! Подскажите пожалуйста, почему?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2011, 15:08
Ответы с готовыми решениями:

Шифрование текста
Придумать и описать словесно шифрование текста. Составить программу для ввода текста, как данного...

Шифрование текста циклическим сдвигом.
Приветствую всех обитателей форума. Я, фактически как начинающий в области программирования,...

Шифрование текста методом циклического сдвига букв алфавита
помогите пожалуйста решить задачи))) Задача№1 Составить программу, которая вводит текст...

Шифрование/дешифрование текста циклическим шифром со сдвигом на 5 позиций
Доброго времени суток! Обращаюсь к вам с такой вот задачей,надеюсь на вашу помощь.Заранее Спасибо!...

2
Модератор
62957 / 46966 / 32366
Регистрация: 18.05.2008
Сообщений: 113,816
24.03.2011, 15:54 2
Лучший ответ Сообщение было отмечено kirl0g165 как решение

Решение

Pascal
1
if (l>=97) and (l<=122) then
А то буква а вообще не участвует...
0
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 8
24.03.2011, 16:21  [ТС] 3
Спасибо огромное)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2011, 16:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Шифрование/дешифрование текста циклическим шифром со сдвигом на 10 позиций
Напишите программы шифрования и дешифрования текста циклическим шифром со сдвигом на 10 позиций....

Шифрование текста
Мне нужно написать программу, которая переводит обычный текст в набор чисел. Например, &quot;слон&quot;...

Шифрование и дешифрование текста
Для английского и русского алфавита. На вход поступает текст, его следует зашифровать. Каждой букве...

Шифрование текста путем замены букв
Всем привет, в общем, у меня такая проблема: Задача: Описать процедуру EN_CodeText(SS, KK),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.