profile
Размещено 5 лет назад по предмету Информатика от galinacyzz

С++
Закодируйте фразу 'Съешь же ещё этих мягких французских булок, да выпей чаю' с помощью шифра Цезаря. Со сдвигом на 7.

  1. Ответ на вопрос
    Ответ на вопрос дан petyaGavrikov
    Dec C++

    #include <iostream>
    #include <cstring>
    using namespace std;
     
    int main()
    {
        setlocale (LC_CTYPE, "Russian"); 
     
        char alpha[] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
        char buff[]="Съешь же ещё этих мягких французских булок, да выпей чаю.";
        int n = 66, k=7;
             k %= n;

        for (int i = 0; i < sizeof(buff)-1; ++i)
            if (strchr(alpha,buff[i])) 
    buff[i] = alpha[(strchr(alpha,buff[i])-alpha+k) % n];

        cout<<buff<<endl;
            system("pause");
        return 0;
    }
    1. Ответ на вопрос
      Ответ на вопрос дан galinacyzz
      Можете объяснить вот этот кусок for (int i = 0; i < sizeof(buff)-1; ++i)
      if (strchr(alpha,buff[i]))
      buff[i] = alpha[(strchr(alpha,buff[i])-alpha+k) % n]; ?
    2. Ответ на вопрос
      Ответ на вопрос дан petyaGavrikov
      Функция strchr() выполняет поиск первого вхождения символа в строку, т.е. в строке alpha ищется очередной (i-ый) символ заданной строки buff. Если символ найден, т.е. если проверяемый символ - русская буква, то из строки alpha берётся символ, номер которого на k больше, чем номер текущего символа.
    3. Ответ на вопрос
      Ответ на вопрос дан petyaGavrikov
      Если при сложении получается значение >= 66 (= числу символов в alpha), то номер определяется как остаток от деления полученного значения на 66. Например, для буквы "ю": 64+7 = 71, 71 % 66 = 5. Таким образом, буква "ю" заменяется на 5-ый символ строки alpha, т.е. на "Е".
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
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) их не спросили

Информация

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