В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
1326237416414
1326237416414
23.02.2021 17:11 •  Информатика

Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, k-тый по счёту в алфавите после данного. Если этот символ выходит за границы, то берётся соответствующий из начала строки. Например, для k=3 символ A заменяется на D, символ B — на E, символ C — на F, ..., символ Z – на C. Аналогично, строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.

Дана строка, зашифруйте её при шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k = 3.

Указание

Cделайте функцию CaesarCipherChar (c, k), шифрующую один символ.

Примеры
Ввод
Вывод
In a hole in the ground there lived a hobbit.
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.
Язык Python!

Показать ответ
Ответ:
burcevyuriy
burcevyuriy
04.06.2020 07:02

#include <iostream>

#include <string>

using  namespace std;

int main()

{

string w;

int b;

string arr;

 

getline(cin,w);

cin>>b;

cin.ignore();

getline(cin,arr);

 

if(w == "szyfruj")

{

 for(int i=0; i<arr.size(); i++)

 {

  if(int(arr[i])>=97 &&  int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)

  {

   if(int(arr[i])>=97 &&  int(arr[i])<=122)

   {

    if(int(arr[i])+b>122) arr[i]-=26;

    arr[i]+=b;

   }

   else

   {

    if(int (arr[i])+b>90) arr[i]-=26;

    arr[i]+=b;

   }

  }

 }

}

if(w == "odszyfruj")

{

 for(int i=0; i<arr.size(); i++)

 {

  if(int(arr[i])>=97 &&  int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)

  {

   if(int(arr[i])>=97 &&  int(arr[i])<=122)

   {

    if(int(arr[i])-b<97) arr[i]+=26;

    arr[i]-=b;

   }

   else

   {

    if(int (arr[i])-b<65) arr[i]+=26;

    arr[i]-=b;

   }

  }

 }

}

cout<<arr;

return 0;

}

Объяснение:

код  на с++ для примера

пункт  со  сдвигом  букв сам  сделаешь  

P. S.  у меня на  5 они  сдвигаются,

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота