Анастасия Гусева
S:11:07:59 08.03
R:11:08:03 08.03
объясняю строку 15 (22 такая же, но для заглавных букв)
в таблице ASCII, по которой кодируются символы, у каждой буквы свой код. я привела во вложениях фрагмент для строчных букв латинского алфавита
допустим, нам надо закодировать букву z со сдвигом 3. видим, что z имеет код 122, соответственно, после кодирования мы получим 125, что соответствует символу }
а нам бы надо, чтобы случилось
z + 1 = a
z + 2 = a + 1 = b
z + 3 = a + 2 = b + 1 = c
то есть
1) вычитаем из 125 (полученное число) 122 (код z). Получаем 3
3 - не соответствует началу алфавита, мы снова в области таблицы, которая отвечает за другие символы
2) добавим код буквы а (97), чтобы оказаться в части таблицы, которая отвечает за алфавит
получим 100 - это код буквы d, а нам надо на с
3) поэтому -1
аналогично если бы нам надо было закодировать букву x (код 120) с ключом 3, то мы должны получить а (код 97)
а = 120 (код x) + 3 (ключ) - 122 (код z) + 97 (код a) - 1 = 123 -122 + 97 - 1 = 97