Реферат: Циклические коды
--PAGE_BREAK--§ 5. Разработка схемы алгоритма
<img width=«105» height=«31» src=«ref-1_1953115752-227.coolpic» v:shapes="_x0000_s1027"><img width=«105» height=«31» src=«ref-1_1953115979-223.coolpic» v:shapes="_x0000_s1026">
Ciclic code
<img width=«291» height=«328» src=«ref-1_1953116202-1464.coolpic» v:shapes="_x0000_s1031 _x0000_s1032 _x0000_s1033 _x0000_s1039 _x0000_s1044 _x0000_s1061 _x0000_s1069 _x0000_s1076 _x0000_s1124 _x0000_s1126"> <img width=«2» height=«51» src=«ref-1_1953117666-77.coolpic» v:shapes="_x0000_s1081 _x0000_s1123">
<img width=«100» height=«60» src=«ref-1_1953117743-426.coolpic» v:shapes="_x0000_s1048 _x0000_s1049 _x0000_s1050"> нет
<img width=«69» height=«2» src=«ref-1_1953114894-78.coolpic» v:shapes="_x0000_s1109"><img width=«2» height=«79» src=«ref-1_1953118247-86.coolpic» v:shapes="_x0000_s1111"><img width=«70» height=«2» src=«ref-1_1953114496-78.coolpic» v:shapes="_x0000_s1106">
да
<img width=«110» height=«42» src=«ref-1_1953118411-336.coolpic» v:shapes="_x0000_s1085 _x0000_s1086 _x0000_s1087"> <img width=«110» height=«68» src=«ref-1_1953118747-547.coolpic» v:shapes="_x0000_s1091 _x0000_s1092 _x0000_s1093 _x0000_s1112"> <img width=«110» height=«43» src=«ref-1_1953119294-294.coolpic» v:shapes="_x0000_s1096 _x0000_s1097 _x0000_s1098">
<img width=«2» height=«214» src=«ref-1_1953119588-84.coolpic» v:shapes="_x0000_s1125"><img width=«50» height=«3» src=«ref-1_1953119672-77.coolpic» v:shapes="_x0000_s1121"><img width=«79» height=«3» src=«ref-1_1953119749-78.coolpic» v:shapes="_x0000_s1122"><img width=«79» height=«3» src=«ref-1_1953111742-78.coolpic» v:shapes="_x0000_s1120"><img width=«2» height=«51» src=«ref-1_1953117666-77.coolpic» v:shapes="_x0000_s1119"><img width=«100» height=«60» src=«ref-1_1953119982-414.coolpic» v:shapes="_x0000_s1116 _x0000_s1117 _x0000_s1118"><img width=«2» height=«50» src=«ref-1_1953120396-77.coolpic» v:shapes="_x0000_s1113"><img width=«98» height=«2» src=«ref-1_1953111586-79.coolpic» v:shapes="_x0000_s1115"><img width=«79» height=«2» src=«ref-1_1953120552-78.coolpic» v:shapes="_x0000_s1114"><img width=«110» height=«42» src=«ref-1_1953120630-301.coolpic» v:shapes="_x0000_s1102 _x0000_s1103 _x0000_s1104">
нет
да
Конец
§ 6. Разработка текста программы
Для представления информационного слова в памяти используется
массив. В состав программы входит основная программа и два модуля,
реализующие алгоритм кодирования и декодирования информационных слов и диалога с пользователем соответственно.
Program Cyclic_Code;
Uses
Crt,_CC31,_Serv;
Var
m,mm:Move_code;
p:Polinom;
r:Rest;
i,Mainflag,From,Error:integer;
Switch:byte;
Key:boolean;
begin
Repeat
Key:=true;
TextColor(11);
TextBackGround(7);
Clrscr;
SetWindow(24,10,45,14,2,' Главное меню ');
Switch:=GetMainMenuChoice;
case Switch of
1:begin
About;
Readln;
Key:=False;
end;
2: begin
TextColor(0);
ClrScr;
SetWindow(25,10,40,13,1,' Образовать ');
Switch:=GetSubMenuChoice;
case Switch of
1:begin
TextBackGround(0);
TextColor(15);
ClrScr;
SetWindow(1,1,79,24,2,' Демонстрация');
TextColor(14);
GotoXY(2,2);
Init(m,p,r,MainFlag);
Write(‘Информационный полином ');
TextColor(2);
for i:=n downto 0 do
begin
if(i<n-n1+1)then Textcolor(9);
Write(m[i]);
end;
TextColor(14);
GotoXY(2,3);
Write('Образующий полином ');
TextColor(13);
for i:=n1 downto 0 do
Write(p[i]);
TextColor(14);
GotoXY(2,4);
Write('Сложение по модулю 2 (F(x)+P(x)): ');
FxPx(m);
TextColor(9);
for i:=n downto 0 do
begin
if(i<n1)then TextColor(2);
Write(m[i]);
end;
TextColor(14);
GotoXY(2,5);
Write('Остаток: ');
Divizion(m,r,p,Mainflag);
TextColor(11);
for i:=n1 downto Mainflag do
Write(r[i]);
GotoXY(2,6);
TextColor(14);
Write('Передаваемый полином: ');
BildMoveCode(m,r,Mainflag);
TextColor(9);
for i:=n downto 0 do
begin
if(i<n1) then TextColor(11);
Write(m[i]);
end;
GotoXY(2,7);
TextColor(14);
Write('Произошла ошибка... ');
MakeError(m,Error);
TextColor(9);
for i:=n downto 0 do
begin
if(i=Error)then
TextColor(12)
else
TextColor(9);
write(m[i]);
end;
GotoXY(2,8);
TextColor(14);
Write('Ошибка исправлена! ');
TextColor(9);
Correction(m,p,r);
for i:=n downto 0 do
begin
if(i=Error)then
TextColor(10)
else
TextColor(9);
write(m[i]);
end;
TextColor(14);
GotoXY(2,9);
Write('Исходный полином: ');
Decoder(m);
TextColor(2);
for i:=n downto 0 do
begin
if(i<n-n1+1)then Textcolor(9);
Write(m[i]);
end;
Key:=false;
end;
2:begin
TextBackGround(0);
TextColor(15);
ClrScr;
SetWindow(1,1,79,24,2,'Демонстрация');
TextColor(14);
GotoXY(2,2);
Init(m,p,r,MainFlag);
Write('Информационный полином: ');
TextColor(2);
for i:=n downto 0 do
begin
if(i<n-n1+1)then Textcolor(9);
Write(m[i]);
end;
TextColor(14);
GotoXY(2,3);
Write('Образующий полином: ');
TextColor(13);
for i:=n1 downto 0 do
Write(p[i]);
TextColor(14);
GotoXY(2,4);
Write('Результат умножения: ');
BildMoveCodeMultiplication(m);
TextColor(9);
for i:=n downto 0 do
Write(m[i]);
GotoXY(2,5);
TextColor(14);
Write('Произошла ошибка ... ');
MakeError(m,Error);
TextColor(9);
for i:=n downto 0 do
begin
if(i=Error)then
TextColor(12)
else
TextColor(9);
write(m[i]);
end;
GotoXY(2,6);
TextColor(14);
Write('Ошибка исправлена ! ');
TextColor(9);
Correction(m,p,r);
for i:=n downto 0 do
begin
if(i=Error)then
TextColor(10)
else
TextColor(9);
write(m[i]);
end;
Key:=false;
end;
end;
TextColor(14);
GotoXY(2,22);
Write('Нажмите любую клавишу...');
Readln;
end;
3:begin
ClrScr;
GotoXY(1,24);
TextColor(14);
Writeln('Работа программы завершена ...');
Readln;
TextBackGround(0);
TextColor(15);
ClrScr;
Key:=true;
end;
end;
Until Key;
end.
§ 7.Результаты работы программы
Результат работы программы при образовании кода добавлением остатка
Демонстрация
Информационный полином: 0000011010111110011110110110110
Образующий полином: 111101
Cложениe по модулю 2 (F(x)+P(x)): 1101011111001111011011011000000
Остаток: 010101
Передаваемый полином: 1101011111001111011011011010101
Произошла ошибка... 1101011111001110011011011010101
Ошибка исправлена! 1101011111001111011011011010101
Исходный полином: 0000011010111110011110110110110
Нажмите любую клавишу...
Результат работы при образовании кода умножением
Демонстрация
Информационный полином: 0000001010110000011111010001011
Образующий полином: 111101
Результат умножения: 0110000011111010000100100101111
Произошла ошибка... 0110000011111010000100100101101
Ошибка исправлена! 0110000011111010000100100101111
Нажмите любую клавишу...
Выводы:
Данная программа кодирует сообщения используя циклический код.
При этом она иммитирует работу канала для передачи информации.
При возникновении исключительных ситуаций, когда информационное слово по каким-либо причинам раскодировать не удаётся, программа повторяет запрос на пересылку данных, как это делается в реальных ситуациях подобного рода.
Кроме этого, программа случайным образом, «при прохождении
информационного слова через канал» допускает в слове однократную ошбку, затем исправляет ее, декодирует информационное слово и передаёт результат пользователю. продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике
Реферат по информатике
Динамічна память принципи її організації і роботи
3 Сентября 2013
Реферат по информатике
Разработка модели Станции переливания крови с использованием методологии проектирования IDEF0 DFD
3 Сентября 2013
Реферат по информатике
Інформаційні системи 20 питань
3 Сентября 2013
Реферат по информатике
Діагностика клавіатури миші трекболів
3 Сентября 2013