Айналмалы кодтың декодерінің функционалды схемасы

Скачать




М А З М Ұ Н Ы
Кіріспе
1. Телемеханикалық ақпаратты жіберудегі қолданылатын
1.1 Бұрмадан қорғалмаған кодтар
1.2 Бұрмадан қорғалған кодтар
1.3 Қателерді табушы кодтар
1.3.1Инверсті код
1.3.2Корреляциялық код
1.4 Қателерді табатын және түзететін кодтар
1.4.1Хэминг коды
1.4.2Кодтау.Бақылаушы символдардың санын анықтау
1.4.3Бақылаушы символдардың құрамын анықтау
1.4.4Декодтау
2 Айналмалы кодты пайдалану арқылы
2.1 Айналмалы кодтың құру әдістері
2.2 Код аралығы d=3 айналмалы коды
2.3 Код аралығы d=4 айналмалы коды
2.4 Код аралығы d=5 айналмалы коды
2.5 Файр коды
2.6 Файр кодын құру
3. Кодердің және декодердің функционалдық схемалары
3.1 Кодердің функционалдық схемасы
3.2 Декодердің функционалдық схемасы
4. Кодердің және декодердің қағидалы схемаларын
4.1 Кодердің принципиалды схемасы
4.2 Декордің принципиалды схемасын құру
5. Кодер және декодердің бағдарламаларын іске
6. Экономикалық бөлім
6.1 Жалпы жағдай
6.2 Экономикалық есептеулер
7. Еңбекті қорғау
7.1 Қауіпті және зиянды өндірістік факторларын анализдеу
7.2 Қорғану жұмыстарын ұйымдастыру
7.2.1Нұсқаулар
7.2.1.1Жұмыс атқарушы мамандарды қауіпсіздіктен қамтамасыз ету жұмыстары
7.2.1.2Қызмет етуші және жөндеу жұмыскерлердің қауіпсіздігін қамтамасыз ететін техникалық
7.3 Инструктаждар
7.4 Техникалық қауіпсіздік шаралары
7.5 Техникалық жұмыстар
7.6 Электрлі қауіпсіздікпен қамтамасыз ету
7.7 Жарықтандыруды есептеу
7.8 Микроклиматты ұстап тұру
7.9 Шулық әсерлер
7.10 Өрт қауіпсіздігі
Қорытынды
Әдебиеттер тізімі
ҚосымшаА
ҚосымшаБ
ҚосымшаВ
ҚосымшаГ
ҚосымшаА
Диплом жобасында зерттелетін мәселелердің тізімі немесе диплом жұмысының
А\Телемеханикалық ақпаратты жіберудегі қолданылатын негізгі кодтар;
Айналмалы кодты пайдалану арқылы ақпаратты жіберу.
Кодердің және декодердің функционалдық схемалары;
Кодер және декодердің қағидалы схемаларын жүзеге асыру;
Кодер және декодердің бағдарламаларын іске асыру;
ә\Экономикалық бөлім;
Еңбек қорғау;
--------------------------------------------------------------------------
б\------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
График материалдарының тізімі (міндетті сызбалардың дәл көрсетілуімен )
Айналмалы кодтың құру әдістері;
Айналмалы кодтың функционалды схемасы;
Айналмалы кодтың декодерінің функционалды схемасы;
Айналмалы кодтың кодерінің принципиалды схемасы;
Айналмалы кодтың декодерінің принципиалды схемасы;
Айналмалы кодтың кодерінің жұмыс істеу кестесі;
Айналмалы кодтың декодерінің жұмыс істеу кестелері;
Ұсынылатын негізгі әдебиет
Айналмалы кодтың функционалды схемасы;
Айналмалы кодтың кодерінің қағидалы схемасы;
Айналмалы кодтың декодерінің функционалды схемасы;
Айналмалы кодтың декодерінің электрлі принципиалды схемасы;
Тараулары көрсетілген жоба (жұмыс) бойынша кеңестер:
Тарау Кеңесші Мерзімі Қолы
Еңбек қорғау техн. ғыл. док.проф. М.Т.Жараспаев 30.05.2004
Экономика Аға оқытушы Г.Б. Жақып
Диплом жобасын (жұмысын) дайындау кестесі
№ Тараулардың аттары, зерттелетін мәселелердің тізімі Жетекшіге ұсыну мерзімі
Телемеханикалық ақпаратты жіберудегі қолданылатын негізгі кодтар
Айналмалы кодты пайдалану арқылы ақпарат жіберу
Кодердің және декодердің функционалдық схемалары
Кодердің және декодердің қағидалы схемаларын іске асыру
Кодердің және декодердің бағдарламаларын іске асыру
Экономикалық бөлім
Еңбек қорғау
Тапсырма берілген күні----11.02.2004ж.
Кафедра меңгерушісі
қолы
Жоба жұмыс жетекшісі
қолы
Тапсырманы орындауға қабылдады
Студент
қолы
А Ң Д А Т П А
Қазіргі кезде ақпарат жіберу және қабылдау актуалды мәселелердің
А Н Н О Т А Ц И Я
Передача и прием информаций в данное время являются одним
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ
Қаныш Сәтбаев атындағы Қазақ ұлттық техникалық университеті
Автоматика және басқару институты
Автоматика және телемеханика кафедрасы
ҚОРҒАУҒА ЖІБЕРІЛДІ
Кафедра меңгерушісі
Техн.ғыл.д-ры.,проф.
____Н.Т.Исембергенов
«__» ____ 2006ж.
Дипломдық жобалауға
ТҮСІНІКТЕМЕ ЖАЗБА
Тақырыбы:
Кеңес берушілер:
Экономика бөлімі бойынша
оқытушы
А.К. Капанова
Еңбек қорғау бөлімі бойынша
техн. ғыл.кан., доц.
М.Ж. Сейсембиев
« »
Норма бақылаушы
Оқытушы
Л.К.Абжанова
« »
Пікір беруші
Қайнар ун-ті,
АЖ каф. меңгерушісі,
техн. ғыл.кан. проф.
С.С. Табултаев
« » ____
Алматы 2006
Қаныш Сәтбаев атындағы Қазақ ұлттық
Институт
Автоматтандыру және басқару
Мамандығы
Техникалық жүйелердің автоматты басқаруы
Кафедра
Автоматика және телемеханика
Бекітемін
Кафедра меңгерушісі
техн. ғыл.док.,проф.
----------Н.Т.Исембергенов
«__» ____ 2006ж.
Диплом жобасын (жұмысын) орындауға
ТАПСЫРМА
Студентке
Кенжалиев Жәнібек Жаңабайұлы
Жобаның(жұмыстың) тақырыбы
Телемеханикалық ақпаратты жіберу үшін айналмалы кодтарды пайдаланып зерттеу және
Жоғары оқу орны бойынша
Бұйрықпен бекітілген
Аяқталған жобаны (жұмысты) тапсыру мерзімі
« »
Жобаның (жұмыстың) негізгі деректері
Б Скалар «Цифровая связь» д из
1104 с 2003ж. d=3, s=1
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
К І Р І С П Е
Екі ғылыми бағыттардың ғылыми – техникалық прогресте ерекше рөлі
Қазіргі кезде телемеханика жүйелері дамыған кодтар есебінде бөгеуілден жақсы
Техникада ақпаратты жіберу, жазу, өндіріп шығару және сақтау кезінде
Осы мәселенің теоретикалдық шешімі 40-шы жылдарда К.Шеннонмен табылған болатын.
Қазіргі уақытта бөгеуілге қарсы кодтау байланыс жүйелерінде, ақпаратты жіберуде,
1.ТЕЛЕМЕХАНИКАЛЫҚ АҚПАРАТТЫ ЖІБЕРУДЕГІ ҚОЛДАНЫЛАТЫН НЕГІЗГІ
Бұрмадан қорғалмаған кодтар
Бұрмадан қорғалмаған кодтың ерекшелігі, олардың құрамында тек бір орында
Мысалы: 0101 комбинациясы мен (5 саны) 1010 комбинациясы (10саны)
Бұл код, берілген екі кодты оңға қарай бір орынға
1101
+
1101
10111
Грей коды 1011 болып табылады. Енді осы Грей кодын
Егер, модуль екі бойынша қосу кезінде қосынды жұп болса,
Сонымен, 1011 рефлексті код комбинациясының екілік кодтағы түрі 1101
Бұрмадан қорғалған кодтар
Қателіктерді тауып және түзетуге мүмкіндік беретін код, бұрмадан қорғалған
1\қателерді табатын кодтар;
2\қателерді тауып және түзететін кодтар;
Геометриялық модельдердің көмегімен кодтармен қателерді тауып және түзету жолдары
Сонымен, кодтық ара-қашықтық, бұл кез-келген кодтың комбинациясының, екіншісінен өзгешілігін
Мысалы, код мынадай комбинациялардан тұрсын: 1011,1101, 1000, 1100. Олардың
0
--------------------→
Математикада графтар теориясы топологияның бір бұтағы болып қарастырылады және
Екі элементті екілік графы жазықтықта орналасқан салыну ретінде көрсетуге
2-сурет
Екі кодтық комбинацияны бөліп тұрған квадраттардың жақтарын кодтық өтпе
Үш өлшемді немесе үш разрядты графтың бейнесі төменде келтірілген.
3-сурет-Үш разрядты граф
Ал төрт элементті екілік кодтың графы 4-суретте кескінделген.
4-сурет- Төрт разрядты граф
Бұл граф үш өлшемді кубтың базасында тұрғызылған. Оның үстіне
Сонымен, бұрмадан қорғалған кодтарда белгілі бір ереже бойынша құрастырылып,
Сонымен, бұрмаға тұрақты код құру (қате табатын код осындай
Сонымен, қолданылатын комбинация санының кемуі бұрмаға тұрақты кодтың өсуін
Қателерді табушы кодтар
Бұл кодтардың артықшылығы: олардың қатарына кіретін код комбинациялардың код
1\ қолданылған комбинациялардың санын азайту жолымен құрылған
2\ барлық комбинациялар қолданылатын кодтар, бірақ, олардың әрқайсысына
Қателерді табушы кодтарға мысалдар келтіре кетіп, кейбіреулерімен толық таныса
Инверсті код
Бұл кодта бұрмаға тұрақтылығын жоғарлату үшін, шығушы п-разрядты комбинацияға
Қорытындысында, сызығына қосарланған символды сан жіберіледі. Кодтың пайда болу
Төңкерілген код, егер код аралығы d=2 болса, онда жалғыз
Корреляциялық код
Екілік кодтың барлық жиынының әр элементі екі символмен беріледі.
Қателерді табатын және түзететін кодтар.
Егер, код комбинациясы бір-бірінен код аралығының айырмашылығы d≥3 болып
Бұрмадан қорғалған кодтар келесі ережелермен құрылады. Біріншіден, κ-ақпарат символдарынан
Хэминг коды
Бұл код барлық жалғыз қателерді түзете алады, сонымен қатар,
Сонымен, кодталған комбинациялардың ортақ ұзындығы n=k+m. Хэмминг коды бойынша
Кодтау.Бақылаушы символдардың санын анықтау
Ол үшін хабарды арнада шумен хабарлағанда кез-келген n символды
2m≥ n+1= k+m+1
1-кестеде тепе-теңдіктен алынған k мен m арасындағы қатынас көрсетілген.
1-Кесте- k мен m символдар арасындағы қатынас.
k 1 2 3 4 5 6 7 8
m 2 3 3 3 4 4 4 4
Бақылаушы символдың орналасуы өте маңызды емес: оларды ақпарат таңбалардың
Бақылаушы символдардың құрамын анықтау
Бақылаушы позицияда қандай символдар тұратынын (1 немесе 0) жұптығын
2-Кесте
Екілік сандардың разряды Код символы Екілік сандардың разряды Код
3(k3) 2(к2) 1(k1)
3(k3) 2(k2) 1(k1)
0 0 1 m1 1 0 0 m3
0 1 0 m2 1 1 1 k3
0 1 1 к4 1
1 0
1 0
1 k2
k1
Кестеде үш разрядты екілік кодтың барлық жиыны үшін барлық
Бақылаушы символ m2 бірінші тексеруге жазылмайды. Өйткені 010 саны
m1
m2
m3 Оk4
Оk4
Оk3 Оk3
Оk2
Оk2 Оk1
Оk1
Оk1
Бақылау коэффицентінің екінші қатарына екілік кодтың екінші разрядында бірліктер
Егер 010, 011, 110 және 111 комбинацияларының екінші разрядында
Үшінші қатарда жазылған символдарда екілік кодтағы үшінші разрядтағы
Сонымен, m1, m2, k1, m, k10, k9, k8, m4,
Бақылаушы символдардың құрамын тексеру көмегімен келесі түрде анықталады. 3-кестенің
Декодтау
Комбинацияның дұрыстығын тексеру үшін, тағы жұптыққа тексеру әдісін қолданады.
Әр тексерулердің қосындысының қорытындысы бойынша қатенің орнын көрсететін екілік
Мысалы: бірінші және екінші тексерулер толық қатені көрсетті, ал
2.АЙНАЛМАЛЫ КОДТЫ ПАЙДАЛАНУ АРҚЫЛЫ АҚПАРАТТЫ ЖІБЕРУ
Мұндай кодтардың әр комбинациялары өздерінше қолданылады, сондықтан да ақпарат
Егер, көпмүшелік қалдықсыз тек өзіне не бірге ғана бөлінетін
Жоғарыда айтылғандай егер, көпмүшелік өзіне немесе бірге қалдықсыз бөлінсе,
Айналмалы кодтарда қолданылатын келтірілмейтін көпмүшеліктер 4-кестеде көрсетілген.
4-Кесте- келтірілмейтін көпмүшеліктер
P(x1)=x+1→3→11
P(x2)=x2+x+1→7→111
P(x2)=x3+x+1→11→1011
P(x3)=x3+x2+1→13→1101
P(x4)=x4+x+1→19→10011
P(x4)=x4+x3+1→25→11001
P(x4)=x4+x3+x2+x+1→31→11111
P(x5)=x5+x2+1→37→100101
P(x5)=x5+x3+1→41→101001
P(x5)=x5+x3+x2+1→47→101111
P(x5)=x5+x4+x2+x+1→55→110111
P(x5)=x5+x4+x3+x+1→59→111011
P(x5)=x5+x4+x3+x2+1→61→111101
P(x6)=x6+x+1→67→1000011
P(x7)=x7+x3+1→137→10001001
P(x8)=x8+x4+x3+x2+1→285→100011101
P(x9)=x9+x4+1→1041→1000010001
P(x10)=x10+x3+1→2057→10000001001
2.1 Айналмалы кодтың құру әдістері
Айналмалы кодты құру үшін ақпарат символдары k түрінде екілік
Егер, бақылау символдарын код соңынан, яғни ақпарат символдарынан кейін
2\ алынған көбейтіндіні G(X) Xm жасаушы көпмүшелік P
G(X)Xm
______ =Q(X)+______
P(X)
Бөлу кезінде, бөліндіні Q(X) және қалдық R(X)табылады. \1\-теңдеуді P(X)-ке
F(x)=Q(x) P(x)=G(x)Xm + R(x)
Сондықтан, (2) теңдіктен айналмалы кодтар екі әдіспен құрылатыны көрінеді:
1/ екілік жүйедегі комбинацияны жасаушы көпмүшелікке көбейту;
2/ берілген кодты m дәрежелі бір мүшелікке көбейтіп,
Мысалы:
F(x)=G(x)Xm+R(x)=X4+X3+X+1→11010+1=11011
Бұл кодталған хабарда 11011 n =5, k= 4, m=
5-Кесте
1 а1
2 а2
3 а3
4 а4
5
6 а1О а2
7 а1О а3
8 а1О а4
9а2 О а3
10 а2О а4
11а3 О а4
12 а1 О а2 О а3
13 а2О а3 О а4
14а1 О а3 О а4
15а1 О а2 О а4
16а1 О а2 О а3 О а4
Айналмалы жылжу код комбинациясының Х-ке көбейтіндісінің нәтижесі болып табылады.
Код аралығы d=3 айналмалы коды
Бұл кодтар бірлік және екілік қателерді табады немесе бірлік
1/m- бақылаушы символдар санын таңдау
m- санын таңдаудың екі әдісі бар:
m=E` Log k(n+1);
m=E` Log2[ (k +1)+ E` Log2[ (k +1)];
Сөздің жалпы ұзындығы (3)- формуламен табылады. Ақпараттың ұзындығы белгілі
Е-үлкен бүтін сандарды жуықтау белгісі;
2/ Р(х)-жасаушы көпмүшелікті таңдау m=1;
Р (х1)- дәрежесі 1, бақылаушы символдардан кем болмауы керек.
3/ қосымша матрицаның элементтерін табу. Ол үшін бірден
а/қалдықтар саны ақпарат санына тең болуы керек;
б/қосымша матрицаға алынатын қалдықтардың салмағы табылатын қателер санынан кем
Осы екі шарттан, біздің соңына жазылатын нольдің саны табылады:
4/ жасаушы матрица құру;
Ол үшін, транспориланған бірлік матрица алынады және оның оң
5/ айналмалы кодтың барлық комбинацияларын табу.
Ол үшін жасаушы матрицаның қатарларындағы комбинацияларды модуль екі бойынша
Код аралығы d=4 айналмалы коды
Бұл кодтар бірлік, екілік, үштік қателерді таба алады немесе
1/ бақылаушы символдар санын таңдау
Бұл кодта d=3 кодына қарағанда бақылаушы символдар саны бірге
md=4=m d=3 +1
Егер бақылаушы символдар саны анықталса,онда,
md=4=1+Log 2(n+1)
2/ жасаушы көпмүшелікті таңдау.
Мұнда, екі мүшелік (n+1) барлық бірлік және үштік қателерді
Код аралығы айналмалы коды
Бұл кодтар кез-келген санды қателерді тауып және түзей алады.
1/ сөз ұзындығын таңдау.
Ол тақ сан болып келу керек. Ол үшін мынадай
Теңестіру үшін:
(2n –1)/g=n;
мұнда, n>0-бүтін сан, ал g-тақ сан, бөлген кезде
7=23-1=7
15= 24-1=5*3
31= 25-1=31
63= 26-1=7*3*3=21*3
127=27-1= 127
255= 28-1=17*5*3
511= 29-1= 73*7
1023=210-1= 31*11*3
2047=211-1= 89*23
4095=212-1= 3*3*5*7*13;
2/ код аралығын анықтау
Яғни, d=2S+1;
3/ жасаушы көпмүшелікті анықтау
Ол дәрежесі 2S-1-ге дейінгі ең төменгі, тақ болып келетін
P(x)=HOK[M1(x) M3(x)…M2s-1(x);
Ең кіші көпмүшеліктер санын анықтау
4/ Ең кіші көпмүшеліктер саны түзелетін қателер санына
L=S
5/ ең кіші L дәрежелі ең кіші көпмүшелікті
L дәрежелі ең кіші бүтін сан болса, онда
Бүтіндей n немесе ng бөлінеді, яғни, n= 2L-1=ng
Осыдан: L=h ;
6/ ең төменгі көпмүшелікті анықтау.
Көпмүшелікті кестеден жазылып алынған.
Мұнда БЧХ-тек қана ең үлкен көпмүшеліктерден құрылып қана қоймай,
6-кестеде көрсетілген.
6-кесте
M(x) Код комбинациясы түрінде жазылған әртүрлі дәрежедегі ең төменгі
N 2 3 4 5 6 7 8
M1(x) 111 1011 10011 100101 1000011 10001001 100011101
M3(x)
1101 11111 111101 1010111 10001111 101110111
M5(x)
111 110111 1100111 10011101 111110011
M7(x)
11001 101111 1001001 11110111 101101001
M9(x)
110111 1101 10111111 110111101
M11(x)
111011 1101101 11010101 111100111
M13(x)
10000011 100101011
7/ жасаушы көпмүшенің β дәрежесін анықтау (p β
мұнда, барлық ең төменгі көпмүшеліктерді тапқаннан кейін жасаушы көпмүшелікті
β≤1s=1L ;
8/ бақылаушы символдар санын анықтау
Сонымен, бақылаушы символдар саны m жасаушы көпмүшелік дәрежесіне
9 /ақпаратты символдар саны
мына тепе-теңдіктен анықталады.
Файр коды
Файр коды bs ұзындығын қателер бумасын түзетеді
Файр кодының жасаушы көпмүшелігі P(X)ф мына өрнектен анықталады
Р(Х)ф=P(X)(Xc-1)
Мұндағы,P(X)-Lдәрежелі келтірілмейтін көпмүшелік.
Кодты құру принципінен алынады
L=bs
C=bs+br-1
Бұл кезде с толық е санына бөлінбейді, мұндағы
l
E=2-1
(4) теңдеуге қарап, Р(Х) келтірілмейтін көпмүшелік кестеден таңдап алады,
n
кіші ортақ еселік сандарға тең, сол жағдайда ғана
N=HOK(e,c)
Бақылау символдардың саны
M=c+L
2.6 Файр кодын құру
Техникалық берілгендер және курстық жұмыстан алынған берілгендерге сәйкес Файрдың
С=3+4= 6, осыдан с= 6 деп алуға болады.
3
15-теңдеу бойынша e=2-1=7 аламыз. Көріп тұрғандай, с, е-ге толық
Бақылаушы разрядтар саны, 17-теңдеугдегі d және c мәндеріне қойып
16-сәйкес код ұзындығы мынаған тең: n=HOK (6,7)=42
3
3 КОДЕРДІҢ ЖӘНЕ ДЕКОДЕРДІҢ ФУНКЦИОНАЛДЫҚ СХЕМАЛАРЫ
3.1Кодердің функционалдық схемасы
Айналмалы кодты кодердің функционалдық схемасын таңдауды негіздеу үшін айналмалы
Яғни Xm бірмүшеге көбейту операциясы фактілі түрде бастапқы
Айналмалы кодтау кезіндегі негізгі операция –ол P(x) -ке бөлу.
Осы операцияны орындау үшін модуль 2 бойынша сумматтар арқылы
Жылжулы бөлгіште ұяшықтар санын (триггерлер) бөлгіш дәрежесімен анықтайды және
0 4
орнатылады. Біздің декодеріміз үшін P(x) бөлгішінің Х ,Х
Кілттерді басқару үшін Ткілт, Тцикл триггерлері; 4 және 15-ке
6-суретте келтірілген функционалды схема бойынша кодер жұмысын қарастырайық.
7-разрядты екілік кодтың тапсырма операциясын және оның визуализациясын орындау
Синхро –комбинациялы 8 разрядты екілік код қосқыштарға беріледі
«Жіберу» сигналы бойынша «Жіберу» кнопкасын басқан мезеттен
Жазылу «Т жіберу» триггерінен саналатын импульстің алдыңғы
Ығысушы регистр шығысынан бастап (регистрдің соңғы триггерінің шығысынан)
Бұл ақпараттар 3 регистрлердің кірістеріне түседі: бірінші регистр -
P(x)-ке бөлу үрдісі, яғни кодтау үрдісі секілді циклдің триггері
Тактілі импульстер бөлгішке түскен мезгілден бастап P(x)-ке бөлу үрдісі
«И» логикалы схемалар қолданылған.
Бұл жерде, шығысында кері байланыс бөлудің болып жатқанын, ал
схемада х бірмүшесіне көбейту болып жатқанын көрсетеді (жалпы
5-сурет
Схема келесідей жұмыс істейді. Жұмыстың басында К1 кілті 1
3.2 Декодердің функционалдық схемасы
Декодтау үрдісін бірнеше кезеңнен (циклден) тұратын құрастырушы ретінде ұсынуға
А/ кодталған комбинацияны құрастырушы ( белгілі) көпмүшеге бөлгеннен
Б/ Егер қалдық R(x)=0 болса, онда қабылдаған комбинацияда
В/ Егер қалдық болса, онда келесі процедуралар жүргізіледі:
1/ қалдықтың салмағы W есептелінеді және егер ол
2/ ЕгерW>S болса, онда бір символды солға циклді
3/ Егер бір символға циклді жылжытудан кейін W>S
7- суретте ұсынылған декодер жұмысын қарастырайық:
Декодердің құрылымдық схемасы келесі функционалды түйіндерден тұрады: берілген кодталған
Циклді кодтың комбинациясы байланыс линиясынан екі түйінге түседі: тактілі
Алдымен байланыс линиясынан бөлгішке және есте сақтаушы құрылғыға түсетін
15-тактіде бөлу қалдығы бөлгіш триггерлерінде жазылып қалады. Регистр қалдық
Санағыштың 0, 1, 2 шығыстары шығысында қате 2-ден
Нәтижесінде 15 тактіден кейін Тбөлгіш триггері «бірлік» күйде
Бөлу қалдық салмағы 2-ге тең болғанша жүреді. Бұл мезетте
Есте сақтау құрылғысы 15-тактіде толығымен толады, ал салыстыру сатысында
Тек қателі разрядтарды қалдықты «1 » жазылатындықтан қателі разрядтардың
Мысал 2: Айналмалы кодты декодтау қабылданған комбинацияны алдын-ала
Сонымен, декодер құралы бөлгіштің және есте сақтау құрылғысынан тұрады,
Енді, осы декодердің қалай жұмыс істейтінін қарастырайық. Сонымен қатар,
Есте сақтағыш құрылғы
8-сурет
Енді, осыған сәйкес бөлгіш пен есте сақтау құрылғысының әрбір
Алдымен, декодердің ауыстырылып қосу қағидасын түсіндіре кетейік.
Келіп түскен комбинация бір мезгілде есте сақтағыш құрылғыға да
Енді, бөлгішке келсек, онда жетінші тактіге дейін комбинация жазылады
0
Х 1+1=К О Х i
1
X1+1=X i
1
X1+1= Xi
3 2
X1+1=X i
4
X1+1=X i O Xi
5
X1+1=X i
6 5
X1+1=X i O Xi
7 7
X1+1=X iO Xi
Мұндағы К- кірістегі комбинация;
І - алдыңғы такт жағдайы; і+1-ағымдағы такт жағдайы;
і=0.. 14.
Айта кету керек, алғашқыда К1 кілті тұйықталған, К2-тұйықталмаған, К3-тұйықталған,
Он бесінші тактіде синдром (бөлгеннен кейін қалған
қалдық) регистрлердің ұяшықтарында жазылып тұрады. Бірақ, оның салмағы W=7
Соңында шыққан комбинацияны оңнан солға қарай оқу керек. Осы
7-Кесте-Бөлгіш үшін 1001' 1'0011101000 комбинациясы
Такт
№ Бөлінді Х0 Х1 Х2 Х3 Х4 Х5 Х6
1 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
2 0 0 1 0 0 0 0 0
3 1 0 0 1 0 0 0 0
4 1 1 0 0 1 0 0 0
5 0 1 1 0 0 1 0 0
6 0 0 1 1 0 0 1 0
7 1 0 0 1 1 0 0 1
8 1 1 0 0 1 1 0 0
9 1 0 1 0 0 0 1 1
10 0 0 0 1 0 1 0 0
11 1 0 0 0 1 0 1 0
12 0 1 0 0 0
0 1 0
13 0 0 1 0 0 0 1 0
14 0 1 0 1 0 1 0 0
15
1 1 0 1 1 1 1 1 7
І
1 1 1 0 0 1 0 0 7
ІІ
0 1 1 1 0 0 1 0 4
ІІІ
0 0 1 1 1 0 0 1 4
ІҮ
1 0 0 1 0 1 1 1 5
Ү
1 1 0 0 0 0 0 0 2
8-Кесте - ЕСҚ үшін 1001' 1'0011101000 комбинациясы
m k
Такт
№ Х0 Х1 Х2 Х3 Х4 Х5 Х6 Х7
Х0 Х1 Х2 Х3 Х4 Х5 Х6
ХҮ 0 0 0 1 0 1 1 1
0 0 1 1 0 0 1
1 1 0 0 0 1 0 1 1
1 0 0 1 1 0 0
2 0 1 0 0 0 1 0 1
1 1 0 0 1 1 0
3 0 0 1 0 0 0 1 0
1 1 1 0 0 1 1
4 1 0 0 1 0 0 0 1
0 1 1 1 0 0 1
5 1 1 0 0 1 0 0 0
1 0 1 1 1 0 0
Синдром 11000000
6 0 1 1 0 0 1 0 0
0 1 0 1 1 1 0
7 0 0 1 1 0 0 1 0
0 0 1 0 1 1 1
8 1 0 0 1 1 0 0 1
0 0 0 1 0 1 1
9 1 1 0 0 1 1 0 0
1 0 0 0 1 0 1
10 1 1 1 0 0 1 1 0
0 1 0 0 0 1 0
11 0 1 1 1 0 0 1 1
0 0 1 0 0 0 1
12 1 0 1 1 1 0 0 1
0 0 0 1 0 0 0
13 0 1 0 1 1 1 0 0
0 0 0 0 1 0 0
14 0 0
0 1 1 1 0
0 0 0 0 0 1 0
15 0 0 0 1 0 1 1 1
0 0 0 0 0 0 1
Сонымен, қорытындылай келе, декодер сынақтан өтті. Ол комбинацияның
Есте сақтау құрылғысына түскен синдромға келсек, ол бөлгіштің соңғы
4.КОДЕР ЖӘНЕ ДЕКОДЕРДІҢ ҚАҒИДАЛЫ СХЕМАЛАРЫН ІСКЕ АСЫРУ
4.1 Кодердің принципиалды схемасы
Принципиалды схема құрамында логикалы функцияның толық функционалды наборы
Серияларды таңдау автоматика және телемеханика кафедрасында бар элементтер
Кодер келесі функционалды түйіндерден тұрады: регистр- екілік сан беретін
Кодталған ақпараттырды есептеу және қалыптастыру үшін қажетті осы негізгі
А/бастапқы кодты беретін индикаторлар;
Б/қателіктер генераторы (искажений) байланыс линияларына қателіктерді жоятын және қателіктерді
В/қысқа импульстарды қалыптастырушы - Д17, Д18 (К 155
Г/қорек кернеу қоры - +5В, +9В.
Кодты қалыптастырмас бұрын бастапқы ақпаратты беру қажет. Бұл процедура
Кодтауды бастамас алдында барлық регистр және триггерлерді бастапқы күйіне
«Жазу»( «запись») кнопкасын басуды жібергеннен кейін Д10, Д11 регистрлері
Д12 регистріне синхрокомбинация санының коды түскен кезде санды компоратордың
«Т цикл» триггері «1» күйге орныққан соң генераторлардан
Ақпаратты ығыстыру шарасы бойынша және құрастыратын көпмүшеге бөлу
Бөгеуіл, қателі үрдісін имитациялау үшін қажетті кодталған ақпараттың «искажение»
Қателік генраторы келесі схемалардан тұрады: жазу регистрі-қателі (сбой) разрядтарды
Искажение үрдісі төменде көрсетілгендей орындалады: S 11 –S 18
Қосқыштағы «қателі» код Д20 регистрінің Д кірісіне
4.2Декодтердің принципиалды схемасын құру
Декодердің принципиалды схемасы ТТЛ элементтер негізінде даярланған К155, К555,
Циклды кодты декодтауды жүзеге асыру үшін келесі функционалды элементтер
Фронттарды жою мақсатында триггерлер, санағыштар және регистрлерге сенімді
Тектілі синхримпульстер клдталған ақпараттармен бірге байланыстық екі желілі линиясымен
Синхримпульстерді байланыс линиясымен бөлу үшін қалыптастырғыш схемасы қолданылады (транзистор
Триггердің бастапқы құрылғыштарын нөлдік күйге келтіруді қамтамасыздандыру үшін шығысында
Қоректің шинасы бойынша декодердің сенімді жұмысын қамтамасыздандыру үшін КМ-56
Декодердің электорлы принципиалды схемасы 7- бетте келтірілген және келесі
Енді декодердің принципиалды электрлі схема бойынша жұмысын қарастырайық:
Циклді кодтың комбинациясы кіріс қайысы ХР1 арқылы Л.С.- тен
15 такті аяқталысымен екілік санағыш (Д9) кірісінде 5 триггер
Д7.1 триггерін «1» күйге орнатқаннан кейін Д11 санағышынан кіріске
Бөлу қалдығы екі модуль бойынша осындылағышқа (Д2.1) түсу уақытынан
Осы уақыттан бастап жөнделген комбинацияларды (К- символдар) санау басталады.
Декодтау үрдісі екі режимде жүруі мүмкін: үздіксіз –қабылданған комбинацияны
К О Д Е Р Ж
Берілген программа Delphi 3 программалаудың интегралданған ортасында
Файлда справкаларды ыңғайлы оқу мақсатында код екі есе
Программаның негізгі бөлігі Ciko.pas (Ciko) файлда
Add: byte -екі символды 2 модулі бойынша қосуды жүргізу;
Sum: vec -екі сөзді 2 модулі бойынша
Ost: vec- S2 сөзін S1сөзіне бөлген
SifhL: vec -сол жаққа жылжу функциясы (айналмалы аңдымайды);
SifhL: vec -оң жаққа жылжу функциясы(айналмалы аңдымайды);
Coder-D=2(3) кездегі сөзді кодтауға арналған процедура.
Decoder-D=2(3) кездегі ақпаратты векторды декодтау үшін арналған процедура.
Берілген модульдің қалған процедуралары программаны безендіруге арналған.
Программаның екінші бөлігі BCH.PAS (BCH модуль )
Программада екі терезе бар: бірі Д=3(2) болғанда циклді кодтарды
Ары қарай сіз өзгерте алатын көпмүше құрағыш ұсынылған. «Кодтау»
«Декодтау» жазуын басу кезінде декодер кірісіне түскен векторын декодтау
«Программа туралы» жазуын басу кезінде ақпаратты терезе
«Бастапқылар» жазуын басу кезінде экранда теоретикалық бөлік
Берілген жағдайда программа жұмысы декодтау және кодтау үрдісі туралы
«БЧХ» кнопкасын басқаннан кейін программаның негізгі терезесі жоғалады және
Осы тереземен жұмыс қағидасы негізгі тереземен жұмыс істеуге ұқсас
Программадан шығу «программадан шығу» кнопкасы көмегімен немесе
Төмен декодтау және декодтау үрдісі үшін арналған
6 ЭКОНОМИКАЛЫҚ БӨЛІМ
6.1 Жалпы жағдай
Өндірістің тиімділігін арттырудың басты есептері болып ғылыми техникалық
Өнеркәсіпті автоматтандыра отыра жоғары сапаға, жылдамдыққа, алуан мөлшерлі затты
Электронды жүйелер өнеркәсіптің объектілерін бақылауда, күрделі технологиялық үрдістерді зерттеуді
Осы дипломдық жобада берілген құрылғыны орнатудың тиімділік есебін жүргізіп,
Тиімділік есепке барлық енгізілетін аппаратуралардың өзіндік құнын және құрылғыларды
Жобалаудағы шығын өлшеуіш ғылыми зерттеу өнімділігін және білікті конструкторлық
Экономикалық есептеулер
Технико-экономикалық есептеулердің мақсаты жобалау нәтижелерінің экономикалық біржүйелігін көрсетуден тұрады.
Жүйені жобалау үшін үлестіргіштер: жобалауға екі адам қатысады:
Жетекші жалақысы-38000 теңге;
Инженерлер жалақысы –20000 теңге;
Жжет = 38000*3= 114000 теңге;
2Жинж = 2х(20000*3 )= 120000 теңге;
Барлық жалақы-Жбарл = 114000+120000= 234000 теңге;
Барлық жалақыдан әлеуметтік салықтар келесідей табылады:
919*15= 13785
(13785-1378,5-919)= 11487
11487,5*6*0,2= 13785
[234000-13785*6-(23400-1378,5*6)]*0,15= (91290-9129)*0,15=12324,15
13785+12324,15= 26109,15
Монтаж –10%
Шм = 20807*0,10 = 2080 теңге
Мұндағы 20807 теңге құрылғыны жасаудағы материалға кеткен шығын 21-
10-Кесте-Сатылып алынған жабдықтар
Аталуы Шығын нормасы бір бұйымға Бағасы
теңге Жалпы
қосынды бағасы
К155 ЛА2
К155АА3
К155ЛА4
К155ЛИ1
К155М1
К155ЛП5
К155ИD3
К155ИЕ5
К155ТМ 8
К155ТМ 2
К155ИР 1
2.Транзисторлар
КТ 819Б
3.Диодтар
КД 819Б
4.Резисторлар
МЛТ-0,5
МЛТ-0,125
5.Конденсаторлар
К-50-6-1
6.Стабилитрондар
КС 156 Г
7.Кнопкалар
КМ1-І
КМ2-І
8.Тумблерлер
ТВ2-1
9.Трансформаторлар
ОСМ-0,063
10.Шам диоды
11.Сым
12Вилка
13.Гетенанс
14.Фольгаланған
шыны
15.Консух
16 Басқалары
Барлығы
1
4
1
1
3
2
1
2
8
2
5
1
4
4
51
2
1
1
2
1
1
400
300
250
200
200
500
350
350
150
200
100
300
100
150
150
75
400
80
80
50
500
400
1200
250
200
600
1000
350
700
1200
400
500
300
400
600
7650
150
400
80
160
50
10-Кесте жалғасы
Аталуы Шығын нормасы
бір бұйымға Бағасы
теңге Жалпы қосынды бағасы
11.Сым
12.Вилка
13.Гетенанс
14.Фольгаланған шыны
15.Консух
16.Басқалары
1,5м
1
2
0,22м
0,075 м2
1 250
10
250
300
100 375
100
250
300
100
Барлығы
20807
Монтажник жалақысы –9000 теңге
Жұмыс істейтін мерзімі 1 апта.
Мж= 9000х0,25= 2250 теңге
Әлеуметтік салық
С21=(2250-225) 0,2= 405 теңге
Сонымен, жалпы шығынды табамыз
Ш= Ж+М+Шм+Сә
Мұндағы Ж - жалпы жалақы;
М - материал құны;
Шм - монтаждық шығын;
Сә - әлеуметтік салық.
Сонда: Ш= 234000+2250+20807=
Берілген өңдеу телемеханикалық жүйенің құраушы бөлігі болып табылады. Сондықтан,
Қазіргі кезде байланыс сапасын жоғарылатуда және ақпаратты дубльдеуге
Жаңа технология, сонымен қатар микро ЭЕМ және компьютерлер базасында
7. ЕҢБЕКТІ ҚОРҒАУ
Қауіпті және зиянды өндірістік факторларын анализдеу
Берілген дипломдық жобада, телемеханикалық жүйелердегі байланыс сызықтарында болатын қателіктер
Барлық жабдықтардың қорек көзі 50 Гц жиілігі бар
А/ өндірістік бөлбедегі қолайсыз микроклиматтық жағдайларда, ол ауаның
Б/ жұмыс орынның дұрыс жарықтандырылмауынан, бөлмені жарықтандыратын приборларды
А\ Өндірістік бөлмеде жүрген адамдарға әр түрлі шулардың
Б\ ЦЭҚ операторының электр тогына түсу қаупі бар;
В\ Өрттің пайда болу қаупі бар, себебі ЦЭК
тізбегінде немесе басқару тізбегінде қысқа тұйықталу болуы мүмкін.
Айтылған электр тізбегінде ауаның үлкен ылғалдығымен немесе бөтен заттардың
Өте қауіпті факторлардың бірі – электр тогы. Адам денесінен
7.2 Қорғану жұмыстарын ұйымдастыру
ЦЭҚ-ты жақсы білетін және микроэлектронды есептеу техникасымен жұмыс
Кіріспе жұмыстары қауіпсіздік техника бөлмесінде өткізіледі, яғни, қауіпсіздік
Жұмыс орындағы нұсқаулар еңбекті қорғау бойынша жұмыс істеу тізбегімен
Нұсқаулар өзінің берілгені бойынша бастапқы, периодты және жоспардан тыс
Нұсқаулар
Бастапқы нұсқаулар кіріспе нұсқаулар, кезекті, кезектен
Өнеркәсіп бойынша белгіленген бұрынғы нұсқаулар барлық нұсқаулар
Жүргізілген нұсқаулар жауапкершілігі зертханашыға жүктеледі.
7.2.1.1 Жұмыс атқарушы мамандарды қауіпсіздіктен қамтамасыз
Оларға жататындар:
1\ электр қондырғыларында қауіпсіз жұмыс істеуді қамтамасыз ететін
2\ бұйрықты орындау жұмыстары;
3\ рұқсат етілу және жұмыс орынды дайындауға рұқсат
4\ жұмыс орнын дайындау;
5\ жұмыс кезінде бақылауды жүргізу;
6\ бір жұмыс орнынан басқаға ауыстыру;
7\жұмыстың аяқталуы.
Қызмет етуші және жөндеу жұмыскерлердің қауіпсіздігін қамтамасыз ететін техникалық
1/ коммутациялық аппаратардың өзіндік қосылуынан немесе жұмыс орнында
2/ коммутациялық аппаратураларды аралық басқару кілттерінде және қолмен
3/ ток жүргізуші бөліктеріндегі кернеудің барын, жоғын тексеру
4/ жерге ендіру жүргізу;
5/ ток өткізгіш бөліктеріндегі кернеуліктің барын, жоғын білу
Жоғарыда айтылған жұмыстармен қоса, келесі талаптар қойылады:
Еденнің қапталуына арнайы жұмыстар жүргізіледі, мысалы: еденді линолеуммен
Өрт болған жағдайда эвакуациялық жоспар болу.
Инструктаждар
Бастапқы инструктаждар, кезекті, кезектен тыс инструктаждар деп бөлінеді.
Өнеркәсіп боойынша белгіленген бұрынғы инструктаждар барлық инструктаждар
Жүргізілетін инструктаждау жауапкершілігі зертханашыға жүктеледі.
Техникалық қауіпсіздік шаралары
Басқару пунктінде жұмыс істейтін зертханалық жұмыс орнында және маңайында
А\ Жабдықтың, торанттың кабелін ток көзіне қосқанда, ажыратқанда
Б\ Құрылғының ток көзіне қосып қойып, қараусыз тастап
Торанттың кабельдік изоляциясы бұзылмауы үшін, ол қатты электр өткізбейтін
Басқару пунктіндегі барлық жабдықтар міндетті түрді жерге қосылған және
Техникалық жұмыстар
Электрлі токтан қорғану жағдайлары мен негізгі техникалық әдістеріне келесі
Қауіпсіздік шараларын таңдау келесі жағдайларға тәуелді: электр қондырғыны
Электр қондырғының кернеуі 1000 В болса және 1000
Жерге енгізу нейтралды 1000 В электр қондырғыларында нольдеу қолданылады.
Электрлі қауіпсіздікпен қамтамасыз ету
Электр токтан әсер алу ауырлығы бірқатар жағдайларға байланысты: ток
Электрлі қауіпсіздікпен қамтамасыз ету өлшеміне байланысты электр құрылғылардың кернеуі
Нейтралдау торабындағы кернеуі 1000 В электр қондырғылары; жерге ендірілген
ЦЭҚ-да тікелей жұмыс істеу кезіндегі адамның электр ток әсер
А/ басу құрылғының токты өткізетін бөлігінен, жерде тұрған
Б/ электр құрылғының ток өткізгіш бөлігінің біруақытта екі
В/ ЦЭҚ-тың металданған бөлігіне адамның таянған кездегі әсер
Өнеркәсіптегі электр қауіпсіздікті қамтамасыз ету электр жабдықтың құрылғысына
Жарықтандыруды есептеу
Зертханадағы жарықтандырудың екі түрі бар: табиғи және жасанды
Практиканың көрсетуі бойынша, еденнің және төбенің кірленуінен, терезелердің ластануынан
Қыздырушы шамдардың аз болуы салдарынан, зертханада газды разрядты төменгі
Берілген зертханадағы күндізгі жарық шамдары қолданылады. Көру қолайлығының
Басқару пунктінің өлшемдері 9х6х2,5. Онда бөлменің тереңдігі 1б=

Қатынасынан шыға ― = 2м аламыз.
2
h = 9,5м - жарықтық ағымды қолдану коэффиценті.
Кк =1,3 - қарама-қарсы қысым коэффиценті.
Z1 = 17,9 деп аламыз.
Қатынастан қорыта:
β
― = 2; ― =
n1
Мұндағы n1= 1,5 м шарттық нүктеден терезе
n1x 9x6xh0K31,59
S0 = ———————— = ——————— =
100%x1xZ1
Басқару пунктіндегі терезесі осы шартқа қанағаттанады. Табиғидан басқа басқару
Жасанды жарықтандыру есебі пайдалану коэффицент әдісімен жүргізіледі.
Еқ=200Пк қалыпты.
Есептеу үшін негізгі формула:
Z
NFA = EkxK3xSx—
n
Мұндағы
S - жарықтандырылатын беттің ауданы
Z - ең аз жарықталынудың орташа жарықтануға
Z = 1,1÷1,2
N - жарық шамдарының саны;
FA - бір жарық шамдағы сәулелік ағыны;
L - мәнді пайдалану коэффиценті;
Һ - мәнді пайдалану;
AxB
I =—— = (A+B)
h
Мұндағы А, В, Һ - жайдың бөлменің геометриялық өлшемі
I= 9x6/2(9x6)=1,8
Осыдан табамыз:
Sтаб = 50%, S каб =30%,
Жалпы сәулелік ағын:
200x1,5x54x1,2
FaN = ——―———— = 3640 Лм
2,25
Әрқайсысына 15420 Лм сәулелік ағыны бар ЛДН-40Н жарық шамдарын
8640
N = ———— = 6,68 ≈ 6
1520
Алты жарық шамдары сәулелік ағыны:
1520x6=9120 ЛМ береді
Алынған сәулелік ағын есептеуді 5,5% – ке арттырады.
Солайша,жасанды жарықтандыру терезеге перпендикуляр әр қатарға екі де үш
Микроклиматты ұстап тұру
Адамның жұмыс қабілеттілігінің өнімділік дәрежесі метеорологиялық жағдайлармен анықталады, яғни
Микроклиматтың параметрінің қолайлығынан адам жылу ыңғайлық күйде болады,
0
15 тен 25 С шектегі ауаның температурасы кезінде организмнің
Ауаның жеңіл қозғалысы (0,2 м/с) үшін кәдімгі температурада жақсы
11-Кесте-Аппаратты бөлмедегі жұмыс орынның температура нормасы, ылғалдылығы және ауа
Қоршаған ауаның темпера турасы Тиімді Қабылданған
Темпе ратура
0
С Ылғал дылық
% Ауаның жылдам дығы м/с
м/с Темпе ратура
0
С Ылғал дылық
% Ауаның жылдам дығы м/с
м/с
Суық кезде 20-22 40-60 0,2 18-22 50-70 0,3
Жылы кезде 20-25 40-60 0,5 18-28 50-70 0,3
Шулық әсерлер
Осы цифрлы электронды құрылғымыздың тұрған жерінде компьютерлер орналасуы мүмкін
Матрицалық басу құрылғыларымен жұмыс істейтін көп санды есептеу машиналары
Жекеше қорғану, ұйымшылды қорғанудың жеткіліксіз болған жағдайда қолданылады. Мысалы,
Жұмыс орындарында қабылданатын шу деңгейі 12-кестеде келтірілген.
12-Кесте-Дыбыс жиілігінің диапазоны қабылданған шу деңгейі.
Активті жүйелер үшін шу деңгейі, Дб Шудың орташа деңгейі
ГЦ 63 125 250 500 1000 2000 4000
83 74 68
Өрт қауіпсіздігі
Өрттерден және жарылыстардан болатын адамдарды қауіпсіздендіру, сонымен қатар олардан
Өртті болдырмау жүйесі, әрбір нақты объектілер үшін қарастырылады, яғни
6
ықтималдығы, жылына есептеу бойынша 10 аспауы керек.
Қысқа тұйықталудан болатын өрттер және жарылыстардың алдын алу үшін
Өрттің ошағын және өрттің бастапқы шөгінде оны өшіру
Алдын-ала жобаланған эвакуациялық шығыстарға сәйкес эвакуациялық жоспар болуы қажет.
Автоматты өрттің сигнализациялау жүйелері (АӨСЖ ) өрттің ошақтың болуын
Өрт шыққанда электр құрылғыны су мен көбінті және
Өрт шыққанда:
А/ Өртенген құрылғыны тоқтан ажырату керек;
Б/ Өрт жайлы хабарлау керек;
В/ Өртті қолда бар құралмен сөндіру керек;
Қ О Р Ы Т Ы Н Д Ы
Осы дипломды жобалауда айналмалы кодтың кодері мен декодері лабороториялық
Дипломдық жобаның берілгендеріне сай келе отырып барлық нұсқаулары, талаптары
Құрылғы интегралды микролсхемада К555 түрінде немесе қазіргі микроэлементті техникада
Эксплуатацияда құрылым құру мен пайдалану қарапайым және ыңғайлы. Индикацияға
Құрылымның жарыққа шығуы ғылыми-техникада көп жетістіктерге жетті. Соңғы уақыттарда
Ә Д Е Б И Е Т Т Е
Питерсон У., Уэлдон Э Коды исправляющие ошибки
Тутевич В.Н. Телемеханика – М.: Высшая школа, 1985
Шило В.Л. Популярные цифровые микросхемы М.: Металлургия, 1989
Агаханян Т.М. Интегральные микросхемы – М.: Высшая школа,
Тарабрин Б.В.,Лунин Л.Ф. Справочник по интегральным микросхемам – М.:
Варламов Р.Г. Компоновки ралиоэлектронной аппаратуры – М.: Советское радио,
Қосымша А
Function Add(gl, g2:byte):Byte;
Begin
// ” 2 модуль бойынша қосындылау” операциясын орындау үшін
If g 1=g2 then Add:=0 Else Add:=1
End;
Function Sum(g1,g2: Vec): Vec;
Var I : Byte;
Begin
// қосындылау операциясын орындау үшін арналған функция
For I:=1 to 20do Sum [i]:= Add(g1[i],g2[i]) End;
Function Sift L (g1: Vec): Vec; Var I :
Begin
// Бір разрядқа сол жаққа жылжыту операциясын орындау үшін
For I:=20 down tj 2 do
Sift L[i]=g1[I-1];
SiftL[1]:=0 End;
Function SiftR (g1: Vec): Vec; Var I: Byte;
Begin
Қосымша А
(жалғасы)
// Бір разрядқа оң жаққа жылжыту операциясын орындау үшін
// функция. Бұл кезде циклділік жойылады.
For I: =1to 19 do
SiftR [I]:=g1[I-1];
SiftR [20]:= 0
End;
Function Max N(g1: Vec): Byte;
Var I: Byte;
Begin
//1 орналасқан үлкен разряд нөмірін анықтау үшін арналған функция.
Max N:=0;
For I:=20 Downto 1 do
Ifg1[I]:=1 Then Begin Max N:=I;
Exit
End;
End;
Function Ost(g1,g2:Vec): Vec; Var I: Byte;
Begin
//шығысында g2-ді g1-ге бөлгендегі вектор-қалдықты кодтау үрдісіне қажет.
For I:=1to D+1 do Begin
If Max N(g1)< >D+1 Theng1: =SiftR (g1);
Қосымша А
(жалғасы)
Function W(g:Vec): Byte;
Var I, j: Byte;
Begin
//Қалдықты салмақты есептеу функциясы. Ол декодтау үрдісінде болатын //
J: = 0;
For I:= 1 to 20 do ifg [I]=1 thenj:
W: = j
End;
Procedure Tform 17 coder (Sender: TObject) ;
Var I: Byte;
Begin
//кодер процедурасы.
Errl.. Visible:= False;
Decod. Cursor :=cr HandPoint;
Decod.Hint:=’Енді сіз декодтауды жүргізе аласыз’
//Ары қарай берілгендерді нөлдей жүргізіледі.
For I:= 1 to 20 do Begin
Sourse [I]:=0;
Spring [I]:=0;
Vrem [I]:=0;
Vrem 2[I]:=0
End;
//Төменде берілгендерді жазу басталады.
Source [I]:=Str ToInt (R5.Caption);
Source [2]:=Str ToInt (R4.Caption);
Source [3]:=Str ToInt (R3.Caption);
Source [4]:=Str ToInt (R2.Caption);
Source [5]:=Str ToInt (R1.Caption);
Spring [I]:=Str ToInt (M5.Caption);
Spring [2]:=Str ToInt (M4.Caption);
Spring [3]:=Str ToInt (M3.Caption);
Spring [4]:=Str ToInt (M2.Caption);
Spring [5]:=Str ToInt (M1.Caption);
Қосымша А
(жалғасы)
Vrem2:= Source;
Vrem1:=Spring;
For I:=1 to D do Begin
Vrem2: = SiftL(Vrem2);
Vrem1: = SiftL(Vrem1) End;
Source:= Vrem2;
Spring:= Vrem 1;
Vrem2: = Ost(Vrem1, Vrm2);
For i := 1 to D do
Source [I]:= Add(Vrem2[I], Source[I]),
Vrem2:= Source;
Vrem1:= Spring;
Ko 1, Caption:= inttostr (Source[I0]);
For I:=1 to D do Begin
Vrem2: = SiftL(Vrem2);
Vrem1: = SiftL(Vrem1) End;
Source:= Vrem2;
Spring:= Vrem 1;
Vrem2: = Ost(Vrem1, Vrm2);
For i := 1 to D do
Source [I]:= Add(Vrem2[I], Source[I]),
Vrem2:= Source;
Vrem1:= Spring;
Ko 1, Caption:= inttostr (Source[I0]);
Ko 2, Caption:= inttostr (Source[9]);
Ko3.Caption:= inttostr (Source[8]);
Ko4.Caption:= inttostr (Source[7]);
Ko5.Caption:= inttostr (Source[6]);
Ko6Caption:= inttostr (Source[5]);
Ko7.Caption:= inttostr (Source[4]);
Ko8.Caption:= inttostr (Source[3]);
Ko9.Caption:= inttostr (Source[2]);
Ko10.Caption:= inttostr (Source[1]);
KoVІ.Caption:= Ko1.Caption;
KoV2.Caption:= Ko2.Caption;
KoV3.Caption:= Ko3.Caption;
KoV4.Caption:= Ko4.Caption;
KoV5.Caption:= Ko5.Caption;
KoV6.Caption:= Ko6.Caption;
KoV7.Caption:= Ko7.Caption;
KoV8Caption:= Ko8.Caption;
KoV9.Caption:= Ko9.Caption;
KoVІ0.Caption:= Ko10.Caption;
Vrem2C:= Vrem2;
End;
Procedure Tform1. Decoder (Sender: TObject);
Var I,j,Step,k: Byte;
Begin
//Ары қарай берілгендерді жазу басталады.
Қосымша А
(жалғасы)
I:=1 to 20 do Source [I]: = 0;
//Декодер процедурасы 7
If Decod. Cursor = erDefault hen Exit;
Source [I]: =StrToInt(KoV10.Caption);
Source [2]: =StrToInt(KoV9.Caption);
Source [3]: =StrToInt(KoV8.Caption);
Source [4]: =StrToInt(KoV7.Caption);
Source f5j: =StrToM (KoV6.Caption);
Source [6]: =StrToInt(KoV5.Caption);
I:=1 to 20 do Source [I]: = 0;
//Декодер процедурасы 7
If Decod. Cursor = erDefault hen Exit;
Source [I]: =StrToInt(KoV10.Caption);
Source [2]: =StrToInt(KoV9.Caption);
Source [3]: =StrToInt(KoV8.Caption);
Source [4]: =StrToInt(KoV7.Caption);
Source f5j: =StrToM (KoV6.Caption);
Source [6]: =StrToInt(KoV5.Caption);
Source [7]: =StrToInt(KoV4.Caption);
Source [8]: =StrToInt(KoV3.Caption);
Source [9]: =StrToInt(KoV2.Caption);
Source [10]: =StrToInt(KoV1.Caption);
Vrem2 : Source ;
Errl. Caption ‘Қате’
2 : k :=5
3 : k :=7
4 : k :=9
End;
J:- W(Ost(Vrem1, Vrem 2));
If j=0 Then Begin V yvod; exit End;
Errl. Visible:= True;
Slep:= 0;
Ifj< =(D-1)/2 Then Begin
Vrem2:= Sum( Vrem2, Ost(Vrem1, Vrem2)),
Vyvod;
Exit
End;
Repeat
Step:= Step+0;
Vrem2:= SiftL (Vrem2);
Vrem2[1]:= vrem 2[k+1] ; Vrem2[k+1]:=0 ;
J := W(Ost(Vrem1,Vrem2)) ;
ifj< =(D-1)/2 Then Begin
Vrem2:= Sum(Vrem2, Ost(Vrem1, Vrem2)); for I:= 1 to Step
Begin
Vrem2[k+1] :-Vrem2[1] ; Vrem2 := SiftR(Vrem2) ;
End ;
Қосымша А
(жалғасы)
J :=0 ;
End ;
If(Step=k) and (j 0) Then Begin
Errl. Caption;=’Жөнделмейтін қателік’
Exit;
End;until (j=0);
Vyvod;
End;
Қосымша Б
Program Cyclic _ Code;
Uses
Crt, _ CC3 1, _ Serv;
Var
m, mm: Move_ code;
p: Polinom;
r: Rest;
I, Main flag, From, Error : integer;
Switch: byte;
Key: Boolean;
Begin
Repeat
Key:= true;
Text Color (11);
Text Background(7);
Clrscr;
Set Window (24,10,45,14,2,’Негізгі меню’);
Switch: = GetMainMenuChoice;
Case Switch of
1: begin
About;
Readln;
Key:= False;
End;
2: begin
TextColor(0);
ClrScr;
Set Window (25,10,40,13,1,’Құру’);
Switch: = GetSubMenuChoice;
Қосымша Б
(жалғасы)
Case Switch of
1: begin
Text Background (0);
TextColor(15);
ClrScr;
Set window (1,1,79,24,2,’Демонстрация’);
TextColor (14);
Goto XҮ (2,2)
Init ( m, p, r, Main Flag);
Write(‘Ақпараттық полином’);
Text Color(2);
For I;=n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,3);
Write (Жасаушы полином’);
Text Color(13);
For I:= n1 down to 0 do
Write( p[i]);
Text Color(14);
Goto ХҮ(2,4);
Write (Модуль 2 бойынша қосындылау( F(x) + P(x)):’);
FxPx(m);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Textcolor (2);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,5);
Write(‘Қалдық:’);
Divizion(m,r,p,Mainflag);
TextColor(11);
For I:= n1 down to Main flag do
Write (r[i]);
Қосымша Б
(жалғасы)
Goto ХҮ(2,6);
Text Color(14);
Write(‘Жіберілетін полином’) ;
BildMoveCode(m,r,Mainflsg);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Text color (11);
Write (m[i]);
End;
Goto ХҮ(2,7);
Text Color(14);
Write(‘Қателік пайда болды...’);
Make Error(m, Error);
TextColor (9);
For I:= n down to 0 do
Begin
If(I=Error)then
Text Color(12);
Else
Text Color(9);
Write (m[i]);
End6
Goto ХҮ(2,8);
Text Color(14);
Write(‘Қателік түзетілді!
Text Color(9);
Сorrection(m, p, r);
For I:= n downto 0 do
Begin
If(I=Error)then
Text Color(10);
Else
Text Color(9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,9);
Write(‘Бастапқы полтном:
Decoder(m);
Text Color(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Key:=false;
End;
2: begin
Text Background (0);
Text Color(15);
ClrScr;
SetWindow(1,1,79,24,2,’Демонстрация’);
TextColor(14);
Goto ХҮ(2,2);
Init(m,p,r,MainFlag);
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;
Ifj< =(D-1)/2 Then Begin
Vrem2:= Sum( Vrem2, Ost(Vrem1, Vrem2)),
Vyvod;
Exit
End;
Repeat
Step:= Step+0;
Vrem2:= SiftL (Vrem2);
Vrem2[1]:= vrem 2[k+1] ; Vrem2[k+1]:=0 ;
J := W(Ost(Vrem1,Vrem2)) ;
ifj< =(D-1)/2 Then Begin
Vrem2:= Sum(Vrem2, Ost(Vrem1, Vrem2)); for I:= 1 to Step
Begin
Vrem2[k+1] :-Vrem2[1] ; Vrem2 := SiftR(Vrem2) ;
End ;
Қосымша А
(жалғасы)
J :=0 ;
End ;
If(Step=k) and (j 0) Then Begin
Errl. Caption;=’Жөнделмейтін қателік’
Exit;
End;until (j=0);
Vyvod;
End;
Қосымша Б
Program Cyclic _ Code;
Uses
Crt, _ CC3 1, _ Serv;
Var
m, mm: Move_ code;
p: Polinom;
r: Rest;
I, Main flag, From, Error : integer;
Switch: byte;
Key: Boolean;
Begin
Repeat
Key:= true;
Text Color (11);
Text Background(7);
Clrscr;
Set Window (24,10,45,14,2,’Негізгі меню’);
Switch: = GetMainMenuChoice;
Case Switch of
1: begin
About;
Readln;
Key:= False;
End;
2: begin
TextColor(0);
ClrScr;
Set Window (25,10,40,13,1,’Құру’);
Switch: = GetSubMenuChoice;
Қосымша Б
(жалғасы)
Case Switch of
1: begin
Text Background (0);
TextColor(15);
ClrScr;
Set window (1,1,79,24,2,’Демонстрация’);
TextColor (14);
Goto XҮ (2,2)
Init ( m, p, r, Main Flag);
Write(‘Ақпараттық полином’);
Text Color(2);
For I;=n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,3);
Write (Жасаушы полином’);
Text Color(13);
For I:= n1 down to 0 do
Write( p[i]);
Text Color(14);
Goto ХҮ(2,4);
Write (Модуль 2 бойынша қосындылау( F(x) + P(x)):’);
FxPx(m);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Textcolor (2);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,5);
Write(‘Қалдық:’);
Divizion(m,r,p,Mainflag);
TextColor(11);
For I:= n1 down to Main flag do
Write (r[i]);
Қосымша Б
(жалғасы)
Goto ХҮ(2,6);
Text Color(14);
Write(‘Жіберілетін полином’) ;
BildMoveCode(m,r,Mainflsg);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Text color (11);
Write (m[i]);
End;
Goto ХҮ(2,7);
Text Color(14);
Write(‘Қателік пайда болды...’);
Make Error(m, Error);
TextColor (9);
For I:= n down to 0 do
Begin
If(I=Error)then
Text Color(12);
Else
Text Color(9);
Write (m[i]);
End6
Goto ХҮ(2,8);
Text Color(14);
Write(‘Қателік түзетілді!
Text Color(9);
Сorrection(m, p, r);
For I:= n downto 0 do
Begin
If(I=Error)then
Text Color(10);
Else
Text Color(9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,9);
Write(‘Бастапқы полтном:
Decoder(m);
Text Color(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Key:=false;
End;
2: begin
Text Background (0);
Text Color(15);
ClrScr;
SetWindow(1,1,79,24,2,’Демонстрация’);
TextColor(14);
Goto ХҮ(2,2);
Init(m,p,r,MainFlag);
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
Key: Boolean;
Begin
Repeat
Key:= true;
Text Color (11);
Text Background(7);
Clrscr;
Set Window (24,10,45,14,2,’Негізгі меню’);
Switch: = GetMainMenuChoice;
Case Switch of
1: begin
About;
Readln;
Key:= False;
End;
2: begin
TextColor(0);
ClrScr;
Set Window (25,10,40,13,1,’Құру’);
Switch: = GetSubMenuChoice;
Қосымша Б
(жалғасы)
Case Switch of
1: begin
Text Background (0);
TextColor(15);
ClrScr;
Set window (1,1,79,24,2,’Демонстрация’);
TextColor (14);
Goto XҮ (2,2)
Init ( m, p, r, Main Flag);
Write(‘Ақпараттық полином’);
Text Color(2);
For I;=n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,3);
Write (Жасаушы полином’);
Text Color(13);
For I:= n1 down to 0 do
Write( p[i]);
Text Color(14);
Goto ХҮ(2,4);
Write (Модуль 2 бойынша қосындылау( F(x) + P(x)):’);
FxPx(m);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Textcolor (2);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,5);
Write(‘Қалдық:’);
Divizion(m,r,p,Mainflag);
TextColor(11);
For I:= n1 down to Main flag do
Write (r[i]);
Қосымша Б
(жалғасы)
Goto ХҮ(2,6);
Text Color(14);
Write(‘Жіберілетін полином’) ;
BildMoveCode(m,r,Mainflsg);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Text color (11);
Write (m[i]);
End;
Goto ХҮ(2,7);
Text Color(14);
Write(‘Қателік пайда болды...’);
Make Error(m, Error);
TextColor (9);
For I:= n down to 0 do
Begin
If(I=Error)then
Text Color(12);
Else
Text Color(9);
Write (m[i]);
End6
Goto ХҮ(2,8);
Text Color(14);
Write(‘Қателік түзетілді!
Text Color(9);
Сorrection(m, p, r);
For I:= n downto 0 do
Begin
If(I=Error)then
Text Color(10);
Else
Text Color(9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,9);
Write(‘Бастапқы полтном:
Decoder(m);
Text Color(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Key:=false;
End;
2: begin
Text Background (0);
Text Color(15);
ClrScr;
SetWindow(1,1,79,24,2,’Демонстрация’);
TextColor(14);
Goto ХҮ(2,2);
Init(m,p,r,MainFlag);
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
End;
Goto ХҮ(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;
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
End;
Goto ХҮ(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;
Ifj< =(D-1)/2 Then Begin
Vrem2:= Sum( Vrem2, Ost(Vrem1, Vrem2)),
Vyvod;
Exit
End;
Repeat
Step:= Step+0;
Vrem2:= SiftL (Vrem2);
Vrem2[1]:= vrem 2[k+1] ; Vrem2[k+1]:=0 ;
J := W(Ost(Vrem1,Vrem2)) ;
ifj< =(D-1)/2 Then Begin
Vrem2:= Sum(Vrem2, Ost(Vrem1, Vrem2)); for I:= 1 to Step
Begin
Vrem2[k+1] :-Vrem2[1] ; Vrem2 := SiftR(Vrem2) ;
End ;
Қосымша А
(жалғасы)
J :=0 ;
End ;
If(Step=k) and (j 0) Then Begin
Errl. Caption;=’Жөнделмейтін қателік’
Exit;
End;until (j=0);
Vyvod;
End;
Қосымша Б
Program Cyclic _ Code;
Uses
Crt, _ CC3 1, _ Serv;
Var
m, mm: Move_ code;
p: Polinom;
r: Rest;
I, Main flag, From, Error : integer;
Switch: byte;
Key: Boolean;
Begin
Repeat
Key:= true;
Text Color (11);
Text Background(7);
Clrscr;
Set Window (24,10,45,14,2,’Негізгі меню’);
Switch: = GetMainMenuChoice;
Case Switch of
1: begin
About;
Readln;
Key:= False;
End;
2: begin
TextColor(0);
ClrScr;
Set Window (25,10,40,13,1,’Құру’);
Switch: = GetSubMenuChoice;
Қосымша Б
(жалғасы)
Case Switch of
1: begin
Text Background (0);
TextColor(15);
ClrScr;
Set window (1,1,79,24,2,’Демонстрация’);
TextColor (14);
Goto XҮ (2,2)
Init ( m, p, r, Main Flag);
Write(‘Ақпараттық полином’);
Text Color(2);
For I;=n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,3);
Write (Жасаушы полином’);
Text Color(13);
For I:= n1 down to 0 do
Write( p[i]);
Text Color(14);
Goto ХҮ(2,4);
Write (Модуль 2 бойынша қосындылау( F(x) + P(x)):’);
FxPx(m);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Textcolor (2);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,5);
Write(‘Қалдық:’);
Divizion(m,r,p,Mainflag);
TextColor(11);
For I:= n1 down to Main flag do
Write (r[i]);
Қосымша Б
(жалғасы)
Goto ХҮ(2,6);
Text Color(14);
Write(‘Жіберілетін полином’) ;
BildMoveCode(m,r,Mainflsg);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Text color (11);
Write (m[i]);
End;
Goto ХҮ(2,7);
Text Color(14);
Write(‘Қателік пайда болды...’);
Make Error(m, Error);
TextColor (9);
For I:= n down to 0 do
Begin
If(I=Error)then
Text Color(12);
Else
Text Color(9);
Write (m[i]);
End6
Goto ХҮ(2,8);
Text Color(14);
Write(‘Қателік түзетілді!
Text Color(9);
Сorrection(m, p, r);
For I:= n downto 0 do
Begin
If(I=Error)then
Text Color(10);
Else
Text Color(9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,9);
Write(‘Бастапқы полтном:
Decoder(m);
Text Color(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Key:=false;
End;
2: begin
Text Background (0);
Text Color(15);
ClrScr;
SetWindow(1,1,79,24,2,’Демонстрация’);
TextColor(14);
Goto ХҮ(2,2);
Init(m,p,r,MainFlag);
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
End;
Goto ХҮ(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;
End;
Goto ХҮ(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;
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
End;
Goto ХҮ(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;
Ifj< =(D-1)/2 Then Begin
Vrem2:= Sum( Vrem2, Ost(Vrem1, Vrem2)),
Vyvod;
Exit
End;
Repeat
Step:= Step+0;
Vrem2:= SiftL (Vrem2);
Vrem2[1]:= vrem 2[k+1] ; Vrem2[k+1]:=0 ;
J := W(Ost(Vrem1,Vrem2)) ;
ifj< =(D-1)/2 Then Begin
Vrem2:= Sum(Vrem2, Ost(Vrem1, Vrem2)); for I:= 1 to Step
Begin
Vrem2[k+1] :-Vrem2[1] ; Vrem2 := SiftR(Vrem2) ;
End ;
Қосымша А
(жалғасы)
J :=0 ;
End ;
If(Step=k) and (j 0) Then Begin
Errl. Caption;=’Жөнделмейтін қателік’
Exit;
End;until (j=0);
Vyvod;
End;
Қосымша Б
Program Cyclic _ Code;
Uses
Crt, _ CC3 1, _ Serv;
Var
m, mm: Move_ code;
p: Polinom;
r: Rest;
I, Main flag, From, Error : integer;
Switch: byte;
Key: Boolean;
Begin
Repeat
Key:= true;
Text Color (11);
Text Background(7);
Clrscr;
Set Window (24,10,45,14,2,’Негізгі меню’);
Switch: = GetMainMenuChoice;
Case Switch of
1: begin
About;
Readln;
Key:= False;
End;
2: begin
TextColor(0);
ClrScr;
Set Window (25,10,40,13,1,’Құру’);
Switch: = GetSubMenuChoice;
Қосымша Б
(жалғасы)
Case Switch of
1: begin
Text Background (0);
TextColor(15);
ClrScr;
Set window (1,1,79,24,2,’Демонстрация’);
TextColor (14);
Goto XҮ (2,2)
Init ( m, p, r, Main Flag);
Write(‘Ақпараттық полином’);
Text Color(2);
For I;=n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,3);
Write (Жасаушы полином’);
Text Color(13);
For I:= n1 down to 0 do
Write( p[i]);
Text Color(14);
Goto ХҮ(2,4);
Write (Модуль 2 бойынша қосындылау( F(x) + P(x)):’);
FxPx(m);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Textcolor (2);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,5);
Write(‘Қалдық:’);
Divizion(m,r,p,Mainflag);
TextColor(11);
For I:= n1 down to Main flag do
Write (r[i]);
Қосымша Б
(жалғасы)
Goto ХҮ(2,6);
Text Color(14);
Write(‘Жіберілетін полином’) ;
BildMoveCode(m,r,Mainflsg);
Text Color(9);
For I:= n1 down to 0 do
Begin
If(I < n1) then Text color (11);
Write (m[i]);
End;
Goto ХҮ(2,7);
Text Color(14);
Write(‘Қателік пайда болды...’);
Make Error(m, Error);
TextColor (9);
For I:= n down to 0 do
Begin
If(I=Error)then
Text Color(12);
Else
Text Color(9);
Write (m[i]);
End6
Goto ХҮ(2,8);
Text Color(14);
Write(‘Қателік түзетілді!
Text Color(9);
Сorrection(m, p, r);
For I:= n downto 0 do
Begin
If(I=Error)then
Text Color(10);
Else
Text Color(9);
Write (m[i]);
End;
Text Color(14);
Goto ХҮ(2,9);
Write(‘Бастапқы полтном:
Decoder(m);
Text Color(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
Key:=false;
End;
2: begin
Text Background (0);
Text Color(15);
ClrScr;
SetWindow(1,1,79,24,2,’Демонстрация’);
TextColor(14);
Goto ХҮ(2,2);
Init(m,p,r,MainFlag);
Write( ‘Ақпараттық полином:
TextColor(2);
For I:= n downto 0 do
Begin
If(I < n-n1+1) then Text color (9);
Write (m[i]);
End;
TextColor(14);
Goto ХҮ(2,3);
Write(‘Жасаушы полином:
TextColor(13);
For I:= n downto 0 do
Write (p[i]);
TextColor(14);
Goto ХҮ(2,4);
Write( ‘Көбейту нәтижесі:
BildMoveCodeMultiplication(m);
TextColor(9);
For I:= n downto 0 do
Write (m[i]);
Goto ХҮ(2,5);
TextColor(14);
Write(‘Қателік пайда болды...
Make Error(m,Error);
TextColor(9);
For I:= n downto 0 do
Begin
If(I=Error)then
TextColor(12);
Else
TextColor(9);
Write (m[i]);
End;
Goto ХҮ(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;




Скачать


zharar.kz