Передавая записку ** уроке английского языка, друзья не хотят, чтобы кто-то прочел ее...

0 голосов
28 просмотров

Передавая записку на уроке английского языка, друзья не хотят, чтобы кто-то прочел ее содержимое. Для этого текст шифруют простым методом: заменяют каждую букву на букву, расположенную в алфавите на расстоянии N символов от исходной. Считается, что алфавит циклически замкнут. Напишите программу-шифровальщик.


Информатика (93 баллов) | 28 просмотров
0

Шифр Цезаря. В Интернет полно программ, его реализующих.

Дан 1 ответ
0 голосов
Правильный ответ

Const
  N = 5;
  EN = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  RU = 'абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ';
Var
  S : String;
  i : Byte;
Begin
  Readln(S);
  For i:=1 to Length(S) do
  Begin
    If Pos(S[i],EN)>0 then
      If Pos(S[i],EN)+N<=Length(EN) then<br>        S[i]:=EN[Pos(S[i],EN)+N] else S[i]:=EN[Pos(S[i],EN)+N-Length(EN)];
    If Pos(S[i],RU)>0 then
      If Pos(S[i],RU)+N<=Length(RU) then<br>        S[i]:=RU[Pos(S[i],RU)+N] else S[i]:=RU[Pos(S[i],RU)+N-Length(RU)];
  end;
  Writeln(S);
end.

(5.1k баллов)
0

И посмотрите, во что Ваша программа превратит слово Яблоко

0

"Сначала пусть автор поста уточнит для какой версии и вообще на Паскале ли это нужно делать" - тогда для чего Вы писали ответ?

0

Ок, поправлю для того что есть.

0

Я пока не увидел, чтобы Вы цикличность ввели, которая у Вас отсутствовала.

0

Попробуйте закодировать слово "ЯБЛОКО", а затем - "яблоко". И посмотрите на результат.

0

А "Первый вариант" зачем, если он неверный?

0

Убрал, но тогда и наши комменты надо тоже чистить, чтобы не вводить в заблуждение.

0

Когда задача и решения уйду в архив, все комментарии автоматически удалятся. Вообще все.

0

Именно поэтому мы требуем, чтобы все необходимое было в текстах вопроса и решений.

0

Я Вас понял.