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

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

Вот код, но он не работает:

def CaesarCipherChar(c, shift):
abc = ""
if (c not in abc): return c
pos, lenght = abc.index(c) + shift, len(abc)
if (pos >= lenght): pos %= lenght
if (pos < 0): pos = lenght + pos
return abc[pos]

def CaesarCipher(s, shift):
a = ""
for c in s:
a += CaesarCipherChar(c, shift)
return a
def CaesarCipherChar(c, shift):
abc = ""
if (c not in abc): return c
pos, lenght = abc.index(c) + shift, len(abc)
if (pos >= lenght): pos %= lenght
if (pos < 0): pos = lenght + pos
return abc[pos]

def CaesarCipher(s, shift):
a = ""
for c in s:
a += CaesarCipherChar(c, shift)
return a
S = input()
print(CaesarCipher(S, 3))

Программа выдаёт неверный ответ

Показать ответ
Ответ:
annagrits66
annagrits66
31.07.2022 03:14
1)
var
    s: string[6];
    n: integer;

begin
    s := 'отлично';
    n := length(s);
    writeln(length('отлично'));
    writeln(n);
end.

Изначально выставлен тип string[6], значит если присвоить строку больше, то ее обрежет по 6 символов, вот и весь прикол
ответ 6

2) рисунок

3)var
    s, s1: string;
    n: integer;

begin
    s := 'информатика';
    s1 := copy(s, 3, 5);
    n := pos(s, s1);
    writeln('s=', s);
    writeln('s1=', s1);
    writeln('n=', n);
end.

Вывод
s=информатика
s1=форма
n=0

Все верно, в s1 не содержится s, а наоборот

Садекватным объяснением! 1) дан фрагмент программы: var s: string[6]; n: integer; begin s: ='отлично
0,0(0 оценок)
Ответ:
Zaichikfoto
Zaichikfoto
26.10.2020 16:52
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    using namespace std;
    cout << "Enter size of array: ";
    int N;
    cin >> N;
    int * ARR = new int[N];
    srand(time(0));
    int i;
    for (i = 0; i < N; ++i)
        ARR[i] = rand() % 100 + 1;

    cout << "Here is an original array:\n";
    for (i = 0; i < N; ++i)
        cout << ARR[i] << "  ";
    cout << endl;

    int temp = ARR[N - 1];
    for (i = N - 1; i > 0; --i)
        ARR[i] = ARR[i - 1];
    ARR[0] = temp;

    cout << "\nHere is a new array:\n";
    for (i = 0; i < N; ++i)
        cout << ARR[i] << "  ";
    cout << endl;

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