Другие языки программирования и технологии
Помогите написать программу на любом языке программирования
В шифрах средних веков часто использовались таблицы, с помощью которых выполнялись простые процедуры шифрования, основанные на методе перестановки букв в сообщении. Ключом в данном случае является размеры таблицы. Например, сообщение “Неясное становится еще более непонятным” записывается в таблицу из 5 строк и 7 столбцов по столбцам. НОНСБНЯ ЕЕОЯОЕТ ЯСВЕЛПН СТИЩЕОЫ НАТЕЕНМ Для получения шифрованного сообщения текст считывается по строкам и группируется по 5 букв: НОНСБ НЯЕЕО ЯОЕТЯ СВЕЛП НСТИЩ ЕОЫНА ТЕЕНМ Помогите написать программу на любом языке программирования
Вот программа
Я по быстрому сделал на VBA
Sub Процедура_шифрования ()
Const DefText As String = "Неясное становится еще более непонятным" 'текст по умолчанию
Dim InText As String 'текст который надо зашифровать
Dim LenText As Integer 'длина этого текста
Dim OutText As String 'здесь будет зашифрованный текст
Dim Sim As String
Dim i As Byte
Dim xi As Byte '
Dim XMax As Byte
Dim ts As String
Dim sc As Byte
InText = InputBox("Введите сообщение", "Шифрование", DefText) 'ввод текста
If Len(InText) = 0 Then 'выход если нет текста
Exit Sub
End If
InText = UCase(InText) 'делаем все символы заглавными
ts = ""
For i = 1 To Len(InText)
Sim = Mid(InText, i, 1) '
If Sim <> " " Then 'удаляем
ts = ts & Sim 'пробелы
End If '
Next i
InText = ts
LenText = Len(InText) 'высчитываем новую длину
XMax = Int(Sqr(LenText)) 'рассчитываем размер таблицы
sc = 0 'счетчик символов для вставки пробела
For i = 1 To XMax
xi = i
incr: Sim = Mid(InText, xi, 1)
OutText = OutText & Sim
sc = sc + 1
If sc = 5 Then 'вставляем
OutText = OutText & " " 'разделительный
sc = 0 'пробел
End If 'групп
xi = xi + XMax
If xi <= LenText Then 'если еще
GoTo incr 'не все символы
End If 'перебраны то повтор
Next i
MsgBox OutText 'вывод текста
End Sub
Программа работает правильно, я проверял
Я по быстрому сделал на VBA
Sub Процедура_шифрования ()
Const DefText As String = "Неясное становится еще более непонятным" 'текст по умолчанию
Dim InText As String 'текст который надо зашифровать
Dim LenText As Integer 'длина этого текста
Dim OutText As String 'здесь будет зашифрованный текст
Dim Sim As String
Dim i As Byte
Dim xi As Byte '
Dim XMax As Byte
Dim ts As String
Dim sc As Byte
InText = InputBox("Введите сообщение", "Шифрование", DefText) 'ввод текста
If Len(InText) = 0 Then 'выход если нет текста
Exit Sub
End If
InText = UCase(InText) 'делаем все символы заглавными
ts = ""
For i = 1 To Len(InText)
Sim = Mid(InText, i, 1) '
If Sim <> " " Then 'удаляем
ts = ts & Sim 'пробелы
End If '
Next i
InText = ts
LenText = Len(InText) 'высчитываем новую длину
XMax = Int(Sqr(LenText)) 'рассчитываем размер таблицы
sc = 0 'счетчик символов для вставки пробела
For i = 1 To XMax
xi = i
incr: Sim = Mid(InText, xi, 1)
OutText = OutText & Sim
sc = sc + 1
If sc = 5 Then 'вставляем
OutText = OutText & " " 'разделительный
sc = 0 'пробел
End If 'групп
xi = xi + XMax
If xi <= LenText Then 'если еще
GoTo incr 'не все символы
End If 'перебраны то повтор
Next i
MsgBox OutText 'вывод текста
End Sub
Программа работает правильно, я проверял
честно говоря, вызывает сильно сомнение что такой способ шифрования в каких-то там средних веках существовал.. . похоже на сказку для детей чтобы интерес проявился.. .
сама методика странная... .
1. Куда деть пробелы между словами?
2. Как быть если фраза "не укладывается" так аккуратно в таблицу?
3. Как будете различать слова при восстановлении текста? (человек-то распознает слова, а простая программа на это не способна...)
сама методика странная... .
1. Куда деть пробелы между словами?
2. Как быть если фраза "не укладывается" так аккуратно в таблицу?
3. Как будете различать слова при восстановлении текста? (человек-то распознает слова, а простая программа на это не способна...)
Похожие вопросы
- Напишите программу на любом из языков программирования
- Будут ли программисты когда нибуть для создания программ использовать русскоязычные языки программирования?
- Какой язык программирования использует программа PureBusic? Какой язык программирования использует программа PureBusic?
- Помогите пожалуйста составить решение с задачей по программированию(на любом языке программирования)
- Помогите написать программу со switch в СИ
- если программы пишут на языках программирования, а как пишут сами языки программирования?
- Помогите написать программу на языке програмирования КУМИР
- напишите по памяти или с инета любую свою любимую програмку на любом языке программирования
- помогите написать программу на языке С!
- Помогите написать программу на С. Тема Составление программ с использованием массивов