Str(Sa[i],Elm);
OutText(Elm);
Stop:=False;
End;{вправо}
'1':Begin
SetColor(7);
MoveTo(x+i*k,y);
SetColor(Color);
sa[i]:=1;
F[i]:=Sa[i];
End;
'2':Begin
sa[i]:=0;
#13:Begin Stop:=True; End;
Until(Stop);
SetTextStyle(0,0,1);
{---------------------------------------}
{Вывод образующей матрицы}
Procedure OutPutObr_Matrix(x,y : Integer;Obr_Matr : Two_Matrix );
Var k,i,j : Integer;
Elm : String;
Begin
k:=12;
For i:=1 to _N Do
For j:=1 to _N Do
MoveTo(x+j*k,i*10+y);
Str(Obr_Matr[i,j],Elm);
SetColor(4);
For j:=_N+1 to _N+_M-1 Do
{----------------------------------}
{Вывод полученной кодовой комбинации}
Procedure OutPut(x,y : Integer;F,A : Mass1);
Var k,s : Integer;
MoveTo(x+10,y-20);
Str(_N+_M-1,Elm);
MoveTo(x+(_N+_M)*12-3,y-20);
Str(0,Elm);
For i:=1 to _N Do Cicle_Kod[i]:=F[i];
s:=1;
For i:=_N+1 To _N+_M-1 Do
Cicle_Kod[i]:=A[s];
s:=s+1;
Str(Cicle_Kod[i],Elm);
For i:=_N+1 to _N+_M-1 Do
MoveTo(10+x+i*k,y);
{---------------------------------}
{выход из программы}
Function _Exit(Fon,Color : Integer;Col_Simv : Byte) : integer;
Var x,y,k : Integer;
Stop : Boolean;
Ch : Char;
Window_(250,200,450,300,1,'Выход');
x:=225;
y:=260;
k:=80;
SetColor(Col_Simv);
For i:=1 to 2 do
OutText(Y_No[i]);
i:=1;
SetFillStyle(1,Fon);
Bar(x+i*k-30,y-15,x+i*k+30,y+15);
Setcolor(Color);
Repeat
ch:=ReadKey;
Case ch Of
#75:Begin
SetFillStyle(1,7);
Setcolor(Col_Simv);
i:=i-1;
if(i2)then i:=2;
#13:Begin Stop:=True; _Exit:=i End;
End;{Case}
Until Stop;
SetTextStyle(0,0,0);
{ОСНОВНАЯ ПРОГРАММА }
InitGrf;
flag:=false;
Fon(3,2,GetMaxX-3,30);
setcolor(0);
moveto(20,465);
SetTextJustify(0,1);
outtext('Esc - Выход');
Menu(3,'Работа','О программе','Помощь','','','');
Case t Of
1:Begin
SetFillStyle(1,7); {Строка состтояния}
Bar(3,450,getmaxx-3,getmaxy-3);
SetColor(15);
Line(3,450,getmaxx-3,450);
Line(3,450,3,getmaxy-3);
SetColor(0);
Line(3,getmaxy-3,getmaxx-3,getmaxy-3);
Line(getmaxx-3,450,getmaxx-3,getmaxy-3);
{moveto(20,465);
outtext('Нажмите любую клавишу ...');}
VerMenu(3,'Ввод комбинации','Образующая
матрица','Выход','','','');
Case Np Of
1 : Begin
Visual(Mas);
Dopoln(F);
Delenye(F,P);
Window_(30,300,610,410,1,'Закодированное сообщение.
Красные
символы - контрольные.');
OutPut(40,370,F,R);
ReadKey;
SetFillStyle(1,3);
Bar(30,150,610,410);
2 : Begin
Window_(30,50,610,445,1,'Образующая матрица');
Ed_Matrix(Obraz_Matrix);
Obr_Matrix(Obraz_Matrix);
OutPutObr_Matrix(40,90,Obraz_Matrix);
Bar(30,50,610,450);
3 : Begin
Case _Exit(1,15,0) of
1 : begin
Np:=3;
flag:=true;
end;
2 : Flag:=False;
end
Until (Np=3) or (Np=4);
Ramka_Off(x1,y1,x2,y2);
2:Begin
Window_(100,80,510,400,1,'О программе');
moveto(130,130);
outtext('Данная программа является курсовой работой');
moveto(300,145);
SetTextJustify(1,1);
outtext('по курсу :');
moveto(300,160);
outtext('" Передача информации " ');
moveto(120,200);
outtext('Задание : Построить кодирующее устройство');
moveto(185,220);
outtext('для кода Файра.Кодируемых сообщений 63,');
moveto(185,240);
outtext('число обнаруживаемых ошибок Br=4, число');
moveto(185,260);
outtext('исправляемых ошибок Bs=3.');
moveto(120,290);
outtext('Студент : Иванов А. Е.');
moveto(120,310);
outtext('Группа : BM-1-97');
moveto(120,330);
outtext('Преподаватель : Каевченко .');
moveto(300,380);
outtext('СМОЛЕНСК 1999 г.');
outtext('Нажмите любую клавишу ...');
Readkey;
3:Begin
Window_(100,50,500,350,1,'Помощ');
moveto(120,110);
outtext(' ПЕРЕДВИЖЕНИЕ ПО ГОРИЗОНТАЛЬНОМУ МЕНЮ.');
moveto(120,130);
outtext('- |');
moveto(120,135);
outtext('| | ПЕРЕДВИЖЕНИЕ ПО ВЕРТИКАЛЬНОМУ МЕНЮ.');
moveto(120,140);
outtext('| ');
moveto(114,150);
moveto(114,155);
outtext(' АКТИВАЦИЯ ПУНКТА МЕНЮ.');
moveto(140,200);
outtext('В программе использованы соотношения :');
moveto(120,220);
outtext('L >= Bs c >= Bs+Br-1');
moveto(160,235);
outtext('L');
moveto(120,240);
outtext('e = 2 -1 m = c + L');
moveto(120,260);
outtext('n = НОК(e,c)');
moveto(120,280);
outtext('После расчетов получили образующий многочлен');
moveto(120,300);
outtext('Файра : P(x)=1011001011');
End; {Case}
Until flag;
closegraph;
End.
Оглавление.
|Аннотация | |
|Введение | |
|1. Теоретическое введение | |
| 1.1. Постановка задачи. | |
| 1.2. Понятие двоичных циклических кодов. | |
| 1.2.1. Общие понятия и определения. | |
| 1.2.2. Методы построения циклических кодов. | |
|1.3.Технические средства кодирования для двоичных | |
|циклических кодов. | |
|1.4. Коды Файра. | |
| 2. Разработка схемы кодирующего устройства. | |
|2.1. Построение кода Файра. | |
|2.2. Структурная схема кодирующего устройства. | |
| 3. Анализ технического задания. | |
| 4. Работа устройства | |
| 5.Выбор узлов принципиальной схемы. | |
|5.1. Расчет генератора тактовых импульсов | |
| 5.2. Счетчик К555 ИЕ10 | |
| 5.3. Тригер К555 ТВ6 | |
|5.4. Регистр К155ИР13. | |
| 6. Описание разработки системы. | |
|6.1. Модульная структура системы. | |
|6.2. Организация пользовательского интерфейса . | |
| 6.2.1. Меню системы. | |
| 6.2.2. Обработка ошибочных ситуаций. | |
|6.3. Спецификация на программные модули. | |
| 7 . Тестирование. | |
|7.1. Выбор методики тестирования. | |
|7.2. Результаты тестирования | |
| 8. Ограничения на разработку. | |
|8.1. Инструкция пользователя | |
| Заключение. |
| Список литературы. |
| Приложения |
|Приложение 1. Перечень элементов. |
|Приложение 2. Блок схема алгоритма. |
|Приложение 3. Текст программных модулей. |
| Приложение 4. Экранные формы. |
-----------------------
M2
1
2
К1
Вход
Выход
К2
g0
g1
gn-k-1
g2
Обработка ошибок
Модуль вывода
Рис. 5.3 . Триггер К555 ТВ6.
[pic]
Рис.5.2 Счетчик К555 ИЕ10.
Рис. 5.1. Принципиальная схема генератора.
Г
Кодер
Счетчик
=H0 + H1X + ... + HkXk
H(X)=
G(X)
xn+1
Основная программа
Модуль ввода
Интерфейс
Страницы: 1, 2, 3, 4, 5, 6