Шифр "тарабарская грамота" - QBasic
Формулировка задачи:
Так прозвали в народе шифр Литорея от латинского
littera (буква). В чем он заключается? Это шифр замены.
Подлежат замене следующие буквы:
б, в, г, д, ж, з, к, л, м, н
щ, ш, ч, ц, х, ф, т, с, р, п
Точнее, верхние буквы используются вместо нижних и наоборот.
Гласные и прочие знаки не меняются.
пример. Слово "пример" будет выглядеть так "нмирем"
О программе.
Вы вводите русский текст строчными буквами, а программа
выводит на экран зашифрованный текст. В силу симметрии
эту программу можно использовать и для расшифровки.
(проверено)
Решение задачи: «Шифр "тарабарская грамота"»
textual
Листинг программы
CONST a = "бвгджзклмн", b = "щшчцхфтсрп" DIM t AS STRING, g AS STRING * 1 LINE INPUT "Text = "; t FOR i = 1 TO LEN(t) g = MID$(t, i, 1) j = INSTR(a, g) k = INSTR(b, g) IF j > 0 THEN MID$(t, i, 1) = MID$(b, j, 1) ELSEIF k > 0 THEN MID$(t, i, 1) = MID$(a, k, 1) END IF NEXT PRINT t
Объяснение кода листинга программы
- Задаются две константы
a
иb
, которые содержат строкибвгджзклмн
ищшчцхфтсрп
соответственно. - Объявляются две переменные
t
иg
. Переменнаяt
содержит введенный пользователем текст, а переменнаяg
используется для временного хранения символов из строкa
иb
. - В цикле
FOR
перебираются все символы в строкеt
. - Для каждого символа в цикле:
- Значение текущего символа сохраняется в переменной
g
. - Находится индекс первого вхождения символа
g
в строкеa
с помощью функцииINSTR
(индекс не включая символ, с которого начинается поиск). Если такой символ найден, то его значение заменяется на соответствующий символ из строкиb
с помощью функцииMID$
. - Если символ не найден в строке
a
, то проверяется наличие символа в строкеb
. Если символ найден, то его значение заменяется на соответствующий символ из строкиa
.
- Значение текущего символа сохраняется в переменной
- После выполнения цикла выводится измененная строка
t
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д