На c++ пожалуйста Как реализовать шифр Цезаря, в котором каждый символ латинского алфавита заменяется на другой символ, k-тый по счёту в алфавите после данного, при этом учитывая, что если символ выходит за границы, то берётся соответствующий из начала строки? Например, для k=3 символ A заменяется на D, B — на E и так далее. Все остальные символы остаются неизменными. Напишите программу, которая зашифрует строку с использованием шифра Цезаря для k=3.
Информатика 9 класс Алгоритмы шифрования шифр Цезаря C++ алгоритм шифрования латинский алфавит программа на C++ Новый
Шифр Цезаря — это простой способ шифрования текста, который заменяет каждый символ на другой, находящийся на фиксированном расстоянии в алфавите. В нашем случае мы будем использовать k=3, что означает, что каждый символ латинского алфавита будет заменён на символ, находящийся на три позиции дальше. Если символ выходит за пределы алфавита, мы начинаем с начала.
Давайте напишем программу на C++, которая реализует этот шифр. Мы будем использовать следующие шаги:
Вот пример кода на C++:
#include#include using namespace std; int main() { string input; int k = 3; // Количество позиций для сдвига cout << "Введите строку для шифрования: "; getline(cin, input); // Ввод строки с пробелами string encrypted = ""; // Строка для хранения зашифрованного текста for (char ch : input) { // Проверка, является ли символ заглавной буквой if (ch >= 'A' && ch <= 'Z') { ch = (ch - 'A' + k) % 26 + 'A'; // Шифруем заглавную букву } // Проверка, является ли символ строчной буквой else if (ch >= 'a' && ch <= 'z') { ch = (ch - 'a' + k) % 26 + 'a'; // Шифруем строчную букву } // Добавляем (шифрованный или неизменённый) символ в результат encrypted += ch; } cout << "Зашифрованная строка: " << encrypted << endl; // Вывод результата return 0; }
Объяснение кода:
iostream
для ввода-вывода и string
для работы со строками.for
.encrypted
.Таким образом, программа успешно реализует шифр Цезаря с заданным сдвигом k=3. Вы можете протестировать её, введя различные строки.