profile
Размещено 4 года назад по предмету Информатика от lfif8549

Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, 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!

  1. Ответ на вопрос
    Ответ на вопрос дан lusujzbrazzers

    Ответ:

    #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 они  сдвигаются,

    1. Ответ на вопрос
      Ответ на вопрос дан lfif8549
      Можно либо решение на самом Питоне, либо решение на другом языке? Я не знаю С++. Хотя бы на Паскаль
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.