ReDim kodmassiv(n,nkod) 'определяем размер кодированного массива

for i=1 to n 'заносим информационные биты в кодированный массив

a=m 'счетчик информационных разрядов

for j=1 to nkod

kontrol=0 'метка отсутствия контрольного разряда

for b=0 To k-1 'кроме контрольных разрядов

kreal=2^b

if j=kreal then

kontrol=1 'метка наличия контрольного разряда

kodmassiv(i,j)=0 'обнуляем контрольные разряды

End if

Next

if kontrol=0 then 'запись в кодированный массив информационного кода

kodmassiv(i,j)=binarykod(i,a)

a=a-1

End if

Next

Next

for i=1 to n 'запись в кодированный массив контрольного кода

for j=1 to nkod

poz=0

for b=0 To k-1 'просмотр контрольных бит

kreal=2^b

if j=kreal then

nomer=kreal

Do 'номер позиции первой младшей единицы двоичного кода символа

ostatok=kreal mod 2

kreal=kreal\2

poz=poz+1

loop until ostatok=1

End if

Next

if poz>0 then

for h=nomer+1 To nkod 'суммируем значения битов с одинаковыми номерами poz

data1=h

sch=0

do

ostatok=data1 mod 2

data1=data1\2

sch=sch+1

loop Until sch=poz

if ostatok=1 then

kodmassiv(i,j)=kodmassiv(i,j) XOR kodmassiv(i,h) ' расчет контрольного кода

End if

Next

End if

Next

Next

End sub

Sub Button2_OnClick() 'чтение парольной фразы полученной из канала связи

ReDim symbol(n) 'определяем кодированный массив

for i=1 to n ' последовательное чтение символов контрольной фразы

a=m 'счетчик информационных разрядов

symbol(i)=0

for j=1 to nkod 'читаем информационные биты

kontrol=0 'метка отсутствия контрольного разряда

for b=0 To k-1 'кроме контрольных разрядов

kreal=2^b

if j=kreal then

kontrol=1 'метка наличия контрольного разряда

End if

Next

if kontrol=0 then 'расчет десятичного кода символа

symbol(i)=symbol(i)+kodmassiv(i,j)*2^(a-1)

a=a-1

End if

Next

Next

document.all.Edit6.value="" 'вывод информации о парольной фразе в браузер

for i=1 to n

document.all.Edit6.value=document.all.Edit6.value+Chr(symbol(i))

Next

End sub

sub Button3_OnClick() ' кнопка управления "передать по каналу связи с единичными ошибками""

'вводим ошибки передачи данных

for i=1 to n ' обнуляем контрольные элементы в массиве

kodmassiv(i,0)=0

Next

Randomize 'функция случайных чисел

kolosh = Int(n*Rnd) + 1 'случайное число ошибок kolosh не больше n

document.all.Edit3.value="" 'число ошибок в канале связи

document.all.Edit3.value=CStr(kolosh)

k1=0

do while k1<kolosh

i = Int(n*Rnd + 1) ' случайный выбор символа для добавления ошибки

if kodmassiv(i,0)=0 then

j = Int(nkod*Rnd + 1) ' добавляем ошибки в случайные разряды

Select Case kodmassiv(i,j)

Case 0

kodmassiv(i,j)=1

Case 1

kodmassiv(i,j)=0

End Select

k1=k1+1 'количество занесенных ошибок

kodmassiv(i,0)=1

End if

Loop

'чтение парольной фразы

ReDim symbol(n) 'определяем кодированный массив

for i=1 to n ' последовательное чтение символов контрольной фразы

a=m 'счетчик информационных разрядов

symbol(i)=0

for j=1 to nkod 'читаем информационные биты

kontrol=0 'метка отсутствия контрольного разряда

for b=0 To k-1 'кроме контрольных разрядов

kreal=2^b

if j=kreal then

kontrol=1 'метка наличия контрольного разряда

End if

Next

if kontrol=0 then 'расчет десятичного кода символа

symbol(i)=symbol(i)+kodmassiv(i,j)*2^(a-1)

a=a-1

End if

Next

Next

document.all.Edit8.value=""

for i=1 to n 'читаем массив строк с одиночными символами

document.all.Edit8.value=document.all.Edit8.value+Chr(symbol(i))

Next

'окончание чтения полученной фразы

End sub

Sub ListBox_onchange() 'выбор из выпадающего списка

Dim intMnt

intMnt=CInt(document.all.ListBox.value)

Select Case intMnt

Case 0

document.all.Edit1.value=""

Case 1

document.all.Edit1.value="Прошлого не вытравить,не выкрасть."

Case 2

document.all.Edit1.value="Растерять легко по пустякам."

Case 3

document.all.Edit1.value="Быть самым-самым первым."

Case 4

document.all.Edit1.value="За призванье надо биться."

Case 5

document.all.Edit1.value="Произносить чужие мысли вслух."

Case 6

document.all.Edit1.value="Друзей без вниманья оставить нельзя."

Case 7

document.all.Edit1.value="Мой дом-моя крепость!"

End Select

End sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: