Шифр Цезаря. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется следующей после нее буквой в алфавите, который считается написанным по кругу.
Используя шифр Цезаря, зашифровать следующие фразы:
а) Делу время — потехе час
б) С Новым годом
в) Первое сентября

Ответ учителя по предмету Информатика

Введите смещение: 1

Делу время — потехе час | Еёмф гсёна — рпуёцё шбт

С Новым годом | Т Опгьн дпепн

Первое сентября | Рёсгпё тёоуавса

Исходный код на Python3:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

TL2I = dict(zip(«АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ»,range(34)))

I2TL = dict(zip(range(34),»АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ»))

SL2I = dict(zip(«абвгдеёжзийклмнопрстуфхцчшщъыьэюя»,range(34)))

I2SL = dict(zip(range(34),»абвгдеёжзийклмнопрстуфхцчшщъыьэюя»))

phrases = (‘Делу время — потехе час’, ‘С Новым годом’, ‘Первое сентября’)

key = int(input(«Введите смещение: «))

for phrase in phrases:

    ciphered = »

    for c in phrase:

        if not c.isalpha():

            ciphered += c

        if c.islower():

            ciphered += I2SL[ (SL2I[c] + key) % 33 ]

        if c.isupper():

            ciphered += I2TL[ (TL2I[c] + key) % 33 ]

    print(«{} | {}».format(phrase, ciphered))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей