Вопрос задан 28.10.2023 в 04:03. Предмет Информатика. Спрашивает Польская Лара.

C++ Шифр Цезаря В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется

другим символом, k -м по счёту в алфавите после данного. Если этот символ выходит за границы списка, то берётся соответствующий символ из начала строки. Например, для k=3 символ A заменяется на D , символ B — на E , символ C — на F ... символ Z — на C . Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются. Дана строка, зашифруйте её при помощи шифра Цезаря для k=3 . Входные данные Дана строка из символов с ASCII кодами от 32 до 127 , длиной не больше 10000 символов. Выходные данные Выведите ответ задачи. Примеры Ввод Вывод In a hole in the ground there lived a hobbit. Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Харюков Антон.

Код на фоте

Чобы не кто не украл мой код я чуть размыл и поставил текст Что типо я ответил



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения данной задачи на C++ необходимо выполнить следующие шаги:

1. Задать значение переменной k равное 3, так как в данной задаче шифр Цезаря должен сдвигать каждый символ на 3 позиции вперед по алфавиту.
2. Считать строку из входных данных с помощью функции `getline(cin, input)`. Здесь `input` - это переменная типа `string`, в которую будет сохранена строка.
3. Пройтись по каждому символу в строке и выполнить условие для шифрования букв латинского алфавита.
4. Если символ - это буква латинского алфавита, то нужно проверить его регистр (большая или маленькая буква). Для этого можно использовать функцию `isalpha(char)` и `isupper(char)`. Если символ является большой буквой, то нужно сдвинуть его на k позиций вперед, используя операцию `+`. Если символ является маленькой буквой, то нужно сдвинуть его на k позиций вперед, используя операцию `+` и функцию `tolower(char)`, чтобы перевести его в маленькую букву.
5. Если символ не является буквой латинского алфавита, то оставить его без изменений.
6. Вывести зашифрованную строку после завершения цикла.

Ниже приведен полный пример решения на C++:

```cpp
#include
#include
using namespace std;

int main() {
int k = 3; // значение k для шифра Цезаря
string input;
getline(cin, input); // считываем строку

for (int i = 0; i < input.length(); i++) { // проходимся по каждому символу в строке
if (isalpha(input[i])) { // проверяем, является ли символ буквой
if (isupper(input[i])) { // проверяем, является ли символ большой буквой
input[i] = ((input[i] - 'A') + k) % 26 + 'A'; // сдвигаем символ на k позиций вперед
} else {
input[i] = ((input[i] - 'a') + k) % 26 + 'a'; // сдвигаем символ на k позиций вперед
}
}
}

cout << input << endl; // выводим зашифрованную строку

return 0;
}
```

При запуске программы и вводе строки "In a hole in the ground there lived a hobbit." получим зашифрованную строку "Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.".
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос