Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра програмного забезпечення
Курсова робота
з курсу “Методи та засоби комп’ютерних інформаційних технологій”
ЛЬВІВ – 2003
Зміст
Постановка задачі 3
Теоретичні відомості до завдання № 1 4
Розв’язання завдання № 1 5
Теоретичні відомості до завдання № 2 6
Розв’язання завдання № 2 7
Теоретичні відомості до завдання № 3 9
Розв’язання завдання № 3 10
Текст програми 12
Висновок 14
(Варіант № 5)
Постановка задачі
Завдання № 1
Фізична система може знаходитись в одному з чотирьох станів. Стани системи задані через ймовірності наступним чином:
Р1 = 0,25; Р2 = 0,25; Р3 = 0,3; Р4 = 0,2.
Визначити ентропію такої системи. Чому рівна ентропія такої системи, якщо ймовірності станів будуть рівними?
Завдання № 2
Скласти програму для визначення еквівалентного опору та напругу Ucd приведеної схеми.
Дано:
U = 100 B; R1 = 80 Ом; R2 = 300 Ом; R3 = 160 Ом; R4 = 200 Ом; R5 = 20 Ом; R6 = 30 Ом.
Дослідити залежність чутливості Ucd від R1, R2, R3. Побудувати залежності ΔUcd від ΔR1, ΔR2, ΔR3.
Завдання № 3
Написати програму побудови п’ятизначного двійкового коду на всі поєднання і вибору з них всіх комбінацій, які взаємно виправляють одиничні помилки. Вивести їх на друк.
Теоретичні відомості до завдання № 1
Загальне число повідомлень, що не повторяються, і яке може бути складене з алфавіта m шляхом комбінування по n символів в повідомленні:
N = mn (1)
Невизначеність, що припадає на символ початкового алфавіта, складеного із рівноймовірних і незалежних символів:
H = log m (2)
Основа логарифму впливає лише на зручність обчислень. У випадку оцінки ентропії:
в війкових одиницях H = log2m біт/символ;
в десяткових одиницях H = lgm діт/символ, де log2m = 3.32lgm, 1 біт ≈ 0.3 діт;
в натуральних одиницях H = lnm нат/символ, де log2m = 1.443lnm, 1 біт = 0.693 нат.
Кількість інформації можна зобразити як добуток загального числа повідомлень k і середньої ентропії одного повідомлення:
I = kH біт (3)
Для випадків рівноймовірних і навзаємнезалежних символів вихідного алфавіту кількість інформації в k повідомленнях алфавіту m :
I = klog2m біт (4)
Для нерівно ймовірних алфавітів ентропія на символ алфавіту
біт/символ, (5)
а кількість інформації в повідомленні, складеному з k нерівно ймовірних символів:
біт. (6)
Кількість інформації визначається виключно характеристиками вихідного алфавіту. Об’єм – характеристика вторинного алфавіту. Об’єм інформації
Q = klcp, (7)
де lcp – середня довжина кодових слів вторинного алфавіту. Для рівномірних кодів (всі комбінації коду містять одинакову кількість розрядів)
Q = kn, (8)
де – довжина коду. Таким чином об’єм рівний кількості інформації, якщо lcp = H, тобто у випадку максимального інформаційного навантаження на символ повідомлення.
В загальному випадку ентропія – це кількість інформації на одиин стан системи. Якщо ентропія мала, то невизначеність відсутня.
Основні властивості ентропії:
Ентропія є неперервною і додатною функцією своїх аргументів (H>0).
Ентропія приймає мінімальне значення у двох випадках:
Якщо повідомлення формується за допомогою однієї ознаки, ймовірність появи якої рівне одиниці.
Якщо ймовірність i-ї ознаки приблизно рівна нулю.
Ентропія досягає максимуму, коли всі випадки рівноможливі.
Ентропія повідомлення, що складається з окремих повідомлень дорівнює сумі ентропій повідомлень [H(A,B) = H(A) +H(B)].
Розв’язання завдання № 1
Умову задачі можна зобразити у вигляді таблиці:
Хі
Х1
Х2
Х3
Х4
Рі
0,25
0,25
0,3
0,2
а) Визначимо ентропію такої системи:
.
H = - (0,25log20,25 + 0,25log20,25 + 0,3log20,3 + 0,2log20,2) ≈ 1 + 0,521090 + 0,464386 ≈ ≈ 1,985476 біт/стан.
б) За умови рівно ймовірних станів ( Р1 =Р2 =Р3 = Р4 = 0,25) ентропія системи буде найбільшою і становитиме:
= 2 біт/стан.
Теоретичні відомості до завдання № 2
Резистор - пасивний лінійний елемент, що володіє властивістю електричного опору. Струм і напруга електричного опору зв’язані законом Ома:
U = RI.
Величина, обернена до опору, називається електричною провідністю:
G = 1/R.
Активні лінійні елементи – це джерела електромагнітної енергії. Активні елементи поділяють на незалежні і залежні джерела.
Незалежні джерела можуть бути ідеальними чи реальними. Ідеальні джерела електрорушійної сили характеризуються напругою, яка не залежить від струму і характеризується електрорушійною силою Е. Внутрішній опір ідеального джерела ЕРС рівний нулю. Реальне джерело ЕРС має внутрішній опір і може бути відображене у вигляді послідовно з’єднаних ЕРС Е і опору R.
Ідеальне джерело струму: струм J джерела струму не залежить від напруги (внутрішня провідність джерела струму рівна нулю, опір джерела струму безмежно великий). Реальне джерело струму (з внутрішньою провідністю G = 1/R) може бути відображене у вигляді паралельної схеми, що містить джерело струму J , який чисельно дорівнює струму короткого замикання джерела струму і провідності G.
Перехід від схеми джерела ЕРС до еквівалентної схеми джерела струму за наступними співвідношеннями:
J = E/R, E = J/G, R = 1/G.
Закон Ома: на ділянці однорідного кола сила струму прямо пропорційна прикладеній напрузі та обернено пропорційна опору ділянки:
I = U/R
Закони Кіргофа. Для написання законів Кіргофа необхідно прийняти додатній напрям струму в кожній вітці.
Перший закон Кіргофа – алгебраїчна сума всіх струмів, що сходяться в будь-якому вузлі, дорівнює нулю.
Струми, направлені від вузла, умовно приймаються додатніми, а направлені до нього – від’ємними (або навпаки).
Другий закон Кіргофа – алгебраїчна сума ЕРС замкнутого контуру дорівнює алгебраїчній сумі спадів напруг в ньому.
Напрям обходу контура вибирається довільно.
Розв’язання завдання № 2
Спочатку визначаємо загальний опір електричного кола:
.
Використавши закони Ома і Кулона, запишемо:
; ; ; ;
.
Обчислення:
Rзаг = 200 Ом; I1 = 0,5 A; U2 = 60 B; I2 = 0,2 A; I3 = 0,3 A;
Ucd = 12 B.
Дослідимо тепер залежність Ucd від R1, R2, R3. Почергово фіксуємо два значення опорів і змінюємо третє.
R1, Ом
Ucd, В
10
18,46
24
16,67
38
15,19
52
13,95
66
12,9
80
12
94
11,21
108
10,53
122
9,92
136
9,38
150
8,89
R2, Ом
Ucd, В
230
11,44
244
11,57
258
11,7
272
11,8
286
11,9
300
12
314
12,09
328
12,17
342
12,24
356
12,31
370
12,37
R3, Ом
Ucd, В
230
11,44
244
11,57
258
11,7
272
11,8
286
11,9
300
12
314
12,09
328
12,17
342
12,24
356
12,31
370
12,37
Вищенаведені діаграми і графіки реалізовані засобами табличного процесора Exel. У ньому ж відбувались всі обчислення опорів, струмів і напруг. При обчисленнях застосовувались математичні функції СУММ(), СТЕПЕНЬ(), ПРОИЗВЕД().
Теоретичні відомості до завдання № 3
Для того щоб в отриманому повідомленні можна було знайти помилку, це повідомлення має нести додаткову інформацію, яка надасть змогу відрізнити правильний код від помилкового. Прийняте повідомлення може також містити код і його інверсію. Код та інверсія відправляються у канал зв’язку як одне ціле. Помилка після приймання виділяється через порівняння коду та його отриманої інверсії.
Існує також спосіб введення кодів з постійною вагою. Для того щоб спотворення будь-якого символа повідомлення привело до забороненої комбінації, необхідно виділити в коді комбінації, які в відрізняються одна від одної в ряді символів, частину з цих комбінацій заборонити і таким чином ввести в код надлишковість. Наприклад, в рівномірному коді вважаємо дозволеними кодові комбінації з постійним співвідношенням нулів і одиниць в кожній комбінації. Для двійкових кодів число кодових комбінацій в кодах з постійною вагою довжиною n символів дорівнює:
,
де l – кількість одиничок в кодовому слові.
Ще одним прикладом введення надлишковості в код є метод, суть якого в тому, що до вихідних кодів додаються нулі або одиниці так, щоб їх сума завжди була парною або непарною. Збій будь-якого одного символу завжди порушить умову (не)парності. В цьому випадку одна від одної комбінації мають відрізнятися мінімум у двох символах, тобто рівно половина комбінацій коду є забороненою.
У всіх вищенаведених випадках повідомлення містять надлишкову інформацію. Надлишковість повідомлення означає, що воно могло б містити більшу кількість інформації. Але всі наведені види надлишковості доводиться вводити для того, щоб можна було відрізнити помилкову комбінацію від правильної.
Коди без надлишковості виявляти чи виправляти помилки не можуть. Мінімальна кількість символів, в яких будь-які дві комбінації коду відрізняються одна від одної, називається кодовою відстанню. Мінімальна кількість символів, в яких всі комбінації коду відрізняються одна від одної, називається мінімальною кодовою відстанню. Мінімальна кодова відстань – параметр, що визначає завадостійкість і закладену в коді надлишковість. Мінімальною кодовою відстанню визначаються корекруючі властивості кодів.
В загальному випадку для виявлення r помилок мінімальна кодова відстань
d0 = r + 1.
Мінімальна кодова відстань, яка необхідна для одночасного виявлення і виправлення помилок:
d0 = r + s + 1,
де s – кількість помилок, які виправляються.
Для кодів, які тільки виправляють помилки,
d0 = 2s + 1.
Для того щоб визначити кодову відстань між двома комбінаціями двійкового коду, достатньо просумувати ці комбінації по модулю 2 і підрахувати кількість одиниць в отриманій комбінації.
Для виявлення і виправлення одиночної помилки співвідношення між числом інформаційних розрядів ni і числом коректуючи розрядів nk має відповідати таким умовам:
,
,
при цьому загальна довжина кодової комбінації n = ni + nk.
Для виправлення s помилок (d0 = 2s + 1):
.
Розв’язання завдання № 3
а) П’ятизначний двійковий код на всі поєднання має вигляд:
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
б) Для виправлення одиночних помилок кодова відстань має бути:
d ≥ 3.
Цю умову задовольняють наступні пари кодів:
00 - 07
00 - 11
00 - 13
00 - 14
00 - 15
00 - 19
00 - 21
00 - 22
00 - 23
00 - 25
00 - 26
00 - 27
00 - 28
00 - 29
00 - 30
00 - 31
01 - 06
01 - 10
01 - 12
01 - 14
01 - 15
01 - 18
01 - 20
01 - 22
01 - 23
01 - 24
01 - 26
01 - 27
01 - 28
01 - 29
01 - 30
01 - 31
02 - 05
02 - 09
02 - 12
02 - 13
02 - 15
02 - 17
02 - 20
02 - 21
02 - 23
02 - 24
02 - 25
02 - 27
02 - 28
02 - 29
02 - 30
02 - 31
03 - 04
03 - 08
03 - 12
03 - 13
03 - 14
03 - 16
03 - 20
03 - 21
03 - 22
03 - 24
03 - 25
03 - 26
03 - 28
03 - 29
03 - 30
03 - 31
04 - 09
04 - 10
04 - 11
04 - 15
04 - 17
04 - 18
04 - 19
04 - 23
04 - 24
04 - 25
04 - 26
04 - 27
04 - 29
04 - 30
04 - 31
05 - 08
05 - 10
05 - 11
05 - 14
05 - 16
05 - 18
05 - 19
05 - 22
05 - 24
05 - 25
05 - 26
05 - 27
05 - 28
05 - 30
05 - 31
06 - 08
06 - 09
06 - 11
06 - 13
06 - 16
06 - 17
06 - 19
06 - 21
06 - 24
06 - 25
06 - 26
06 - 27
06 - 28
06 - 29
06 - 31
07 - 08
07 - 09
07 - 10
07 - 12
07 - 16
07 - 17
07 - 18
07 - 20
07 - 24
07 - 25
07 - 26
07 - 27
07 - 28
07 - 29
07 - 30
08 - 15
08 - 17
08 - 18
08 - 19
08 - 20
08 - 21
08 - 22
08 - 23
08 - 27
08 - 29
08 - 30
08 - 31
09 - 14
09 - 16
09 - 18
09 - 19
09 - 20
09 - 21
09 - 22
09 - 23
09 - 26
09 - 28
09 - 30
09 - 31
10 - 13
10 - 16
10 - 17
10 - 19
10 - 20
10 - 21
10 - 22
10 - 23
10 - 25
10 - 28
10 - 29
10 - 31
11 - 12
11 - 16
11 - 17
11 - 18
11 - 20
11 - 21
11 - 22
11 - 23
11 - 24
11 - 28
11 - 29
11 - 30
12 - 16
12 - 17
12 - 18
12 - 19
12 - 21
12 - 22
12 - 23
12 - 25
12 - 26
12 - 27
12 - 31
13 - 16
13 - 17
13 - 18
13 - 19
13 - 20
13 - 22
13 - 23
13 - 24
13 - 26
13 - 27
13 - 30
14 - 16
14 - 17
14 - 18
14 - 19
14 - 20
14 - 21
14 - 23
14 - 24
14 - 25
14 - 27
14 - 29
15 - 16
15 - 17
15 - 18
15 - 19
15 - 20
15 - 21
15 - 22
15 - 24
15 - 25
15 - 26
15 - 28
16 - 23
16 - 27
16 - 29
16 - 30
16 - 31
17 - 22
17 - 26
17 - 28
17 - 30
17 - 31
18 - 21
18 - 25
18 - 28
18 - 29
18 - 31
19 - 20
19 - 24
19 - 28
19 - 29
19 - 30
20 - 25
20 - 26
20 - 27
20 - 31
21 - 24
21 - 26
21 - 27
21 - 30
22 - 24
22 - 25
22 - 27
22 - 29
23 - 24
23 - 25
23 - 26
23 - 28
24 - 31
25 - 30
26 - 29
27 - 28
Програмний варіант розв’язання цієї задачі наведено нижче. Використано мову програмування Турбо Асемблер. Основною процедурою розв’язання завдання а) є showbits, для б) – submits.
Текст програми
dosseg
.model small
.data
nxtstr db 13,10,'$'
cmn db ' - ','$'
fmsg1 db ' ПРОГРАМА ПОБУДОВИ ДВIЙКОВОГО КОДУ I ВИБОРУ З НЬОГО КОМБIНАЦIЙ,',13,10,'$'
fmsg2 db ' ЩО ВЗАЄМНО ВИПРАВЛЯЮТЬ ПОМИЛКИ',13,10,'$'
wmsg db 'Натиснiть будь-яку клавiшу',13,10,'$'
.code
mov ax, @data
mov ds,ax
call intro
mov bl,0
m1: call showbits
inc bl
cmp bl,23d
jne m2
call wait1
m2: cmp bl,32d
jne m1
call wait1
xor bx,bx
k2: cmp bl,32d
je k1
call sumbits
inc bl
jmp k2
k1: mov bl,bh
inc bl
cmp bh,32d
je ex
;mov ah,1
;int 21h
inc bh
jmp k2
ex: mov ah,4ch
int 21h
wait1 proc near
mov dx, offset wmsg
mov ah,9
int 21h
mov ah,8
int 21h
ret
wait1 endp
intro proc near
mov dx, offset fmsg1
mov ah,9
int 21h
mov dx, offset fmsg2
int 21h
call wait1
ret
showbits proc near
mov ah,2
mov cl,00010000b
cc3: mov ch,bl
and ch,cl
jz cc1
mov dl, 49d
jmp cc2
cc1: mov dl, 48d
cc2: int 21h
shr cl,1
jnz cc3
mov ah,9
mov dx, offset nxtstr
int 21h
ret
showbits endp
sumbits proc near
xor dl,dl
mov cx,bx
xor ch,cl
mov dh,ch
mov cl,00010000b
c2: mov ch,dh
and ch,cl
jz c1
inc dl
c1: shr cl,1
jnz c2
cmp dl,3
jl ext
inc si
xor di,di
s1: cmp si,di
je c3
add di,23
cmp di,260d
jl s1
jmp c4
c3: call wait1
c4: xor dh,dh
mov al,bh
mov dl,10d
xor ah,ah
div dl
mov dl,al
add dl,48d
mov ah,2
int 21h
mov al,bh
mov dl,10d
xor ah,ah
div dl
mov dl,ah
add dl,48d
mov ah,2
int 21h
mov dx, offset cmn
mov ah,9
int 21h
mov al,bl
mov dl,10d
xor ah,ah
div dl
mov dl,al
add dl,48d
mov ah,2
int 21h
mov al,bl
mov dl,10d
xor ah,ah
div dl
mov dl,ah
add dl,48d
mov ah,2
int 21h
mov dx, offset nxtstr
mov ah,9
int 21h
ext: ret
sumbits endp
end
Висновок
В даній курсовій роботі розглянуті одні з основних розділів науки, яка вивчає інформаційні технології. Розв’язані задачі торкаються таких тем як кількісна оцінка інформації, основні закони і методи розрахунку лінійних електричних ланцюгів, виявлення і виправлення помилок в повідомленнях. Таким чином, очевидно, що для вирішення реальних проблем розробки, проектування, реалізації інформаційних технологій необхідні знання в багатьох розділах математики, електротехніки, програмування і суміжних науках. Важливим висновком є те, що разом з теоретичною базою, для розв’язання сучасних задач необхідними є ґрунтовні прикладні знання і навички.