Завадостійке кодування на основі циклічних кодів

2. В середовищі Visual Studio 2008 на мові програмування C#, розроблено програмне забезпечення, яке дозволяє виконувати обчислення СRC8 та СRC32 табличним способом.

3. Тестування програми показало, що навіть короткі поліноми здатні виявляти значні зміни файлів, що для кодів, які виправляють помилки вкрай важко.

4 Економічна частина

Створення нової програми передбачає розрахунок економічного ефекту Завадостійке кодування на основі циклічних кодів від впровадження програмного продукту. Нова розробка виновата бути вигідною не тільки для виробника, а й для споживача, так як придбавши її він сподівається зменшити витрати часу та ресурсів.

Для того щоб оцінити економічний ефект в економічній частині потрібно розрахувати:

- кошторис витрат на розробку програмного продукту;

- виробничу собівартість матеріального носія з програмним продуктом Завадостійке кодування на основі циклічних кодів;

- ціну реалізації матеріального носія з записаним програмним продуктом;

- чистий прибуток, який отримає розробник протягом 1-го року від реалізації матеріальних носіїв з новим програмним продуктом;

- експлуатаційні витрати у споживача, пов'язані з використанням нового програмного продукту;

- річний економічний ефект на експлуатаційних витратах для споживача при використанні нового програмного продукту;

- річний Завадостійке кодування на основі циклічних кодів економічний ефект на ціні для споживача при придбанні нового програмного продукту

- термін окупності витрат для виробника.

4.1 Розрахунок кошторису витрат на розробку програмного продукту Кошторис витрат на розробку даного програмного продукту включає розрахунок таких основних статей витрат:

Заробітна плата визначається за формулою:

, грн., (4.1)

де: М - місячний посадовий оклад Завадостійке кодування на основі циклічних кодів розробника, грн.

Тр - число робочих днів в місяці (Тр=22),

t - число днів роботи розробника.

Розрахунки занесемо до таблиці 4.1.

Таблиця 4.1-Заробітна плата

Найменування посади

Місячний посадовий оклад, грн.

Оплата за робочий денек, грн.

Число днів роботи

Витрати на заробітну плату, грн.

Інженер-програміст

2000,00

90,90

22

2000,00

Всього

2000,00

Додаткова заробітна плата Здод всіх розробників яки приймали участь в розробці нового технічного Завадостійке кодування на основі циклічних кодів рішення розраховується як 10 - 12 % від основної заробітної плати робітників.

Здод = Ндод Зр [грн.], (4.2)

де Ндод - норма нарахування додаткової заробітної плати.

Здод = 20000,10 =200,00 (грн.).

Нарахування на заробітну плату Зн у 2010 році складають 37% від суми основної та додаткової заробітної плати розробників та робітників

Зн = Нзп ( Зо+Зд) (4.3)

де, Нзп - процент нарахування на Завадостійке кодування на основі циклічних кодів заробітну плату.

Зн = 0,37(2000,00+200,00)=814,00 (грн.)

Амортизаційні відрахування можуть бути розраховані за формулою:

грн., (4.4)

де: Ц - вартість обладнання,

На - річна норма амортизації,

Т - термін використання компьютер'ютера, цілі місяці.

Таблиця 4.2 - Амортизаційні відрахування

Найменування обладнання

Балансова вартість, грн.

Норма амортизації, %

Термін використання, міс.

Величина амортизаційних відрахувань, грн.

1

Компьютер'ютер

4000

60

1

200,00

Всього:

200,00

Витрати на матеріали розраховуються за формулою:

М Завадостійке кодування на основі циклічних кодів = HiЦiKі - BiЦв (4.5)

де Hi - кількість і-го виду матеріалів;

Кі - коефіцієнт тpанспоpтних витрат, Ктp=1,1...1,15

Ці - ціна одиниці вимірювання і-го виду матеріалів;

Ві - величина відходів і-го виду матеріалів;

Цв - ціна одиниці вимірювання відходів і-го виду матеріалів;

n - кількість видів матеріалів.

Витрати на матеріали, що були використані на Завадостійке кодування на основі циклічних кодів розробку програмного продукту зведені до таблиці 4.3.

Таблиця 4.3 - Витрати на матеріали, що були використані на розробку програмного продукту

Найменування матеріалу

Одиниці виміру

Ціна, грн.

Витрачено

Вартість витрачених матеріалів, грн.

Папір

шт.

0,05

100

5,00

Компакт диск

шт.

5

1

5,0

Всього

10,00

Витрати на матеріали з урахуванням транспортних витрат становлять:

М = 10,00·1.1 =11,00 грн.

Витрати на електроенергію можна розрахувати за такою формулою:

Ве Завадостійке кодування на основі циклічних кодів=В·П·ФКп грн. , (4.6)

де: В - вартість 1кВт - години електроенергії ( В=0,72 грн/кВт).

П - установлена потужність обладнання, кВт. П=0,3кВт/год

Ф - фактична кількість годин роботи компьютер'ютера при створенні програмного продукту - 40 год.

Кп - коефіцієнт використання потужності Кп = 0,5

Ве = 0,74 0,3 150 0,5 = 4,44 грн.

Інші витрати складають 200 % від основної заробітної платні :

Ів = 2000· 2 = 4000,00 (грн.)

Загальні Завадостійке кодування на основі циклічних кодів витрати на розробку програмного продукту становитимуть суму всіх попередніх витрат:

В=Зо+Здод+Нзп+А+М+Ве+І (4.7)

В =2000,00+200,00+814,00+125,00+11,00+4,40+4000,00 = 7229,40 грн.

4.2 Розрахунок собівартості матеріального носія з програмним продуктом Розрахунок виробничої собівартості одиниці продукції передбачає визначення таких статей витрат:

Витрати на комплектуючі:

(4.8)

де Ні - кількість комплектуючих і-го виду, шт.;

Ці Завадостійке кодування на основі циклічних кодів - покупна ціна комплектуючих і-го виду, [грн.];

Кi - коефіцієнт транспортних витрат, Кі = 1,2;

n - кількість видів матеріалів.

Витрати на комплектуючі представлені в таблиці 4.2

Витрати на матеріали, що були використані на розробку програмного продукту зведені до таблиці 4.3.

Таблиця 4.4 - Витрати на комплектуючі

Найменування матеріалу

Одиниці виміру

Ціна,грн.

Витрачено

Вартість витрачених матеріалів, грн.

Компакт диск

шт.

4,5

1

4,50

Всього

4,50

Витрати на Завадостійке кодування на основі циклічних кодів комплектуючі з урахуванням транспортних витрат становлять:

К = 4,50·1.1 =4,95 грн.

Витрати на силову електроенергію розраховуємо за формулою:

, (4.9)

де В - вартість 1 кВт - години електроенергії - 0,7 грн./кВт.;

П - установлена потужність компьютер'ютера з додатковими приладами - 0,5кВТ;

Ф - фактична кількість годин роботи компьютер'ютера з додатковими приладами, необхідна для запису програмного продукту Завадостійке кодування на основі циклічних кодів - 1 година;

Кп - коефіцієнт використання потужності.

Кп =0,6.

Ве =0,74·0,5·1·0,6=0,22 грн.

Основна заработная плата оператора розраховується за формулою:

(4.10)

де ti -- норма часу (трудомісткість) на виконання необхідної технологічної операції (запис програми), 1 годин;

n -- число робіт по видах та розрядах-1,

Кс -- коефіцієнт співвідношень, Кс =1,3;

Сі -- погодинна тарифна ставка оператора, який виконує встановлення (запис) програми, Сі Завадостійке кодування на основі циклічних кодів визначається за формулою:

(4.11)

де Мн - мінімальна місячна оплата праці, 840 грн;

Кі -- тарифний коефіцієнт робітника відповідного розряду та професії;

Тр -- число робочих днів в місяці - 22;

Тзм -- тривалість зміни, Тзм = 8 годин.

Сі=(840·1,73)/(8·22) = 8,25 грн./год.

Зр = 1·8,25 ·1,3 = 10,72 грн.

Додаткова заробітна плата оператора розраховується як 12% від основної заробітної плати робітників:

Здод= 10,72·0,12=1,28 грн.

Нарахування на Завадостійке кодування на основі циклічних кодів заробітну плату у 2010 р. - 37 %:

Знар= (10,72+1,28) ·0,37=4,44 грн.

Вартість інтелектуальної власності, тобто це ті кошти, які планує отримати розробник від реалізації кожного матеріального носія з записаним програмним продуктом, розраховуємо за формулою:

Ів = Ір·к (4.12)

де Ір - кошти, які буде отримувати розробник від реалізації кожного матеріального

носія з записаним програмним продуктом Завадостійке кодування на основі циклічних кодів - 100 грн.;

к - коефіцієнт, який враховує нарахування на заробітну плату - 1,37.

І= 100·1,37=137,00 грн.

Загальновиробничі витрати для ЕОМ становлять 270% від основної заробітної плати оператора:

ЗВ =10,72·2,7= 28,94 грн

Повна собівартість матеріального носія із записаним програмним продуктом - це сума всіх статей витрат:

S =4,95+0,22+10,72+1,28+4,44+137,00+28,94 = 187,55 грн

4.3 Розрахунок ціни реалізації матеріального носія із записаним програмним продуктом

Ціну реалізації матеріального носія з програмним продуктом Завадостійке кодування на основі циклічних кодів можна розрахувати за формулою:

(4.13)

де S - повна собівартість виробу, грн.;

Р - норматив рентабельності , Р = 30 %;

W - ставка податку на додану вартість, % (у 2010 році W = 20%).

Цр = 187,55 ·1,3·1,2 = 292,57 (грн.)

4.4 Розрахунок прибутку для виробника Величина незапятнанного прибутку, який виробник зможе отримати за рік розраховується за формулою (4.14) де Цр - ціна реалізації виробу 292,57 грн.; МР Завадостійке кодування на основі циклічних кодів - вартість матеріальних та інших ресурсів, які були придбані виробником для виготовлення матеріального носія з програмним продуктом (МР=(0,1…0,2)*Цр) S- повна собівартість вибору - 187,55 грн.; f - з ставка ПДВ, 20%; q- норматив,який визначає величину адміністративних витрат, витрат на збут і інші операційні витрати (q =5…10%) h - ставка податку на прибуток - 25%.; N Завадостійке кодування на основі циклічних кодів - число матеріальних носіїв, які планується реалізувати за рік. = 10338,3 грн. 4.5 Розрахунок експлуатаційних витрат у споживача, пов'язаних з використанням програмного продукту

Обслуговуючий персонал даного програмного продукту це один інженер з місячним посадовим окладом 1500,00 грн.

грн./рік, (4.15)

де: 12 - число місяців,

М - місячний посадовий оклад,

в - толика часу, яку витрачає працівник на Завадостійке кодування на основі циклічних кодів обслуговування виробу в загальному часі своєї роботи. в=0,001.

Зобс = 12·1500,00·0,001 = 18,00 грн./рік.

Додаткова заробітна плата обслуговуючого персоналу:

Здод = 18,00· 10% = 1,80 грн./рік.

Нарахування на заробітну плату Нзп складають 37% від суми основної та додаткової зарплати.

Нзп= (Зобс+Здод)·0,37 (4.16)

Нзп= (18,00+1,80) · 0,37 = 7,32 (грн./рік)

Амортизаційні відрахування для програмного продукту.

Українські стандарти припускають амортизацію будь-яких видів нематеріальних активів Завадостійке кодування на основі циклічних кодів. У світовій практиці остання тенденція така, що нематеріальні активи з невизначеним строком корисного використання (активи, стосовно яких неможливо визнати, скільки часу вони будуть генерувати грошові надходження від їхнього використання) не амортизуються, тому що якщо такі активи амортизувати, то їхня залишкова вартість у балансі буде зменшуватися, що може не відповідати Завадостійке кодування на основі циклічних кодів правдивому положенню справ.

Нарахування амортизації нематеріальних активів здійснюється протягом строчку їхнього корисного використання, що встановлюється підприємством при визнанні цього об'єкта активом (при зарахуванні на баланс), але не більше 20 років.

Строком корисного використання (експлуатації) вважається очікуваний період часу, протягом якого необоротні активи будуть використовуватися підприємством або Завадостійке кодування на основі циклічних кодів з їхнім використанням буде виготовлений (виконаний) очікуваний підприємством обсяг продукції (робіт, послуг).

Способ амортизації нематеріального активу обирається підприємством самостійно, виходячи з мозгов одержання майбутніх економічних вигід. Якщо такі умови визначити неможливо, то амортизація нараховується із застосуванням прямолінійного способу.

Розрахунки проводимо за формулою:

грн./рік, (4.17)

де: Ц - вартість програмного продукту, Ц Завадостійке кодування на основі циклічних кодів=292,57 грн.

Т - термін використання програмного продукту - 10р.

грн./рік.

Інші витрати приймаємо, як 5% від суми усіх попередніх витрат

І=0,05(18,00+1,80+7,32+29,25) = 2,81 (грн./рік)

Знайдемо суму витрат за всіма попередніми статтями

Е2 =18,00+1,80+7,32+29,25+2,81= 59,18 (грн./рік)

4.6 Розрахунок умовних обсягів робіт, який може бути виконаний із застосуванням нового програмного продукту Обсяги робіт можна розрахувати за формулами: та Завадостійке кодування на основі циклічних кодів (4.18) де Q1 - обсяг робіт при застосуванні існуючого програмного продукту, умовних одиниць; Q2 - обсяг робіт при застосуванні нового програмного продукту, умовних одиниць; F - ефективний фонд часу роботи за рік, для однозмінної роботи
F = 1800 годин; - толика часу, який витрачає працівник на виконання конкретних робіт з застосуванням даного програмного продукту в загальному часі Завадостійке кодування на основі циклічних кодів своєї роботи; ti - час виконання непосредственної функції або роботи. Q1 = 1800 • 60 • 0,01/1 = 1080 [функцій/хв], Q2 = 1800 • 60 • 0,01/0,5 = 2160 [функцій/хв]. 4.7 Розрахунок річного економічного ефекту від впровадження нового програмного продукту

Розрахунок річного економічного ефекту проходить за формулою:

(грн./рік) (4.19)

де: Е1 - експлуатаційні витрати при використанні старенького програмного продукту;

Е2 - експлуатаційні витрати з використанням нового Завадостійке кодування на основі циклічних кодів програмного продукту;

Q1 - обсяг робіт з застосуванням існуючого програмного продукту;

Q2 - обсяг робіт при застосуванні нового програмного продукту.

Будемо вважати, що експлуатаційні витрати аналогу дорвейівнюють експлуатаційним витратам аналогу, які були прогнозовані в техніко-економічному обґрунтуванні, тобто

Е1=67,06 грн.

(грн./рік).

Отже споживач отримає економічний ефект на експлуатаційних витратах Завадостійке кодування на основі циклічних кодів в розмірі 378,00 грн./рік.

4.8. Розрахунок для споживача економічного ефекту на ціні від придбання нового програмного продукту Ц=Ц1-Ц2 (4.20) Ц1 - ціна аналогу - 329 грн.; Ц2 - ціна нового програмного продукту - 292,57 грн. Ц=329,00 - 292,57 = 36,43 грн. 4.9 Розрахунок терміну окупності витрат

Термін окупності витрат То - це той період, за який всі вкладені в розробку нового програмного Завадостійке кодування на основі циклічних кодів продукту кошти оборотиться. Він розраховується за формулою:

То=В/П (років) (4.21)

де: В - витрати на розробку програмного продукту, грн.;

П - прибуток від реалізації 315 шт. матеріальних носіїв з програмним продуктом

(року)

Розробка вважається економічно ефективною, так як термін окупності для нового програмного продукту становить То < 1…3 роки, а за нашими підрахунками Завадостійке кодування на основі циклічних кодів система окупиться за 0,7 року.

Висновки

В економічній частині дипломного проекту було розраховано:

- кошторис витрат на розробку програмного продукту -7229,40 грн.

- виробничу собівартість матеріального носія з програмним продуктом - 187,55 грн.

- ціну реалізації матеріального носія з записаним програмним продуктом -292,57 грн.

- чистий прибуток, який отримає розробник протягом 1-го року від реалізації 315 шт. 10338,30 грн.

- експлуатаційні витрати Завадостійке кодування на основі циклічних кодів у споживача, пов'язані з використанням нового програмного продукту 56,37 грн.

- річний економічний ефект на експлуатаційних витратах для споживача при використанні нового програмного продукту - 86,40 грн.

- річний економічний ефект на ціні для споживача при придбанні нового програмного продукту - 36,43 грн.

- термін окупності витрат для виробника - 0,7 року.

Проведені розрахунки свідчать про економічну ефективність та доцільність Завадостійке кодування на основі циклічних кодів провадження нової програми.

5 БЕЗПЕКА ЖИТТЄДІЯЛЬНОСТІ 5.1 Основні принципи конструювання робочого місця користувача ЕОМ

В даній дипломній боті розробляється програма, яка буде використовуватись при кодуванні інформації. Оскільки бота пов'язана з компьютер'ютером, то на людину буде впливати ціла група шкідливих факторів, пов'язаних з застосуванням компьютер'ютерної техніки, що разом Завадостійке кодування на основі циклічних кодів з погано організованим робочим місцем може привести до зниження продуктивності праці. Для підвищення працездатності, одним із головних чинників є верно організоване робоче місце користувачів ЕОМ. Оскільки комфортні і безпечні умови праці - один з основних факторів, які впливають на продуктивність працюючих з ЕОМ. Таким чином, відповідність конструкції Завадостійке кодування на основі циклічних кодів виробничого обладнання і організації робочого місця антропометричним, фізіологічним та психологічним даним людини сприяє раціональній взаємодії між людиною і знаряддям праці й призводить до підвищення працездатності та ефективності трудової діяльності [20].

Класифікація робочих місць користувачів ЕОМ

Робоче місце (РМ) - це обладнаний технічними засобами(засобами відображення інформації, органами управління, допоміжним обладнанням) простір, де здійснюється діяльність виконавця Завадостійке кодування на основі циклічних кодів(або групи виконавців). Організацією робочого місця називається система заходів щодо обладнання робочого місця засобами та предметами праці і розміщення їх у певному порядку.

Удосконалення організації робочого місця є однією з мозгов, що сприяють підвищенню продуктивності праці, тому питанням організації робочого місця тепер приділяється велика увага.

Удосконалення організації праці на Завадостійке кодування на основі циклічних кодів робочому місці призводить до:

- створення передумов для більш ефективного використання різних форм поділу та кооперації праці шляхом раціонального розподілу функцій у виробничому колективі, а також між людиною та компьютер'ютером, виходячи з психофізіологічних можливостей користувача;

- поліпшення конструкції та полегшення обслуговування робочого місця(раціональне розміщення засобів та предметів праці Завадостійке кодування на основі циклічних кодів) з урахуванням антропометричних черт працюючих;

- розробки нових засобів та способів праці на основі психофізіологічної раціоналізації трудових процесів;

- поліпшення засобів нормування праці шляхом встановлення оптимальних параметрів робочих навантажень;

- формування сприятливих мозгов праці;

- раціоналізації форм та способів підготовки і підвищення кваліфікації кадрів, а також засобів підбору шляхом урахування психофізіологічних Завадостійке кодування на основі циклічних кодів особливостей працюючих.

5.2 Принципи конструювання робочого місця користувача ЕОМ

Робоче місце користувача ЕОМ - це обладнаний технічними засобами(засобами відображення інформації, органами управління, допоміжним обладнанням) простір, де здійснюється діяльність виконавця. Організацією робочого місця називається система заходів щодо обладнання робочого місця засобами та предметами праці і розміщенням їх у певному порядку.

Однією Завадостійке кодування на основі циклічних кодів з основних вимог до організації робочого місця є повна відповідність засобів оснащення робочого місця змісту завдань, що виконуються з їх допомогою. Проте у кожній системі вирішуються свої певні завдання, і коло цих завдань розширюється з розвитком самих технічних засобів ЕОМ та їх програмного забезпечення. Розбіжність завдань та функцій зумовлює Завадостійке кодування на основі циклічних кодів розбіжність у діях користувачів, які у сукупності складають їх діяльність. Цим продиктований диференційований підхід до вирішення питань конструювання та організації робочих місць у системах різного призначення.

Отже, для раціональної організації робочих місць перш за все необхідно виявити ті їх особливості, на основі яких можна виразити їх идентиченість (або відмінність) для більш цілеспрямованого Завадостійке кодування на основі циклічних кодів вирішення проблеми урахування людського фактора. Таким чином, організація робочого місця на науковій основі передбачає насамперед вирішення проблеми їх класифікації за певними ознаками.

Класифікаційна ознака - це критерій визначення подібності. Вдалість вибору переліку, складу та градацій ознак визначає ступінь зручності та ефективності використання класифікації. На сьогодні єдиної класифікації робочих Завадостійке кодування на основі циклічних кодів місць, обладнаних ЕОМ, з позиції ергономіки немає. Це призводить до різноплановості трактувань заморочек організації робочого місця [22].

При розробці класифікаційних ознак різних типів робочих місць, обладнаних ЕОМ, треба враховувати досить широкий діапазон кваліфікації користувачів, різноманіття можливих завдань та зовнішніх мозгов діяльності. В основі класифікації робочих місць, обладнаних ЕОМ, що пропонуються у літературі Завадостійке кодування на основі циклічних кодів, лежать три класифікаційні ознаки:

- тип користувача;

- тип завдання;

- умови роботи.

5.3 Вимоги до організації робочих місць користувачів ЕОМ

Організація робочого місця користувача ЕОМ виновата забезпечувати відповідність усіх елементів робочого місця та їх розташування ергономічним вимогам ГОСТ 12.2.032. Основним обладнанням робочого місця користувача ЕОМ є монітор, клавіатура, робочий стіл, стілець(крісло Завадостійке кодування на основі циклічних кодів); допоміжні - підставка для ніг, шафи, полиці та ін.

Площа, видіелена для 1-го робочого місця з персональною ЕОМ, виновата складати не менше 6 кв. м, а обсяг - не менше 20 куб. м.

При розміщенні робочих місць необхідно виключити можливість прямого засвічування екрана джерелом природного освітлення. Джерело природного освітлення(вікно) не Завадостійке кодування на основі циклічних кодів повинно також потрапляти у зону прямого спостереження користувача. Відносно світлових прорізів робочі місця доцільно розташовувати таким чином, щоб природне світло падало на нього збоку, переважно зліва.

При розміщенні робочих місць з відеотерміналами та персональними ЕОМ необхідно дотримуватись таких вимог:

- робочі місця з відеотерміналами та персональними ЕОМ розміщуються на відстані не менше Завадостійке кодування на основі циклічних кодів 1 м від стін зі світловими прорізами;

- відстань між бічними поверхнями відеотерміналів має бути не меншою за 1,2 м;

- відстань між тильною поверхнею 1-го відеотермінала та екраном іншого не виновата бути меншою 2,5 м;

- прохід між рядами робочих місць має бути не меншим 1 м.

Вимоги цього пт щодо відстані між бічними поверхнями Завадостійке кодування на основі циклічних кодів відеотерміналів та відстані між тильною поверхнею 1-го відеотермінала і екраном іншого враховуються також при розміщенні робочих місць з відеотерміналами та персональними ЕОМ в суміжних приміщеннях, з урахуванням конструктивних особливостей стін та перегородок.

При розміщенні відеотермінала на робочому місці потрібно забезпечити простір для користувача величиною не менше як 850 мм з урахуванням Завадостійке кодування на основі циклічних кодів виступаючих частин обладнання. Для стоп має бути передбачено простір по глибині та висоті не менше як 150 мм, по ширині - не менше як 530 мм.

Під час організації робочого простору необхідно враховувати індивідуальні антропометричні параметри користувача з відповідними допусками на можливі зміни робочих поз та потребу у переміщеннях Завадостійке кодування на основі циклічних кодів [21].

Оптимальною робочою позою користувача ЕОМ може вважатися таке розташування тіла, при якому ступні працівника розташовані на підлозі або на підставці для ніг; стегна зорієнтовані у горизонтальній площині; передпліччя - вертикально; лікті - під кутом 70-90° до вертикальної площини; зап'ястя зігнуті під кутом не більше 20° відносно горизонтальної площини; нахил голови - 15- 20° відносно вертикальної площини Завадостійке кодування на основі циклічних кодів, а також виключені часті її повороти .

Якщо користування відеотерміналом та персональною ЕОМ є основним видом діяльності, то вказане обладнання розміщується на основному робочому столі, як правило, з лівого боку.

Якщо використання відеотермінала та индивидуальної ЕОМ є періодичним, то устаткування, як правило, розміщується на приставному столі, переважно з лівого боку Завадостійке кодування на основі циклічних кодів від основного робочого столу. Кут між поздовжніми осями основного та приставного столів має бути 90-140°.

Якщо використання відеотермінала та индивидуальної ЕОМ є періодичним, то дозволяється обладнувати в приміщенні окремі робочі місця колективного користування з відеотерміналом та персональною ЕОМ.

а - зона оченьї досяжності; б - зона досяжності пальців при витягнутій руці;

в - зона Завадостійке кодування на основі циклічних кодів простої досяжності

долоні;

г - оптимальний простір для грубої ручної роботи;

д - оптимальний простір для тонкої ручної роботи.

Набросок 4.1 - Зони досяжності рук в горизонтальні площині

5.4 Технічне рішення щодо забезпечення електробезпеки до робочого місця користувача ЕОМ

Для забезпечення електробезпеки до робочого місця користувача ЕОМ потрібно, щоб воно відповіотдало таким вимогам:

1) електропроводи та кабелі за Завадостійке кодування на основі циклічних кодів виконанням та ступенем захисту мають відповідати класу зони за ПВЕ, мати апаратуру захисту від струму недлинного замикання та інших аварійних режимів;

2) Під час монтажу та експлуатації ліній електромережі необхідно повністю унеможливити виникнення електричного джерела загоряння внаслідок недлинного замикання та перевантаження проводів, обмежувати застосування проводів з легкозаймистою ізоляцією і, за Завадостійке кодування на основі циклічних кодів можливості, перейти на негорючу ізоляцію;

3) У приміщенні, де одночасно експлуатується або обслуговується більше п'яти персональних ЕОМ, на помітному та доступному місці встановлюється

аварійний резервний вимикач, який може повністю вимкнути електричне живлення приміщення, крім освітлення;

4) Лінія електромережі для живлення ЕОМ, периферійних пристроїв ЕОМ та устаткування для обслуговування, ремонту та налагодження ЕОМ Завадостійке кодування на основі циклічних кодів виконується як окрема групова трипровідна мережа, шляхом прокладання фазового, нульового робочого та нульового захисного провідників. Нульовий захисний провідник використовується для заземлення (занулення) електроприймачів.

В нашому випадку для забезпечення електробезпеки локальної обчислювальної мережі будемо використовувати нульовий захисний провідник який буде занулено.

Занулення - це навмисне з'єднання з нульовим захисним Завадостійке кодування на основі циклічних кодів провідником металевих струмонепровідних частин електропристроїв, які можуть виявитись під напругою.

1. Виконаємо розрахунок занулення для приміщення. Більш докладна інформація для розрахунків зведена в таблиці 4.1.

2. Розробляємо електричну схему занулення (рис. 4.2).

Набросок 4.2 - Розрахункова схема занулення

3. Занулення виконується у випадках, если є присутня номінальна напруга від 42В до 380В змінного струму, а також Завадостійке кодування на основі циклічних кодів при наявності небезпечних мозгов експлуатації електричного устаткування, можливість одночасного дотику. Ці дві умови є причиною для занулення робочих місць оператора для забезпечення безпеки роботи.

Таблиця 4.1 - Вихідні дані для розрахункового завдання

Електроустановка

Робоче місце оператора

Кількість електроустановок, n

2

Потужність навантаження, Рн

1,5 ква

Потужність навантаження мережі, Рнс

22 ква

Струмовий захист

В (вимикач)

Відношення 1п/Ін

-

Довжина повітряної лінії, Lв

0,4 км

Довжина кабельної Завадостійке кодування на основі циклічних кодів лінії, Lк

0,2 км

Матеріал повітряної лінії

А (алюмінієвий провід)

Матеріал кабельної лінії

А (алюмінієвий провід)

Виміряна щільність, ризм.

28 Ом м

Вологість ґрунту

СР (середній)

Глибина розташування вертикальних електродів повторного заземлення нульового проводу, h

0,8 м

Форма їхнього розташування

Р (у ряд)

Довжина вертикальних електродів,Lв

11 м

Діаметр електродів, d

22 мм

Умови експлуатації

Розрахуємо на здатність відключати. Для живлення лінії 1 вибираємо масляний трансформатор потужністю Рт= 63 кВЛ з Завадостійке кодування на основі циклічних кодів первинною напругою 6 - 10 кВ, з'єднання обмоток (первинна/вторинна) ?/Yн, розрахунковий опір Zт/3=0,12 Ом. Визначимо робочий струм лінії 1:

Визначимо струм недлинного замикання та визначимо вимикаючу здатність занулення обчислювальної техніки. Вибираємо чотирижильний алюмінієвий кабель, прокладений у повітрі з поперечним перетином жили S1Ф =12 мм2 , для якого допустиме навантаження складає 47 А. Визначимо Завадостійке кодування на основі циклічних кодів робочий струм лінії 2:

Вибираємо чотирижильний алюмінієвий кабель, прокладений у землі з поперечним перетином S2Ф =12 мм2, для якого допустиме навантаження складає 85 А. Визначимо робочий струм лінії 3:

Вибираємо три одножильних алюмінієвих проводи перетином S3ф= 1 мм2, довжина кабелю l3 - 15м (за умовою матеріал і довжина вибираються самостійно), прокладених в одній трубі Завадостійке кодування на основі циклічних кодів, для яких допустиме навантаження складає 16 А (наявність нульового проводу в чотирипроводній мережі в розрахунок не приймається). Визначаємо значення активних опорів фазних проводів ліній 1, 2 і 3 (1,2 і 3 лінії з алюмінієвих проводів, рм=0,028[Ом*мм2/м]):

Приймаємо значення індуктивного опору повітряної лінії Х2=0,6 Ом/км і внутрішньої Х1=0,3 Ом Завадостійке кодування на основі циклічних кодів/км, Х3=0,3 Ом/км, тоді індуктивний опір петлі "фаза- нуль":

Хп=2Х111+2Х2l2+2Х313 (4.5)

З огляду на вимоги ПУЭ, про те, що Rн ? Rф , приймаємо площу перетину нульових проводів виконаних з алюмінію для ліній 1, 2 і 3 такими: Sн1= 8 мм2 , S = 4 мм2 і Sн3= 0,5 мм2 . Тоді значення активного опору нульових проводів:

Знаходимо Завадостійке кодування на основі циклічних кодів комплексний опір петлі "фаза-нуль":

Умова безпеки з напруги дотику буде забезпечена при разумові, якщо:

Де Uгр - граничний допустимий рівень напруги дотику, який нормується ГОСТ 12.1.038-82. Відповідно до ГОСТ 12.1.038-82, якщо час впливу на людину складає більше 1 с., то гранично допустимий рівень напруги становить Uгр = 36 В. Для зменшення напруги дотику (потенціалу Завадостійке кодування на основі циклічних кодів корпусу) необхідно зменшувати опір нульового провода ZН або застосовувати його повторне заземлення [24].

Розрахунок повторного занулення нульового провода R0, виконується аналогічно розрахунку захисного занулення обладнання.

Опір одиничного вертикального електрода дорвейівнює:

Опір з'єднувальної штаби можна визначити за формулою:

Загальний опір складається з паралельного з'єднання вертикальних електродів та Завадостійке кодування на основі циклічних кодів з'єднувальної штаби:

Коефіцієнт використання ?ш=0,695 розрахований за методикою визначення коефіцієнта використання ?в

Напруга дотику при Rпз= 1,85 Ом становить:

Отже умова безпеки Uд ? Uгр виконується, тобто 27,47< 36 В.

Висновок

Отже, актуальність даної проблематики пов'язана з тим, що все більшою 100є компьютер'ютеризація фірм, підприємств та інших організацій.

Також слід зазначити Завадостійке кодування на основі циклічних кодів, що особливістю електробезпеки ще є те, що керівники не завжди при покупці ЕОМ звертають належної уваги на якість та безпечність обладнання, Оскільки дуже багато людей працюють у контакті з ЕОМ досить довгий час, є необхідність забезпечення їх безпеки під час роботи. Тому в даний час неувязка дотримання вимог безпеки в приміщеннях Завадостійке кодування на основі циклічних кодів з ЕОМ 100є все більш актуальною і важливою.

Отже, слід боротися з такими неуввязками, використовувати всі найновітніші засоби для забезпечення безпеки людей при боті з ЕОМ і найкращим та найнадійнішим методом при цьому є дотримання правил безпеки для приміщень з ЕОМ, турбуючись про людей, що працюють з ЕОМ

Висновки

У дипломній боті Завадостійке кодування на основі циклічних кодів розроблено та досліджено програмний продукту для завадостійкого кодування даних з використанням циклічних CRC кодів. Основні результати роботи такі:

1. Корегуючі коди - основний способ захисту від дії завад при передачі і зберіганні даних.

2. Вибір способу кодування залежить під області застосування і заданих вимог до корегуючої здатності. В деяких випадках Завадостійке кодування на основі циклічних кодів застосування кодів, що виявляють помилки має переваги перед кодами, що виявляють і виправляють помилки, оскільки коди, що виправляють помилки характеризуються дуже малою надлишковістю.

3. Серед кодів, що виявляють помилки найбільші переваги мають циклічні CRC-коди, які можуть використовуватись як для завадостійкої передачі даних так і для перевірки цілісності файлів Завадостійке кодування на основі циклічних кодів, яка може бути порушена в итогі дій зловмисників.

4. Розроблено алгоритми обчислення контрольних сум для поліномів CRC8 та CRC32 табличним способом.

5. В середовищі Visual Studio 2008 на мові програмування C# , розроблено програмне забезпечення яке дозволяє виконувати обчислення СRC8 та СRC32 табличним способом.

6. Виконане тестування програми показало, що навіть короткі поліноми здатні виявляти значні Завадостійке кодування на основі циклічних кодів зміни файлів, що для кодів, які виправляють помилки вкрай важко.

Високий рівень рішення поставленої задачі досягнутий, за рахунок використання програмного середовища Visual Studio 2008 та мови C#.

перелік посилань

1. Вернер М. Базы кодировки. Учебник для ВУЗов. Москва: Техносфера, 2004. - 288с.

2. http://ru.wikipedia.org/wiki/Crc

3. Лидовский В. В. Теория инфы: Учебное пособие Завадостійке кодування на основі циклічних кодів. - М.: Компания Спутник, 2004. - 111 с.

4. http://www.rarlab.com/

5. http://www.softsoft.ru/

6. Козловский В.О. Методические указания к выполнению экономической части дипломных проектов студентами технических специальностей. - Винница: ВГТУ, 1998. - 85 с.

7. Золотарёв В. В., Овечкин Г. В. Помехоустойчивое кодирование. Способы и методы: Справочник / Под. ред. чл.-кор. РАН Завадостійке кодування на основі циклічних кодів Ю. Б. Зубарева. - М.: Жгучая линия-Телеком, 2004. - 126 с.

8. Майданюк В. П. Кодування та захист інформації. Навчальний посібник. - Вінниця: ВНТУ, 2009. - 164 с.

9. Базы теории инфы и кодировки/И. В. Кузьмин, В. А. Кедрус. - К: Вища шк., 1986. - 238 с.

10. Дмитриев В. И. Прикладная теория инфы. - М.: Высш. шк., 1989. - 420 с.

11. Хэмминг Р. В. Теория кодировки и Завадостійке кодування на основі циклічних кодів теория инфы. Пер. с англ. - М.: Радио и связь, 1983. - 176 с.

12. Харкевич А. А. Борьба с помехами. - М.: Наука, 1965. - 270 с.

13. Блейхут Р. Теория и практика кодов контролирующих ошибки: Пер. с англ. - М.: Мир, 1986. - 576 с.

14. Базы теории передачи инфы. Ч. 2. Помехоустойчивое кодирование/ В. И. Шульгин. - Учебное пособие. - Харьков: Нац Завадостійке кодування на основі циклічних кодів. аэрокосм. ун-т «Харьк. авиац. ин-т», 2003. - 87 с.

15. Кларк Дж., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи. Пер. с англ. - М.: Радио и связь, 1987. - 392 с.

16. Банкет В. Л. Сверточные коды в системах передачи инфы: Учеб. Пособие / Одесск. электротехн. ин-т связи им. А. С. Попова. Одесса, 1986. - 57 с.

17. http Завадостійке кодування на основі циклічних кодів://www.xakep.ru/post/21788/default.asp?print=true

18. Троелсен. Э. С# и платформа .NET. Библиотека программера. -- СПб.: Питер, 2004. --796 с.

19. Нейгел К. и др. C# 2005 и платформа .NET 3.0 для экспертов.: Пер. с англ. - М.: ООО «И. Д. Вильямс», 2008. - 1376 с.

20. Навакатікян О.О., Кальниш В.В., Стрюков С.М.. Охорона праці користувачів компьютер Завадостійке кодування на основі циклічних кодів'ютерних відеодисплейних терміналів. - К., 1997. - 400 с.

21. Правила охорони праці під час експлуатації електронно-обчислюваних машин.

22. Збірник нормативних актів, 2001.23. Є.А. Бондаренко. Використання нормативних актів про охорону праці користувачів електронно-обчислювальних машин. // Вінниця: ВДТУ, 2003. -100с.

23. Державні санітарні правила та норми 3.3.3.007-90. Вимоги електробезпеки до приміщень з електронно-обчислювальними машинами.

24. Методичні вказівки до Завадостійке кодування на основі циклічних кодів виконання курсової роботи з дисципліни «Охорона праці». Захист від ураження електричним струмом . Загальні відомості безпеки та розрахунок занулення / Якубович В.П. - Вінниця: ВДТУ, 1997. 40.

Додаток А (обов'язковий) ВНТУ ЗАТВЕРДЖУЮ Завідувач кафедри ПЗ д.т.н., проф. А.М. Пєугасал «_____» ________ 2010 р. Технічне завдання на дипломну боту зі спеціальності Завадостійке кодування на основі циклічних кодів 7.080403 - Програмне забезпечення автоматизованих систем студента групи 1ПЗ-09сп Кравець В.В.

1.1 Найменування та галузь застосування

Розробка та дослідження програмного забезпечення для завадостійкого кодування на основі циклічних кодів

Даний програмний продукт призначений для завадостійкого кодування даних і може знайти застосування при передачі файлів по мережах, а також для контролю цілісності файлів, яка може бути Завадостійке кодування на основі циклічних кодів несанкціоновано порушена зловмисниками.

1.2 Підстава для проведення робіт

Завдання на боту, яке затверджене на засіданні кафедри програмного забезпечення - протокол ______ від _______.

1.3 Мета та призначення роботи

Метою даної роботи є розробка та дослідження методів і програм кодування даних з виявленням помилок на основі циклічних CRC-кодів.

У відповідності до поставленої мети Завадостійке кодування на основі циклічних кодів в боті вирішуються такі завдання:

- аналіз циклічних кодів;

- розробка методу кодування даних з виявленням помилок на основі CRC-кодів;

- вибір програмних засобів для вирішення поставлених завдань;

- розробка та тестування програмних модулів;

- розрахунок економічних показників;

- вирішення питань охорони праці.

1.4 Технічні вимоги

1. Тип коду - циклічний CRC-код.

2. Довжина поліномів - CRC8, CRC32.

3. Операційна система - Windows XP Завадостійке кодування на основі циклічних кодів.

4. Мова програмування - C#

1.5. Перелік технічної документації, що пред'являється по закінченню робіт

технічне завдання;

техніко-економічне обґрунтування;

лістинг програми.

1.6 Економічні показники

1. Сума усіх витрат на розробку програмного продукту - не більше 8000 грн.

2. Собівартість однієї копії - не більше 200 грн.

1.7 Стадії і етапи розробки

Завдання на проектування видане ___________ 2010 року. Проектування та дослідження повинно Завадостійке кодування на основі циклічних кодів бути завершеним до __________ 2010 року.

1. Техніко-економічне обґрунтування технічного завдання на боту _.

2. Варіантний аналіз основної проектної задачі і техніко-економічне обґрунтування вибору рационального методу завадостійкого кодування ___ .

3. Розробка методу кодування ___________.

4. Розробка програмних модулів для виконання кодування - ______.

5. Тестування розроблених програмних продуктів - ____________.

6. Аналіз економічної ефективності розробки - ____________.

7. Вирішення питань охорони праці Завадостійке кодування на основі циклічних кодів - ____________.

8. Оформлення пояснювальної записки і графічних матеріалів - __.

1.8 Порядок контролю і приймання

Порядок контролю і приймання роботи регламентується відповідними документами ВНТУ і державними эталонами.

Додаток Б Текст програми CRC - кодування using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace CRC32 { static class Program { /// /// The main entry point for the Завадостійке кодування на основі циклічних кодів application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CRC; namespace CRC32 { public partial class Завадостійке кодування на основі циклічних кодів Form1 : Form { public Form1() { InitializeComponent(); } private string filename; private bool states = false; private void btBrowse_Click(object sender, EventArgs e) { var open = new OpenFileDialog ; if (open.ShowDialog() == DialogResult.OK) { filename = open.FileName; tbSource.Text = filename; } btCalc.Enabled = true; } private void btCalc_Click(object sender, EventArgs e) { try Завадостійке кодування на основі циклічних кодів { if (CRC8.Checked) { var crc8 = new Crc8(); using (var f = File.Open(filename, FileMode.Open)) crc8.ComputeHash(f); states = false; tbResult.Text = crc8.CrcValue.ToString("x2").ToUpper(); } else if (CRC32.Checked) { var crc32 = new Crc32(); using (var f = File.Open(filename, FileMode.Open)) crc32.ComputeHash(f); states = true; tbResult.Text = crc Завадостійке кодування на основі циклічних кодів32.CrcValue.ToString("x2").ToUpper(); } btSave.Enabled = true; } catch { MessageBox.Show("Вкажіть файл!!!","Увага!"); } } private void btAbout_Click(object sender, EventArgs e) { var f = new About(); f.Visible = false; if (f.ShowDialog() == DialogResult.OK) { } } private void btCheck_Click(object sender, EventArgs e) { try { var fnm = ""; var csm Завадостійке кодування на основі циклічних кодів = ""; //ініціалізація діалогу відкриття файлів //для файла що перевірятиметься var open = new OpenFileDialog ; //додавання файла if (open.ShowDialog() == DialogResult.OK) { fnm = open.FileName; tbSource.Text = fnm; } //ініціалізація фільтра для файла хеш-суми open.Filter = "Хеш-сума (*.crc)|*.crc"; //додавання файла if (open.ShowDialog() == DialogResult.OK) { csm = open.FileName; tbResult.Text = csm Завадостійке кодування на основі циклічних кодів; } //визначення crc32 для файла //створення сгустку та зчитування інформації var fs = new StreamReader(csm); fs.ReadLine(); fs.ReadLine(); var crc = fs.ReadLine(); var fcrc = fs.ReadLine(); fs.Close(); if (crc == "crc32") { var crc32 = new Crc32(); using (var f = File.Open(fnm, FileMode.Open)) crc32.ComputeHash(f); tbResult.Text Завадостійке кодування на основі циклічних кодів = crc32.CrcValue.ToString("x2").ToUpper(); //порівняння нового CRC32 і добутого з файла if (fcrc == crc32.CrcValue.ToString("x2").ToUpper()) { MessageBox.Show("Файл переданий верно!", "Увага!"); } else { MessageBox.Show("Файл переданий некорректно!", "Увага!"); } } if (crc == "crc8") { var crc8 = new Crc8(); using (var f = File.Open(fnm, FileMode.Open)) crc8.ComputeHash(f); tbResult Завадостійке кодування на основі циклічних кодів.Text = crc8.CrcValue.ToString("x2").ToUpper(); //порівняння нового CRC32 і добутого з файла if (fcrc == crc8.CrcValue.ToString("x2").ToUpper()) { MessageBox.Show("Файл переданий верно!", "Увага!"); } else { MessageBox.Show("Файл переданий некорректно!", "Увага!"); } } } catch { MessageBox.Show("Помилка відкриття файлів!", "Увага!"); } } private void btSave_Click(object sender, EventArgs e) { try Завадостійке кодування на основі циклічних кодів { var fi = new FileInfo(filename); //визначення довжини імені файла без розширення var index = fi.Name.Length - fi.Extension.Length; var crc = states ? "crc32" : "crc8"; //генерування імені та шляху нового файла var fname = fi.DirectoryName + "\\" + crc + fi.Name.Remove(index) + ".crc"; //створення сгустку та запис даних про файл var Завадостійке кодування на основі циклічних кодів fs = new StreamWriter(fname); fs.WriteLine(fi.FullName); fs.WriteLine(DateTime.Now); fs.WriteLine(crc); fs.WriteLine(tbResult.Text); fs.Close(); btSave.Enabled = false; MessageBox.Show("Дані збережено\nШлях: " + fi.DirectoryName,"Увага!"); } catch { MessageBox.Show("Помилка при збереженні файла!", "Увага!"); } } } } using System; using System.Security.Cryptography; namespace CRC { //CRC-32-IEEE Завадостійке кодування на основі циклічних кодів 802.3 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, MPEG-2, PNG[17], POSIX cksum) public class Crc32 : HashAlgorithm { public const uint DefaultSeed = 0xffffffff; readonly static uint[] CrcTable = new uint[] { 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE Завадостійке кодування на основі циклічних кодів963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D Завадостійке кодування на основі циклічних кодів385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA Завадостійке кодування на основі циклічних кодів, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE Завадостійке кодування на основі циклічних кодів924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x Завадостійке кодування на основі циклічних кодів91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C Завадостійке кодування на основі циклічних кодів65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C Завадостійке кодування на основі циклічних кодів, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C Завадостійке кодування на основі циклічних кодів, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D Завадостійке кодування на основі циклічних кодів, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x Завадостійке кодування на основі циклічних кодів3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE Завадостійке кодування на основі циклічних кодів, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB Завадостійке кодування на основі циклічних кодів12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x Завадостійке кодування на основі циклічних кодів11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F Завадостійке кодування на основі циклічних кодів, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D }; uint crcValue = 0; public override Завадостійке кодування на основі циклічних кодів void Initialize() { crcValue = 0; } protected override void HashCore(byte[] buffer, int start, int length) { crcValue ^= DefaultSeed; unchecked { while (--length >= 0) { crcValue = CrcTable[(crcValue ^ buffer[start++]) & 0xFF] ^ (crcValue >> 8); } } crcValue ^= DefaultSeed; } protected override byte[] HashFinal() { this.HashValue = new byte[] { (byte)((crcValue >> 24) & 0xff), (byte)((crcValue >> 16) & 0xff), (byte)((crcValue >> 8) & 0xff), (byte)(crcValue & 0xff) }; return this.HashValue; } public Завадостійке кодування на основі циклічних кодів uint CrcValue { get (HashValue[1] << 16) } public override int HashSize { get { return 32; } } } // Поліном : 0x31 x^8 + x^5 + x^4 + 1 public class Crc8 : HashAlgorithm { public const ushort DefaultSeed = 0xff; readonly static ushort[] Crc8Table = new ushort[256]{ 0x00, 0x31, 0x62, 0x53, 0xC4, 0xF5, 0xA6, 0x97, 0xB9, 0x88, 0xDB, 0xEA, 0x7D, 0x4C, 0x1F, 0x2E, 0x43, 0x72, 0x21, 0x10, 0x87, 0xB6, 0xE5, 0xD4, 0xFA, 0xCB, 0x98, 0xA9, 0x3E, 0x0F, 0x5C, 0x6D, 0x86, 0xB7, 0xE4, 0xD5, 0x42, 0x73, 0x20, 0x11, 0x3F, 0x0E, 0x5D, 0x6C, 0xFB, 0xCA, 0x99, 0xA8, 0xC5, 0xF4, 0xA7, 0x96, 0x01, 0x30, 0x63, 0x52, 0x7C, 0x4D, 0x1E, 0x2F, 0xB8, 0x89, 0xDA, 0xEB, 0x3D, 0x0C, 0x5F, 0x6E, 0xF9, 0xC8, 0x9B, 0xAA, 0x84, 0xB5, 0xE6, 0xD7, 0x40, 0x71, 0x22, 0x13, 0x7E, 0x4F, 0x1C, 0x2D, 0xBA, 0x8B, 0xD8, 0xE9, 0xC7, 0xF6, 0xA5, 0x94, 0x03, 0x32, 0x61, 0x50, 0xBB, 0x8A, 0xD9, 0xE8, 0x7F, 0x4E, 0x1D, 0x2C, 0x02, 0x33, 0x60, 0x51, 0xC6, 0xF7, 0xA4, 0x95, 0xF8, 0xC9, 0x9A, 0xAB, 0x3C, 0x0D, 0x5E, 0x6F, 0x41, 0x70, 0x23, 0x12, 0x85, 0xB4, 0xE7, 0xD6, 0x7A, 0x4B, 0x18, 0x29, 0xBE, 0x8F, 0xDC, 0xED, 0xC3, 0xF2, 0xA1, 0x90, 0x07, 0x36, 0x65, 0x54, 0x39, 0x08, 0x5B, 0x6A, 0xFD, 0xCC, 0x9F, 0xAE, 0x80, 0xB1, 0xE2, 0xD3, 0x44, 0x75, 0x26, 0x17, 0xFC, 0xCD, 0x9E, 0xAF, 0x38, 0x09, 0x5A, 0x6B, 0x45, 0x74, 0x27, 0x16, 0x81, 0xB0, 0xE3, 0xD2, 0xBF, 0x8E, 0xDD, 0xEC, 0x7B, 0x4A, 0x19, 0x28, 0x06, 0x37, 0x64, 0x55, 0xC2, 0xF3, 0xA0, 0x91, 0x47, 0x76, 0x25, 0x14, 0x83, 0xB2, 0xE1, 0xD0, 0xFE, 0xCF, 0x9C, 0xAD, 0x3A, 0x0B, 0x58, 0x69, 0x04, 0x35, 0x66, 0x57, 0xC0, 0xF1, 0xA2, 0x93, 0xBD, 0x8C, 0xDF, 0xEE, 0x79, 0x48, 0x1B, 0x2A, 0xC1, 0xF0, 0xA3, 0x92, 0x05, 0x34, 0x67, 0x56, 0x78, 0x49, 0x1A, 0x2B, 0xBC, 0x8D, 0xDE, 0xEF, 0x82, 0xB3, 0xE0, 0xD1, 0x46, 0x77, 0x24, 0x15, 0x3B, 0x0A, 0x59, 0x68, 0xFF, 0xCE, 0x9D, 0xAC }; ushort crcValue = 0; public override void Initialize() { crcValue = 0; } protected override void HashCore(byte[] buffer, int start, int length) { crcValue ^= DefaultSeed; unchecked { while (--length >= 0) crcValue = Crc8Table[crcValue ^ buffer[start++]]; } } protected override byte[] HashFinal() { this.HashValue = new byte[] {(byte)(crcValue & 0xff)}; return this.HashValue; } public ushort CrcValue { get { return (ushort)(HashValue[0]); } } public override int HashSize {get { return 8; }} } } ДОДАТОК В ІЛЮСТРАТИВНИЙ МАТЕРІАЛ ДО ЗАХИСТУ ДИПЛОМНОЇ РОБОТИ Завідувач кафедри ПЗ, д Завадостійке кодування на основі циклічних кодів.т.н., професор _____________ А. М. Пєугасал Науковий керівник, к.т.н., доцент кафедри ПЗ ____ В. П. Майданюк Рецензент, к.т.н., доцент кафедри ОТ ____________ О. І. Гороховський Виконавець, студент групи 1ПЗ-09сп _________________ В. В. Кравець Доповідь

шановні члени державної екзаменаційної комісії вашій увазі

пропонується дипломна бота Завадостійке кодування на основі циклічних кодів на тему «Розробка та дослідження програмного забезпечення для завадостійкого кодування на основі циклічних кодів»

Важливим методом боротьби з завадами в системах передачі та обробки інформації є застосування кодів, що виявляють і виправляють помилки. Відомі два взаємодоповнювальних методи боротьби з завадами:

- кодування з виправленням помилок (корегуючі коди) - приймач виявляє і Завадостійке кодування на основі циклічних кодів виправляє помилки;

- кодування з виявленням помилок - приймач розпізнає помилки і, у разі потреби, проводить запит на повторну передачу помилкового блока.

Корегуючі коди формуються шляхом введення значної надлишковості в дані, що передаються, цифрові потоки можуть зростати в два і більше раз. Крім того, вони працюють з блоками обмеженої довжини і при певних Завадостійке кодування на основі циклічних кодів конфігураціях помилок або не виявляють їх зовсім, або невірно інтерпретують нрав помилок.

Другий способ припускає наявність каналу зворотного зв'язку і знаходить своє застосування в каналах з достатньо малою імовірністю помилки у випадку, якщо цю імовірність помилки необхідно ще знизити. Крім того, такі коди використовують не тільки Завадостійке кодування на основі циклічних кодів для виявлення наявності помилок які вносять природними факторами, але і для перевірки цілісності файлів, яка може бути порушена в итогі дій зловмисника, оскільки ці задачі ідентичні. Найчастіше при цьому використовуються методи, що ґрунтуються на підрахунку контрольних сум. Контрольна сума - деяке значення, розраховане з послідовності даних шляхом застосування певного методу, яке використовується Завадостійке кодування на основі циклічних кодів для перевірки правильності передачі даних Слід зазначити, що застосування контрольних сум заносить мінімальну надлишковість в дані, що передаються, тому навіть у випадку повторної передачі цифрові потоки можуть бути значно меншими у порівнянні з корегуючими кодами.

Хоча циклічні коди можуть використовуватись для кодування з виправленням помилок, але найчастіше Завадостійке кодування на основі циклічних кодів їх використовують саме для формування контрольних сум. Циклічні надлишкові CRC (Cyclic redundancy code) коди вже стали основою багатьох эталонів, де застосовуються контрольні суми. Тому ці коди і вибрані для подальшої реалізації та дослідження.

Метою даної роботи є (читаєш плакат 1).

У відповідності до поставленої мети в боті вирішуються такі завдання Завадостійке кодування на основі циклічних кодів (читаєш плакат 1).

Плакат 2 (ліва колонка)

Розглянемо більш детально циклічні коди. Циклічні коди (ЦК) складають велику групу найширше використовуваних на практиці лінійних кодів. Їх основна властивість, полягає в тому, що кожен вектор, що отримується з початкового кодового вектора шляхом циклічної перестановки його знаків, також є дозволеним кодовим вектором. Циклічні коди є різновидністю Завадостійке кодування на основі циклічних кодів поліноміальних кодів [1]. В таких кодах вважається, що елементи (біти) a1, a2, …an-1 деякого кодового слова є коефіцієнтами полінома від x. Тоді процес кодування можна подати як итог множення полінома m(x), що являє собою інформаційну послідовність на породжувальний многочлен g(x), а декодування як итог ділення на цей Завадостійке кодування на основі циклічних кодів поліном. Ідея побудови циклічних кодів ґрунтується на використанні многочленів, що не приводяться (простий многочлен), в якості породжувального многочлена.

Найчастіше циклічні коди будують в систематичній формі, тобто спочатку передаються інформаційні біти, а потім контрольні розряди. Побудова циклічного систематичного коду виконується згідно з виразом (показуєш на плакат 2 - формулу і читаєш Завадостійке кодування на основі циклічних кодів колонку зліва). Корегуючий код, в тому числі і циклічний, який виявляє і виправляє декілька помилок характеризується великою надлишковістю - в два і більше раз бітів потрібно передавати або зберігати.

Плакат 2 (права колонка)

Найчастіше циклічні коди використовують для контролю помилок, а саме, циклічний надлишковий код (Cyclic redundancy code, CRC) (пок. на плакат 2 права колонка Завадостійке кодування на основі циклічних кодів). Він використовується для обчислення контрольних сум. Контрольна сума - спосіб цифрової ідентифікації деякої послідовності, який полягає в обчисленні контрольного значення її циклічного надлишкового коду. Значення CRC є по суті залишком від ділення многочлена, відповідного вхідним даним, на якийсь фіксований многочлен. CRC - коди є основою багатьох эталонів передачі даних, а також Завадостійке кодування на основі циклічних кодів використовуються для перевірки цілісності файлів.

Розглянемо приклад побудови коду CRC-4 для повідомлення 11010111, використовуючи поліном-генератор x4+x3+x2+1. Початковому повідомленню відповідає поліном x7+x6+x4+x2+x+1. Здесь нумерація бітів здесь починається справа. Виконується ділення поліномів (Показуєш на плакат). В итогі отримаємо остаток від ділення R= x Завадостійке кодування на основі циклічних кодів2| +1, якому відповідають біти 0101 - це і є CRC-4 код (показуєш на плакат 2).

Перевагою CRC-кодів є здатність виявляти майже всі помилки у файлі. Не виявляються лише помилки, з вектором помилки (двійкове число, одиничні біти якого відповідають помилковим бітам прийнятого блоку, а нульові - верно прийнятим), що ділиться на твірний (породжуючий) поліном Завадостійке кодування на основі циклічних кодів без остачі, а також низька надлишковість (для CRC4 - добавляється лише 4 біти у файл, CRC8 - добавляється лише 8 біти у файл, CRC32 - добавляється лише 32 біти у файл), що вигідно відрізняє їх від корегуючи кодів.

Плакат 3

Завдяки цьому CRC-коди є основою багатьох эталонів передачі даних, а також використовуються для перевірки цілісності файлів (показуєш Завадостійке кодування на основі циклічних кодів на плакат 3). CRC - коди на відміну від кодів з перевіркою на парність або непарність дозволяють виявляти як одиничні так і пакетні помилки, що є ще однією їх перевагою.

Плакат 4

При практичній реалізації методів CRC способ ділення поліномів, який передбачає побітне зчитування файлу дуже повільний, особливо у випадках, если Завадостійке кодування на основі циклічних кодів файли досягають мегабайтних розмірів. На практиці застосовують табличні методи розрахунку CRC. Ідея табличного способу така: оброблятимемо по б за один прохід циклу. Если ми ділимо б на поліном, у нас в залишку виходить деяке число, причому воно не залежить від інших бів повідомлення. Ось це число ми можемо зберігати Завадостійке кодування на основі циклічних кодів в таблиці для кожного ділимого б. Маючи таку таблицю, отримуватимемо CRC для кожного б за один прохід. Саме такий підхід і застосовано в даній боті. Схема обчислення CRC для 32 бітного породжуючого полінома має такий вигляд (показуєш на плакат 4 і читаєш метод).

Плакат 5

Для CRC8 метод обчислення ще простіший, оскілки Завадостійке кодування на основі циклічних кодів таблиця містить 256 б і немає необхідності в регістрі зсуву (показуєш на плакат 5).

Плакат 6

Для розробки програми розрахунку CRC обрано середовище розробки Visual Studio 2008 і мову програмування C#. Значною перевагою C# є можливість легкого доступу до класу HashAlgorithm NET Framework Class Library. Методи цього класу значно спрощують програмну реалізацію методів Завадостійке кодування на основі циклічних кодів обчислення CRC.

З урахуванням того, що по-перше це навчальна бота, а по-друге програма, що розробляється призначена для кодування файлів, де швидкісні свойства не є першочерговими, мова програмування С# є найбільш придатною для даної розробки.

Програма може працювати на компьютер'ютері з операційною системою Windows XP Завадостійке кодування на основі циклічних кодів та встановленою платформою Microsoft.NET Framework 3.5 або на компьютер'ютері з операційними системами Windows Vista або Windows 7, в які інтегрована платформа Microsoft.NET Framework.

Програма дозволяє обчислювати контрольні суми CRC8, CRC32, а інтерфейс користувача включає також CRC4, який може бути реалізований при необхідності. Програма має зручний інтерфейс користувача, тому для керування Завадостійке кодування на основі циклічних кодів нею не потрібно мати спеціальних навиків роботи на компьютер'ютері.

Щоб запустити програму на виконання потрібно вибрати файл CRC32.exe, що знаходиться у папці CRC32. Після запуску програми з'явиться головне вікно (показуєш на плакат 6).

Для обчислення CRC необхідно виконати такі дії:

5. Вибрати тип полінома - CRC8 або Завадостійке кодування на основі циклічних кодів CRC32.

6. Вибрати файл, клацнувши «мишею» на кнопці справа від поля «Шлях до файла», в итогі чого з'являється стандартне вікно вибору файла. Після вибору файла активується кнопка «Підрахувати».

7. Клацнути «мишею» по кнопці «Підрахувати». В полі «Результат обчислень» показаться CRC вибраного файлу.

8. При необхідності можна зберегти цей итог в файл клацнувши «мишею Завадостійке кодування на основі циклічних кодів» по кнопці справа від поля «Результат обчислення». СRC буде збережено у файл ім'я, якого має такий формат:

Префікс Ім'я початкового файлу Розширення

Префікс - CRC8 або CRC32

Розширення - crc

Приклад для файлу read.txt - crc32read.txt.

Після цього файл з CRC можна записати на змінний носій, а потім видалити Завадостійке кодування на основі циклічних кодів його з диска компьютер'ютера. Під час наступного включення компьютер'ютера з'являється можливість перевірити чи не змінив зловмисник файли на компьютер'ютері.

Для виконання перевірки необхідно вибрати команду «Перевірити». Відкриється стандартне вікно вибору файла, у якому необхідно вибрати файл, який ми хочемо перевірити і натиснути на кнопку «Открыть». Після Завадостійке кодування на основі циклічних кодів чого відкриється друге стандартне вікно вибору файлу, у якому необхідно вибрати відповідний файл з розширенням .crc.

При виборі кнопки «Про програму» буде виведена інформація про дану боту та її розробника.

Плакат 7-8

Для тестування програми було взято файл поекту CRC32.sln (показуєш на плакат 7), у який було внесено зміни Завадостійке кодування на основі циклічних кодів замість - EndGlobal записано EndLocal (показуєш на плакат 8) і було виконано перевірки програми на всіх режимах роботи.

Плакат 9-10

Як в режимі CRC32 так і в CRC8 програма виявила зміни (пок. на плакат 9-10). Тобто вона працездатна.

Плакат 11

Таким чином основні результати роботи такі - читаєш плакат 11.

Крім того, в боті виконано розрахунок Завадостійке кодування на основі циклічних кодів економічних показників. Термін окупності розробки - 0,7 року, прибуток від впровадження програми складе 10 338,3 грн.

Крім того розглянуто питання охорони праці при експлуатації даного програмного продукту.

Дякую за увагу, доповідь закінчено.

ВІДГУК

на дипломну боту студента групи 1ПЗ-09сп, Кравця В'ячеслава В'ячеславовича на тему “ Розробка та дослідження програмного забезпечення Завадостійке кодування на основі циклічних кодів для завадостійкого кодування на основі циклічних кодів”

Циклічні коди, можуть використовуватись як для кодування з виправленням помилок так і для формування контрольних сум, але найчастіше їх використовують саме для формування контрольних сум. За допомогою контрольних сум можна перевіряти і цілісність файлів, яка може бути порушена в итогі дій зловмисника Завадостійке кодування на основі циклічних кодів, оскільки задачка виявлення помилок в каналі передачі ідентична задачі перевірки цілісності файлів на диску компьютер'ютера. Незамінними здесь є циклічні надлишкові коди (Cyclic redundancy code - CRC), які вже стали основою багатьох эталонів. Слід зазначити, що застосування CRC-кодів заносить мінімальну надлишковість в дані, що передаються, тому навіть у випадку повторної передачі Завадостійке кодування на основі циклічних кодів цифрові потоки можуть бути значно меншими у порівнянні з корегуючими кодами. Тому тема дипломної роботи є досить актуальною.

В боті розроблено алгоритми та програмне забезпечення для обчислення контрольних сум для поліномів CRC8 та CRC32 табличним способом. Тестування програми показало, що навіть короткі поліноми здатні виявляти значні зміни файлів, що для Завадостійке кодування на основі циклічних кодів кодів, які виправляють помилки вкрай важко. Крім того, обґрунтовано вибір середовища програмування Visual Studio 2008 та мови програмування C#.

Під час дипломного проектування студент Кравець В. В. проявив для себя грамотним, кваліфікованим спеціалістом здатним приймати самостійно складні технічні рішення. Поставлені в дипломній боті завдання виконано доволі Завадостійке кодування на основі циклічних кодів якісно та в повному обсязі.

Вважаю, що дипломна бота заслуговує на оцінку «добре», а Кравець В. В. - присвоєння кваліфікації «спеціаліст».

Керівник дипломної роботи к.т.н., доцент каф. ПЗ В. П. Майданюк

1, 2, 3


zatrati-na-remont-iz-byudzhetnih-sredstv-vashemu-vnimaniyu-predlagaetsya-publichnij-doklad-direktora-municipalnogo.html
zatrati-na-tehnicheskoe-obsluzhivanie-i-remont.html
zatrati-predpriyatiya-na-proizvodstvo-i-realizaciyu-edinici-izdeliya-rub.html