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

Один из самых простых и ненадежных алгоритмов кодирования на сегодняшний день, но для учебных целей подходит как нельзя лучше…

  1. Формулировка учебного задания по Шифру Цезаря
  2. Классы, упрощающие решение задачи
  3. Перебор символов строки в цикле
  4. Не забывайте выделить ячейку в актуальной строке (или строку полностью)
  5. Исходный код на 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

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

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

скачать xlsm-файл для тестирования



Другие примеры на тему «Шифрование, Кодирование и/или Сжатие Информации»

Другие примеры на языке «Visual Basic for application - VBA»





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


Поделиться в соц сетях:



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

         Не расстраивайтесь, не все потеряно... Смело щелкайте...
исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


Не попадайтесь на удочку мошенников-кидал...
Сайт помощи студентам по программированию и информатике

Program code