Обучающие программы и исследовательские работы учащихся
Помогаем учителям и учащимся в обучении, создании и грамотном оформлении исследовательской работы и проекта.

Объявление

Наш баннер

Сайт Обучонок содержит исследовательские работы и проекты учащихся, темы творческих проектов по предметам и правила их оформления, обучающие программы для детей.
Будем благодарны, если установите наш баннер!
Баннер сайта Обучонок
Код баннера:
<a href="https://obuchonok.ru/" target="_blank"> <img src="https://obuchonok.ru/banners/banob2.gif" width="88" height="31" alt="Обучонок. Исследовательские работы и проекты учащихся"></a>
Все баннеры...

Рисунок 4.


Sub inkognito()
Dim z As Integer
Dim kl As Integer
Dim stb As Integer
Dim cod(65) As String
Dim alf(65) As String
Dim pos As String
Dim sl() As String
Dim tn() As String
Dim l As Integer
Dim n As Integer
Dim shka As String
Dim ud As String
Dim vst As String
Dim hka As String
Dim x As Integer
Dim cod1(65) As Integer
Dim cod2(65) As Integer
Dim kd(65) As String
Dim x1 As Integer
Dim x2 As Integer
Dim dl As Integer
Dim x1st As String
Dim x2st As String
Dim dat As String

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
dat = Cells(11, 2).Value
ud = "."
vst = ""
dat = Replace(dat, ud, vst, 1, -1)
l = Len(dat)
For z = 1 To l
kl = kl + Int(Mid(dat, z, 1))
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обаботка ключа
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ раскрутка Rnd
Rnd (-1)
Randomize (kl) 'прокрутка рнд
For z = 1 To kl
Rnd (kl)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
For z = 1 To 65
cod1(z) = Int(Rnd(kl) * 50) + 1
111
cod2(z) = Int(Rnd(kl + 23) * 200) + 1
cod(z) = cod1(z) + cod2(z)
x = cod(z)
If z > 1 Then
For n = 1 To z - 1
If x = cod(n) Then
GoTo 111
End If
Next n
End If
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
'$$$$$$$$$$$$$$$$$$ дополнение длины кода
ud = " "
vst = ""
For z = 1 To 65
x1 = Int(Rnd(kl + 13) * 6) + 4
kd(z) = Str(cod(z))
dl = Len(kd(z)) - 1
x2 = x1 - dl
x1st = Str(x1)
x2st = Str(x2)
kd(z) = x1st & x2st & kd(z)
kd(z) = Replace(kd(z), ud, vst, 1, -1)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива символов
stb = 3
For z = 1 To 65
alf(z) = Cells(3, stb).Value
stb = stb + 1
Next

'$$$$$$$$$$$$$$$$$$ заполнение массива символов
'$$$$$$$$$$$$$$$$$$ вывод рабочего состояния массива символов
stb = 3
For z = 1 To 65
Cells(4, stb).Value = alf(z)
stb = stb + 1
Next

'$$$$$$$$$$$$$$$$$$ вывод рабочего состояния массива символов
'$$$$$$$$$$$$$$$$$$ вывод массива кодов
z = 1
stb = 3
For z = 1 To 65
Cells(2, stb).Value = kd(z)
stb = stb + 1
Next z

'$$$$$$$$$$$$$$$$$$ вывод массива кодов
'$$$$$$$$$$$$$$$$$$ определение длины шифровки и размеров динамических массивов
pos = Cells(5, 4).Value
l = Len(pos)
Cells(5, 3).Value = l
ReDim sl(l)
ReDim tn(l)

'$$$$$$$$$$$$$$$$$$ определение длины шифровки и размеров динамических массивов
'&&&&&&&&&&&&&&&&&& установка пробелов в тексте
ud = " "
vst = "_"
pos = Replace(pos, ud, vst, 1, -1)

'&&&&&&&&&&&&&&&&&& установка пробелов в тексте
'$$$$$$$$$$$$$$$$$$ заполнение массива исходного текста
For z = 1 To l
sl(z) = Mid(pos, z, 1)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива исходного текста
'$$$$$$$$$$$$$$$$$$ контрольный вывод массива исходного текста
stb = 4
For z = 1 To l
Cells(7, stb).Value = sl(z)
stb = stb + 1
Next z

'$$$$$$$$$$$$$$$$$$ контрольный вывод массива исходного текста
'$$$$$$$$$$$$$$$$$$ кодирование шифровки и заполнение массива шифровки
For z = 1 To l
For n = 1 To 65
If sl(z) = alf(n) Then
tn(z) = Str(kd(n))
If n < 20 Then
alf(n) = "$"
n = 66
End If
End If
Next n
stb = 3
For k = 1 To 64
Cells(4, stb).Value = alf(k)
stb = stb + 1
Next
Next z

'$$$$$$$$$$$$$$$$$$ кодирование шифровки и заполнение массива шифровки
'$$$$$$$$$$$$$$$$$$ заполнение строки шифровки и её код вывода
shka = tn(1)
For z = 2 To l
shka = shka & tn(z)
Next z
Cells(9, 4).Value = shka

'$$$$$$$$$$$$$$$$$$ заполнение строки шифровки и её вывод
ud = " "
vst = ""
hka = Replace(shka, ud, vst, 1, -1)
Cells(17, 4).Value = hka
End Sub
Sub очистка()
Range("C2:CO2").Select
Selection.ClearContents
Range("C5:Y5").Select
Selection.ClearContents
Selection.ClearContents
Range("D7:AY7").Select
Selection.ClearContents
Range("D9:BA9").Select
Selection.ClearContents
Range("B11").Select
Selection.ClearContents
Range("D17").Select
Selection.ClearContents
Range("C4:BO4").Select
Selection.ClearContents
Range("D5").Select
End Sub


Рисунок 6.

Sub deshifr()
Dim shka As String 'шифрограмма
Dim z As Integer 'переменная циклов
Dim alf(65) As String
Dim cod(65) As String
Dim posl() As String
Dim l As Integer
Dim k As Integer
Dim stb As Integer
Dim frag() As String
Dim kl As Integer
Dim text() As String
Dim rez As String
Dim ud As String
Dim vst As String
Dim x As Integer
Dim cod1(65) As Integer
Dim cod2(65) As Integer
Dim gr(65) As Integer 'массив границы кодов
Dim kd(65) As String 'код с показателем длины
Dim dl As String 'цифра длины кода
Dim n As Integer
Dim x1 As Integer
Dim x2 As Integer
Dim dl1 As Integer
Dim x1st As String
Dim x2st As String
Dim lc As Integer
Dim r As Integer
Dim dlin As Integer
Dim col As Integer
Dim a As Integer

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
dat = Cells(10, 1).Value
ud = "."
vst = ""
dat = Replace(dat, ud, vst, 1, -1)
l = Len(dat)
For z = 1 To l
kl = kl + Int(Mid(dat, z, 1))
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
Rnd (-1)
Randomize (kl) 'прокрутка рнд
For z = 1 To kl
Rnd (kl)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
For z = 1 To 65
cod1(z) = Int(Rnd(kl) * 50) + 1
111
cod2(z) = Int(Rnd(kl + 23) * 200) + 1
cod(z) = cod1(z) + cod2(z)
x = cod(z)
If z > 1 Then
For n = 1 To z - 1
If x = cod(n) Then
GoTo 111
End If
Next n
End If
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
'$$$$$$$$$$$$$$$$$$ дополнение длины кода
ud = " "
vst = ""
For z = 1 To 65
x1 = Int(Rnd(kl + 13) * 6) + 4
kd(z) = Str(cod(z))
dl = Len(kd(z)) - 1
x2 = x1 - dl
x1st = Str(x1)
x2st = Str(x2)
kd(z) = x1st & x2st & kd(z)
kd(z) = Replace(kd(z), ud, vst, 1, -1)
Next z

'$$$$$$$$$$$$$$$$$$ дополнение длины кода
'$$$$$$$$$$$$$$$$$$$$$$$ вывод массива кодов во 2 строку
stb = 3
For z = 1 To 65
Cells(2, stb).Value = kd(z)
stb = stb + 1
Next z

'$$$$$$$$$$$$$$$$$$$$$$$вывод массива кодов во 2 строку
'$$$$$$$$$$$$$$$$$$$$$$$вывод массива символов в 3 строку
stb = 3
For z = 1 To 65
alf(z) = Cells(3, stb).Value
stb = stb + 1
Next z

'$$$$$$$$$$$$$$$$$$$$$$$вывод массива символов в 3 строку
shka = Cells(5, 4).Value ' забираем текст шифровки
'$$$$$$$$$$$$$$$$$$$$$$$$$$$ нарезка строки шифровки
l = Len(shka)
Cells(5, 2).Value = l
'k кол-во символов в строке шифровки
ReDim posl(l) As String ' определили длину динамического массива ,содержащего коды
ReDim text(l) As String 'определяем длину динамического массива ,содержащего буквы шифровки

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ разделяем на отдельные коды
col = 1 'количество кодов - номер кода
x = 0 ' накопитель длины
r = 1 'позиция отреза следующего кода
lc = 1 'позиция отреза индикатора длины кода
a = 0
77788
x1st = Mid(shka, lc, 1) 'первый символ шифровки
lc = lc + 1 'увеличиваем позицию вырезки на 1
x2st = Mid(shka, lc, 1) '2 символ шифровки
x1 = Int(x1st) 'число начала шифровки
x2 = Int(x2st) 'число конца шифровки
dl1 = x1 - x2 + 2 ' длина чистого кода
x = x + dl1
lc = x + 1
posl(col) = Mid(shka, r, dl1) ' n1 й код шифровки
r = lc 'позиция начала следующего кода
col = col + 1 ' количество нарезанных кодов
a = a + 2
If x < l Then
GoTo 77788
End If

'$$$$$$$$$$$$$$$$$$$$$$$$$$$ кончили разрезку строки на отдельные коды
'$$$$$$$$$$$$$$$$$$$$$$$$$$$ контрольный вывод кодов
stb = 4
For z = 1 To col
Cells(8, stb).Value = posl(z)
stb = stb + 1
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$контрольный вывод кодов
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$ расшифровка
For z = 1 To l
For n = 1 To 65
If posl(z) = kd(n) Then
text(z) = alf(n)
End If
Next n
Next z
rez = text(1)
For z = 2 To l
rez = rez & text(z)
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$ расшифровка
ud = "_"
vst = " "
rez = Replace(rez, ud, vst, 1, -1)
Cells(12, 4).Value = rez
End Sub
Sub очистка()
Range("A2:BN2").Select
Selection.ClearContents
Range("D5:AQ5").Select
Selection.ClearContents
Range("D8:BA8").Select
Selection.ClearContents
Range("B10").Select
Selection.ClearContents
Range("C5").Select
Selection.ClearContents
Range("D12:AW12").Select
Selection.ClearContents
Range("AP17").Select
End Sub


Рисунок 8

Public Class Form1
Private Property simv As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim z As Integer
Dim kl As Integer
Dim cod(65) As String
Dim alf(65) As String
Dim pos As String
Dim sl() As String
Dim tn() As String
Dim l As Integer
Dim n As Integer
Dim ud As String
Dim vst As String
Dim shka As String
Dim x As Integer
Dim cod1(65) As Integer
Dim cod2(65) As Integer
Dim kd(65) As String
Dim x1 As Integer
Dim x2 As Integer
Dim dl As Integer
Dim x1st As String
Dim x2st As String
Dim dat As String
Dim simv As String
Dim hka As String

If TextBox2.Text = "" Or TextBox1.Text = "" Then '@@@@@@@@@@@@@@@@@@Отработка диалога для забывчивых
Label2.Visible = True
GoTo 222
Else
Label2.Visible = False
End If '@@@@@@@@@@@@@@@@@@Отработка диалога для забывчивых
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
dat = TextBox2.Text
ud = "."
vst = ""
dat = Replace(dat, ud, vst, 1, -1)
l = Len(dat)
For z = 1 To l
kl = kl + Int(Mid(dat, z, 1))
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ раскрутка Rnd
Rnd(-1)
Randomize(kl) 'прокрутка рнд
For z = 1 To kl
Rnd(kl)
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ раскрутка Rnd
'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
For z = 1 To 65
cod1(z) = Int(Rnd(kl) * 50) + 1
111:
cod2(z) = Int(Rnd(kl + 23) * 200) + 1
cod(z) = cod1(z) + cod2(z)
x = cod(z)
If z > 1 Then
For n = 1 To z - 1
If x = cod(n) Then
GoTo 111
End If
Next n
End If
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
'$$$$$$$$$$$$$$$$$$ дополнение длины кода
ud = " "
vst = ""
For z = 1 To 65
x1 = Int(Rnd(kl + 13) * 6) + 4
kd(z) = Str(cod(z))
dl = Len(kd(z)) - 1
x2 = x1 - dl
x1st = Str(x1)
x2st = Str(x2)
kd(z) = x1st & x2st & kd(z)
kd(z) = Replace(kd(z), ud, vst, 1, -1)
Next z
'$$$$$$$$$$$$$$$$$$ заполнение массива символов
simv = "аааоооеееииии___...абвгдеёжзийклмнопрстуфхцчшщъыьэюя,1234567890:_"
For z = 1 To 65
alf(z) = Mid(simv, z, 1)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива символов
'$$$$$$$$$$$$$$$забираем шифровку
pos = TextBox1.Text

'$$$$$$$$$$$$$$$забираем шифровку
'$$$$$$$$$$$$$$$$$$ определение длины шифровки и размеров динамических массивов
l = Len(pos)
ReDim sl(l)
ReDim tn(l)

'$$$$$$$$$$$$$$$$$$ определение длины шифровки и размеров динамических массивов
'&&&&&&&&&&&&&&&&&& замена пробелов на подчёркивание
ud = " "
vst = "_"
pos = Replace(pos, ud, vst, 1, -1)
'&&&&&&&&&&&&&&&&&& замена пробелов на подчёркивание

'$$$$$$$$$$$$$$$$$$ заполнение массива исходного текста
For z = 1 To l
sl(z) = Mid(pos, z, 1)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива исходного текста
'$$$$$$$$$$$$$$$$$$ кодирование шифровки и заполнение массива шифровки
For z = 1 To l
For n = 1 To 65
If sl(z) = alf(n) Then
tn(z) = Str(kd(n))
If n < 20 Then
alf(n) = "$"
n = 66
End If
End If
Next n
Next z

'$$$$$$$$$$$$$$$$$$ кодирование шифровки и заполнение массива шифровки
'$$$$$$$$$$$$$$$$$$ заполнение строки шифровки
'shka = Join(tn(l), "")
shka = tn(1)
For z = 2 To l
shka = shka & tn(z)
Next z

'$$$$$$$$$$$$$$$$$$ заполнение строки шифровки
'$$$$$$$$$$$$$$$$$$ удаление пробелов строки шифровки
ud = " "
vst = ""
hka = Replace(shka, ud, vst, 1, -1)

'$$$$$$$$$$$$$$$$$$ удаление пробелов строки шифровки
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ запись шифровки в файл
Dim fileStream As IO.FileStream
Dim bytes As Byte() = New _
System.Text.UTF8Encoding(True).GetBytes(hka)
fileStream = New IO.FileStream("priwet.txt", IO.FileMode.Create)
fileStream.Write(bytes, 0, bytes.Length)
fileStream.Close()

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ запись шифровки в файл
TextBox1.Text = ""
TextBox1.Text = "Процесс шифрования прошёл успешно. Выполните очистку"
222:
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'Dim shka As String 'шифрограмма
Dim z As Integer 'переменная циклов
Dim alf(65) As String
Dim cod(65) As String
Dim posl() As String
Dim l As Integer
Dim kl As Integer
Dim text() As String
Dim rez As String
Dim ud As String
Dim vst As String
Dim x As Integer
Dim cod1(65) As Integer
Dim cod2(65) As Integer
Dim gr(65) As Integer ' массив границы кодов
Dim kd(65) As String 'код с показателем длины
Dim dl As String 'цифра длины кода
Dim n As Integer
Dim x1 As Integer
Dim x2 As Integer
Dim dl1 As Integer
Dim x1st As String
Dim x2st As String
Dim lc As Integer
Dim r As Integer
Dim col As Integer
Dim a As Integer
Dim dat As String

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ для забывчивых
If TextBox2.Text = "" Then
Label3.Visible = True
GoTo 222
Else
Label3.Visible = False
End If

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ для забывчивых
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
dat = TextBox2.Text
ud = "."
vst = ""
dat = Replace(dat, ud, vst, 1, -1)
l = Len(dat)
For z = 1 To l
kl = kl + Int(Mid(dat, z, 1))
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ обработка ключа
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ прокрутка рнд
Rnd(-1)
Randomize(kl)
For z = 1 To kl
Rnd(kl)
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ прокрутка рнд
'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
For z = 1 To 65
cod1(z) = Int(Rnd(kl) * 50) + 1
111:
cod2(z) = Int(Rnd(kl + 23) * 200) + 1
cod(z) = cod1(z) + cod2(z)
x = cod(z)
If z > 1 Then
For n = 1 To z - 1
If x = cod(n) Then
GoTo 111
End If
Next n
End If
Next z

'$$$$$$$$$$$$$$$$$$ заполнение массива кодов
'$$$$$$$$$$$$$$$$$$ дополнение длины кода
ud = " "
vst = ""
For z = 1 To 65
x1 = Int(Rnd(kl + 13) * 6) + 4
kd(z) = Str(cod(z))
dl = Len(kd(z)) - 1
x2 = x1 - dl
x1st = Str(x1)
x2st = Str(x2)
kd(z) = x1st & x2st & kd(z)
kd(z) = Replace(kd(z), ud, vst, 1, -1)
Next z

'$$$$$$$$$$$$$$$$$$ дополнение длины кода
'$$$$$$$$$$$$$$$ заполняем массив символов
simv = "аааоооеееииии___...абвгдеёжзийклмнопрстуфхцчшщъыьэюя,1234567890:_"
For z = 1 To 65
alf(z) = Mid(simv, z, 1)
Next z

'$$$$$$$$$$$$$$$ конец заполнения
'$$$$$$$$$$$$$$$ считываем текст шифровки из файла определяем длину и динамические массивы
Dim streamReader As New IO.StreamReader("priwet.txt")
Dim shka As String = streamReader.ReadToEnd()
streamReader.Close()
l = Len(shka)
ReDim posl(l) ' определили длину динамического массива ,содержащего коды
ReDim text(l) 'определяем длину динамического массива ,содержащего буквы шифровки

'$$$$$$$$$$$$$$$ считываем текст шифровки из файла определяем длину и динамические массивы
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ разделяем на отдельные коды
col = 1 'количество кодов - номер кода
x = 0 ' накопитель длины
r = 1 'позиция отреза следующего кода
lc = 1 'позиция отреза индикатора длины кода
a = 0
77788:
x1st = Mid(shka, lc, 1) 'первый символ шифровки
lc = lc + 1 'увеличиваем позицию вырезки на 1
x2st = Mid(shka, lc, 1) '2 символ шифровки
x1 = Int(x1st) 'число начала шифровки
x2 = Int(x2st) 'число конца шифровки
dl1 = x1 - x2 + 2 ' длина чистого кода
x = x + dl1
lc = x + 1
posl(col) = Mid(shka, r, dl1) ' n1й код шифровки
r = lc 'позиция начала следующего кода
col = col + 1 ' количество нарезанных кодов
a = a + 2
If x < l Then
GoTo 77788
End If

'$$$$$$$$$$$$$$$$$$$$$$$$$$$ кончили разрезку строки на отдельные коды
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$ расшифровка
For z = 1 To l
For n = 1 To 65
If posl(z) = kd(n) Then
text(z) = alf(n)
End If
Next n
Next z
rez = text(1)
For z = 2 To l
rez = rez & text(z)
Next z

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$ расшифровка
ud = "_"
vst = " "
rez = Replace(rez, ud, vst, 1, -1)
TextBox1.Text = rez
222:
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
TextBox2.Text = ""
End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub

Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
End Sub
End Class

Объявление

Статистика