Как сделать шифр цезаря в excel

Содержание

Шифр Цезаря Код VBA Excel Word

С использованием ООП !

Формулировка учебного задания по Шифру Цезаря

Задание : На листе1 расположить командные кнопки "Зашифровать" и "Расшифровать". Значение ключа читать из колонки "А". Открытый текст для кодирования читать из колонки "В", а результат кодирования помещать в колонку "С". Закрытый текст для декодирования читать из колонки "С", а результат декодирования помещать в колонку "D".

Шифр Цезаря Код VBA Excel

Рис.1 Закодировать Декодировать Шифром Цезаря VBA Excel

Скоро появится видео

Классы, упрощающие решение задачи

Использование Классов (ООП) значительно сокращает исходный код программ.

Класс myCaesar, своим единственным методом Codec(myText, key) as String (всего 9 строк), позволяет закодировать открытую строку или раскодировать закрытую строку.

Класс myTape, своим единственным методом myShift(oldSymbol, key) as String (всего 16 строк), позволяет сдвинуть любой символ вперед или назад на заданное количество шагов, и возвращает новый символ.

Перебор символов строки в цикле

Поскольку любая строка является индексированным множеством символов, то ее обработку проводим с использование цикла…

//——————————
For i = 1 To Len(myText)
mySymbol = Mid(myText, i, 1) ‘очередной символ из текста
mySymbol = cezar.myShift(mySymbol, key) ‘получение нового символа
myResult = myResult & mySymbol
Next i
//——————————

Не забывайте выделить ячейку в актуальной строке (или строку полностью)

Конечно, можно было заставить макрос проверять все ячейки в нужной колонке (В или С), и при наличии текста выполнять работу по кодировке-декодировке…
Но я считаю, что внимание человека все-равно концентрируется на одном процессе, поэтому макрос работает только с одной строкой… , именно той, в которой выделена хоть одна ячейка (объект Selection).

//——————————
myRow = Selection.Row ‘выделенная строка для работы

myKey = Range("A" & myRow) ‘читаю ключ (если не число, возникает ошибка)
myText = Range("B" & myRow)
//——————————

Исходный код на VBA Excel или Word

Тестирование — это наиболее важный этап в жизненном цикле программного продукта. Поэтому не верьте картинкам, фильмам и сказкам…

Только личное тестирование во всех наиболее сложных сочетаниях данных — должно убедить Вас в доброкачественности алгоритма и исходного кода!

Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку .

Если на этой странице не нашлось того, что Вы так искали.

Не попадайтесь на удочку мошенников-кидал.

460040, г.Оренбург ©2010 Учебные программы и сайты для студентов

Шифрование Цезаря в MS Excel

Шифр Цезаря как частный случай шифра для простой замены для текстов (одноалфавитной подстановки). Основные принципы шифрования текста. Примеры шифрования фамилии, имени, отчества и группы студента с использованием табличного редактора Microsoft Excel.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 09.10.2013
Размер файла 1,2 M
  • посмотреть текст работы
  • скачать работу можно здесь
  • полная информация о работе
  • весь список подобных работ

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Методы защиты информации

Шифр Цезаря является частным случаем шифра простой замены (одноалфавитной подстановки). Свое название этот шифр получил по имени римского императора Гая Юлия Цезаря, который использовал этот шифр при переписке.

При шифровании исходного текста каждая буква заменяется на другую букву того же алфавита по следующему правилу. Заменяющая буква определяется путем смещения по алфавиту от исходной буквы на k букв. При достижении конца алфавита выполняется циклический переход к его началу.

Задание:

Пример: Иванов Сергей Петрович, ст. гр.08НН

Для проверки выполнить работу в обратном порядке.

Ход выполнения:

1. Открыть программу Excel. Перейти на второй лист этого документа АЛФАВИТ. Начиная с ячейки A1 до A39 набрать алфавит, как указано на рисунке, затем выделить весь диапазон алфавита и назначить имя "AБC".

2. Затем перейти на первый лист документа ШИФРОВАНИЕ и в ячейке B1 набрать текст, который необходимо зашифровать,

пример:

3. В ячейке B3 записать формулу "=ПРОПИСН (B1)", функция ПРОПИСИ переводит символы в строке в прописные буквы.

4. В ячейке D3 записать формулу "=ДЛСТР (B3)", функция ДЛСТР рассчитывает длину строки, что необходимо пользователю, для кодировки исходной строки.

5. В ячейке D4 укажем значение k, например 12

6. В столбце А, начиная со строки 6 пронумеровать строки (количество строк которых необходимо пронумеровать указано в ячейке D3 — 35).

7. Далее, начиная с ячейки B6, записать формулу "=ПСТР (B$3; A6;

1) " что разделяет текст необходимый для кодировки на отдельные символы

8. В ячейку C6 необходимо записать формулу:

"=ПОИСКПОЗ (B6; AБC; 0)"

Функция ПОИСКПОЗ производит поиск индекса (позиции) символа из столбца B в массиве AБC, который был определен на листе АЛФАВИТ.

9. В следующем шаге, получив позицию символа в алфавите ABC, указанном на листе АЛФАВИТ, необходимо произвести сдвиг алфавита для кодированной последовательности символов, для этого в ячейку D6 записываем формулу "=ЕСЛИ (ПОИСКПОЗ (B6; AБC; 0) +$D$4>39; ПОИСКПОЗ (B6; AБC; 0) +$D$4-39; ПОИСКПОЗ (B6; AБC; 0) +$D$4)", которая позволяет производить циклический сдвиг алфавита, на переменную k, находящуюся по адресу D4.

шифр цезарь текст шифрование

10. После получения кода закодированного символа необходимо найти его в алфавите, для этого в ячейку E6 записывается формула "=ИНДЕКС (ABC; D6)", формула индекс возвращает символ из массива ABC по указному индексу.

11. Затем строка 6 копируется столько раз, сколько указано в ячейке D3 минус единица, после чего кодируются все символы строки, указанной в ячейке B1.

12. Для получения строки закодированного текста необходимо в ячейке G6 набрать формулу "=E6", затем в ячейке на строку ниже "=G6&E7", еще на строку ниже "=G7&E8" и т.д. в последней строке получится закодированная строка (её выделить).

1. На листе ПРОВЕРКА в ячейку В1 ввести то, что получилось в ячейке G40:

Размещено на http://www.allbest.ru/

2. В ячейку В3 ввести формулу: ПРОПИСН (В1)

3. Заполнить столбец А: от 1 до 35 (количество символов в Ф. И.О. и группе студента).

4. В ячейку В6 ввести формулу: ПСТР (В$3; A6;

1). Затем скопировать ее до ячейки В40.

5/ В ячейку С6 ввести формулу: ПОИСКПОЗ (В6; АБС; 0). Скопировать далее.

6. В ячейку D6 ввести формулу:

=ЕСЛИ (ПОИСКПОЗ (B6; АБС; 0) — $D$4

Ссылка на основную публикацию