ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON
Шифр Цезаря
В шифре Цезаря каждый символ, являющийся буквой латинского алфавита, заменяется на другой символ, 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, k):
# тут нужно что-то вставить
def CaesarCipher(s,k):
# тут нужно что-то вставить
S = input()
print(CaesarCipher(S, 3))
int main(void)
{
/* Переменная для хранения числа */
double chislo;
/* Сообщение с запросом для пользователя */
printf("Введите ваше число: ");
/* Считывание числа в определенном формате в определенное место */
scanf("%f", &chislo);
/* Проверяем, является ли число большем нуля (положительным)*/
if (chislo > 0) {
/* Если да, то прибавляем единицу (операция инкремент) */
chislo++;
}
else {
/* Если число отрицательное, то вычитаем из числа двойку */
chislo -= 2;
}
/* Выводим результата */
printf("Результата: %f", chislo);
return NULL;
}
ru : array[1..33] of Char = ('а','б','в','г','д','е','ё','ж','з','и',
'й','к','л','м','н','о','п','р','с','т',
'у','ф','х','ц','ч','ш','щ','ъ','ы','ь',
'э','ю','я');
en : array[0..33] of String = (' ','a','b','v','g','d','e','ye','zh','z','i',
'y','c','l','m','n','o','p','r','s','t',
'u','f','h','c','ch','sh','sch','`','ы','',
'ea','yu','ja');
{ транскрипцию записал не заглядывая ни в какие справочники - можете кидаться тапками }
Function GetIndex(ss : Char) : Byte;
Var ii : Byte;
Begin
ii:=1;
While (ii<=33) and (LowerCase(ss)<>ru[ii]) do Inc(ii);
If ii in [1..33] then GetIndex:=ii else GetIndex:=0;
end;
Function Trans(S : String) : String;
Begin
If Length(S)>0 then Trans:=en[GetIndex(S[1])]+Trans(Copy(S,2,Length(S)-1))
else Trans:='';
end;
Begin
Writeln(Trans('паскаль'));
Writeln(Trans('ява'));
end.