Юный программист Володя решил написать программу, которая занимается шифрованием слов. Шифрование происходит следующим образом: каждая буква слова заменяется на какую-то другую букву алфавита, которая расположена ровно на N символов правее исходной, при этом алфавит "зациклен": за буквой 'Я' идёт буква 'А'. Слово состоит только из букв русского алфавита, нумерация букв в слове начинается с 0. Володя сидел над программой весь вечер, запустил её - и она оказалась рабочей! Однако на следующее утро Володя понял, что не учёл один момент, из-за чего при некоторых значениях N программа не сможет верно зашифровать некоторые слова.

1. Приведите пример такого слова и такого значения N, при котором программа не сможет зашифровать слово.

2. Исправьте Володину ошибку.

Обозначения:

функция length(word) возвращает длину слова word;
функция mod(N, 33) возвращает остаток от деления N на 33;
функция search(alph, word[i]) возвращает номер символа word[i] в строке alph (функция возвращает -1, если символ не найден, нумерация символов в строке начинается с 0).
алг secret_word(цел N, лит word)

нач

лит res := ""
лит alph := ""
лит ALPH := ""
сим c = 'a'

нц для i от 0 до length(word) - 1

если search(ALPH, word[i]) > -1 то

c = ALPH[ search(ALPH, word[i]) + mod(N, 33) ]

всё

если search(alph, word[i]) > -1 то

c = ALPH[ search(alph, word[i]) + mod(N, 33) ]

всё

res := res + c

кц

вывод res

кон

alexcozearschi alexcozearschi    1   16.07.2021 12:36    106

Ответы
Adiya1234567 Adiya1234567  03.06.2022 23:57
.
Володя не правильно вернул функцию alph-соответствие между элементами двух множеств — правило, по которому каждому элементу первого соответствует один и только один элемент второго множества. Математическое понятие функции выражает интуитивное представление о том, как одна величина полностью определяет значение другой величины.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика