O’zbekiston respublikasi aloka va axborotlashtirish agentligi toshkent Axborot Texnologiyalari Universiteti Samarkand filiali



Download 255,5 Kb.
bet7/7
Sana22.03.2021
Hajmi255,5 Kb.
#61952
1   2   3   4   5   6   7
Bog'liq
унлик саноқ системаси

Misol. 1000000000002 soni o’nli sanoq sistemasiga quyidagicha o’tkaziladi:



Misol. 9810 soni ikkili sanoq sistemasiga quyidagicha o’tkaziladi:


_

9

8




2











































9

8

_

4

9




2





































0




4

8

_

2

4




2





































1




2

4

_

1

2




2





































0




1

2

_

6




2








































0




6

_

3

2











































0




2

1

<q














































1













9

8

10

=

1

1

0

0

0

1

0

2




Misol. 11810 soni sakkizlik sanoq sistemasiga quyidagicha o’tkaziladi.


_

1

1

8




8










1

1

2

_

1

4

8










6







8

1<q



















6











































1

1

810=

1

6

68





Misol. 6148 soni o’nli sanoq sistemasiga quyidagicha o’tkaziladi.


_

6

1

4




1

2













5

0




_

4

7

1

2




_

­1

1

4




3

6

3

<

q




1

0

6




1

1



















8




























6

1

4

8

=

3

9

6

10

Bu misollarda ko’rinib turibdiki, yangi sanoq sistemasi asosiga ketma-ket bo’lish usuli faqat o’nli sanoq sistemasidagi sonlarni boshqa sanoq sistemasiga o’tkazishda qulay, chunki bunda bo’lish amali biz o’rganib qolgan o’nli sanoq sistemasida amalga oshiriladi.

Boshqa sanoq sistemasida arifmetik amallarni bajarishda ma’lum ko’nikmalar talab qilinishi sababli, o’nli sanoq sistemasiga o’tishda dastlabki butun sonning xona raqamlarini mos salmoqlarga ko’paytmalarining yig’indisi ko’rinishidagi ifodadan, ya’ni (2.1) ifodadan foydalanish oson hisoblanadi.

Misol. 11011012 sonini o’nli sanoq sistemasiga quyidagicha o’tkazish mumkin:

1×26+1×25+0×24+1×23+1×22+0×21+1×20=10910.



Misol. 6148 soni o’nli sanoq sistemasiga quyidagicha o’tkaziladi.

6×82 +1×81 +4×80 =384+8+4=39610



Misol. 18S16 soni o’nli sanoq sistemasiga quyidagicha o’tkaziladi:

1×162 +8×161 +S×160 =1×256+8×16+12×1=39610



Kasrlarni o’tkazish. Aytaylik, r-li sanoq sistemasidagi tug’ri kasrni q-li sanoq sistemasiga o’tkazish talab qilinsin.

O’tkazish quyidagi qoidaga binoan amalga oshiriladi:

Berilgan to’g’ri kasrni va hosil bo’lgan ko’paytmalarning kasr qismlarini q ga ketma-ket ko’paytirish yo’li bilan q-li raqamlarning r-li yozilishini (katta xonasidan boshlab) butun sonlar ko’rinishida hosil qilamiz. Ko’paytirish dastlabki r-li sanoq sistemasida amalga oshiriladi.

Misol. Quyida 0,41 sonini ikkili sanoq sistemasiga o’tkazish keltirilgan (r=10, q=2):

0,41


x 2

0,82


x __2

1,64


x 2

1,28


x 2

0,56


x_ 2

1,12


x 2

0,24


x 2

0,48 0,4110 =0,01101002


Bu misoldan ko’rinib turibdiki, kasrlarni o’tkazish umumiy holda cheksiz jarayondir, shuning uchun o’tkazish taqriban amalga oshiriladi. Sonning q-li ifodalanishidagi raqamlar soni q-li sanok sistemasidagi son aniqligining dastlabki r-li sanoq sistemasidagi son aniqligiga mos bo’lishi shartidan topiladi.

Ixtiyoriy sonlarni o’tkazish. Butun va kasr qismli sonlarni bir sanoq sistemasidan ikkinchi sanoq sistemasiga o’tkazish ikki bosqichda amalga oshiriladi: avval butun qismi o’tkazilsa, keyin kasr qismi o’tkaziladi.

O’nli sanoq sistemasidagi sonlarni o’nli-ikkili sanoq sistemasiga o’tkazish va aksincha. Bunday o’tkazish arifmetik amallarga murojaat qilinmay, har bir o’nli raqamni uning ikkili ekvivalenti (tetradasi) bilan qabul qilingan kodlash sistemasiga binoan almashtirish yo’li bilan amalga oshiriladi.

Misol. 118,37510 soni ikkili-o’nli sistemaga quyidagicha o’tkaziladi:

Teskari o’tishda ikkili o’nli sonning dastlabki ifodasi verguldan chap va o’ng tarafga qarab to’rt xonadan iborat guruhlarga ajratiladi va har bir tetrada o’nli sistemaga o’tkaziladi.



Sakkizli sanoq sistemasidagi sonlarni ikkili sanoq sistemasiga o’tkazish va aksincha. Sakkizli sanoq sistemasidagi sonni ikkili sanoq sistemasiga o’tkazish uchun bu sonning har bir raqami mos uch xonali ikkili son (triada) bilan almashtiriladi va keraksiz nollar tashlab yuboriladi.

Misol. 305,48 sonini ikkili sanoq sistemasiga o’tkazish talab qilinsin.

Javob:

Ikkili sanoq sistemasidagi sonni sakkizli sanoq sistemasiga o’tkazish uchun bu sonning ifodasi verguldan chap va o’ng tarafga qarab, uch xonadan iborat guruhlarga ajratilib (zarurat bo’lsa, eng chetki o’ng va chap guruhlar nollar bilan to’ldiriladi), har bir uch xonali guruh mos sakkizlik bilan almashtiriladi.

Misol. (1101111001,1101)2 sonini sakkizli sanoq sistemasiga o’tkazish talab qilinsin.

Javob:


O’n oltili sanoq sistemasidagi sonlarni ikkili sanoq sistemasiga o’tkazish va aksincha. O’n oltili sanoq sistemasidagi sonni ikkili sanoq sistemasiga o’tkazish uchun bu sonning har bir raqami mos to’rt xonali ikkili son bilan almashtiriladi va keraksiz nollar tashlab yuboriladi.

Misol. (7V2,Ye)16 sonini ikkili sanoq sistemasiga o’tkazish talab qilinsin.

Javob:

Ikkili sanoq sistemasidagi sonni o’n oltili sanoq sistemasiga o’tkazish uchun bu sonning ifodasi verguldan chap va o’ng tarafga qarab to’rt xonadan iborat guruhlarga ajratilib (zarurat bo’lsa, eng chetki o’ng va chap guruhlar nollar bilan to’ldiriladi), har bir to’rt xonali guruh mos o’nlik raqam bilan almashtiriladi.

Misol. (11111111011,100111)2 ikkili sonni o’n oltili sanoq sistemasiga o’tkazish talab qilinsin:
Javob:


Yuqoridagilardan ko’rinib turibdiki, sonlarni bir sanoq sistemasidan ikkinchisiga o’tkazish aytarlicha mehnat talab qiluvchi jarayondir. Ammo, hozirgi zamon hisoblash mashinalarida o’tkazish asosan avtomatik tarzda qism programmalar yordamida amalga oshiriladi.
Sonlarni ifodalash usullari
EHM larda sonlar va sonli bo’lmagan informasiya ikkili xonalar majmuasi sifatida ifodalanadi. Bunda ikkili xonalar soni ma’lumotlar formatini belgilaydi. Ma’lumotlar formati EHM konstruksiyasiga bog’lik bo’lib, o’zgarmas yoki o’zgaruvchi bo’lishi mumkin. Ko’pincha ma’lumotlarning o’zgarmas formati deganda, EHM xona to’ri tushuniladi. EHM uchun quyidagi informasiya birliklari joizdir:

bit - bitta ikkili xona;

bayt - sakkiz bitdan tashkil topadi;

yarim so’z - ikki baytdan iborat (16 ta ikkili xona);

so’z - to’rt baytdan iborat (32 ta ikkili xona);

ikkilangan so’z - sakkiz baytdan iborat (64 ta ikkili xona);

baytlar qatori - uzunligi baytga karrali.

EHMda ikkili sonlar ikkita shaklda ifodalanadi: qo’zg’almas vergulli (tabiiy shakl) va suriluvchi vergulli (normal shakl). Bu usullarning mohiyatini (2.4) ifoda orkali ko’rish mumkin.



Qo’zg’almas vergul (yoki sonlarning tabiiy shaklda ifodalanishi) m=const qiymati bilan xarakterlanadi. Bu holda mashinada ishlanadigan barcha sonlar uchun vergul holati o’zgarmaydi. m=0 da xona to’ri yoki son formati ikkili sanoq sistemasida 2.1-rasm «a»-dagidek ko’rinishga ega bo’ladi. Bu yerda n xona (2-1 dan to 2-n gacha) sonning raqam qismini va bir xona ishorani ifodalaydi. Ya’ni:

Bu ifodadan ko’rinib turibdiki, êX êmax=0,11..1=1-2-n, nolga teng bo’lmagan minimal sonning moduli esa

êX êmin=0,00...01= 2-n.

Demak, m=0 da ikkili sanoq sistemasidagi sonlarning diapazoni quyidagi tengsizlik orqali aniqlanadi:

0£ êX ê£ 1-2 - n.

2.1 - rasm «b» va «v» da mos holda 2 va 4 baytga karrali son formatlari ko’rinishlari keltirilgan.

a)


n

2 - 1

. . .

2 - n







n+1




b)


n

2 - 1

. . .

2 - 15




2 bayt (16 xona)




v)


n

2 - 1

. . .

2 - n







4 bayt (32 xona)




g)

n

2 n -1

2 n - 2

. . .

2 1

2 0







n+1










2.1 - rasm. Qo’zg’almas vergulli sonlarning formati.
Qator EHM larda qo’zg’almas vergul m=n qiymati bilan xarakterlanadi. Bunda n+1 xonali (bittasi ishora xonasi) son formatidagi xonalar salmog’i 2.1-rasm «g»da keltirilgan.

Bu holda: êX êmin=0,0...01=20

êX êmax=0,1...1=2n -1

Yuqorida ko’rilgan son formatlarida absolyut qiymatlari bo’yicha birdan kichik bo’lgan sonlar ifodalanishi mumkin. Bu esa mashina arifmetik qurilmasining konstruksiyasini soddalashtirishga, hamda uskuna hajmini kamaytirishga imkon beradi. Sonlarni bunday ifodalashdagi kamchilik sifatida sonlarning ifodalanish diapazonining kichikligi va shuning natijasi o’laroq, hisoblash programmalarini tuzishda masshtablashning amalga oshirilishi zaruriyatini ko’rsatish lozim, chunki ba’zi bir amallarni (masalan, jamlash amalini) bajarishda mashina xona to’rining to’lib toshishi ro’y berishi mumkin.



Sonlarning qo’zg’almas vergulli ifodalanishi ma’lumotlarni uzatuvchi sistemalarda, texnologik jarayonlarni boshqarishda va informasiyaning vaqtning real rejimida ishlanishida qo’llaniluvchi, hisoblash imkoniyatlari unchalik katta bo’lmagan mashinalarda ishlatiladi.

Suriluvchi vergul (ba’zida sonlarning normal shaklda ifodalanishi deb ataladi) m¹sonst qiymati bilan xarakterlanadi. U holda,(2.4) ifodadagi ± p- i = ±( 1 p-1 + 2 p-2 +...+ n p-n) sonning mantissasi deb, pm esa sonning tartibi deb ataladi. m-ning qiymati musbat yoki manfiy bo’lishi mumkin. Agar, pm ³ n bo’lsa, - butun son, agar m£ 0 bo’lsa, bu son kasr son, agar n>pm³ 1 bo’lsa, Xp soni ham butun, ham kasr qismlariga ega bo’ladi.

Sonning suriluvchi vergulli ifodalanishini o’nli sanoq sistemasidagi misol orqali ko’rsatish mumkin. Masalan, 535,427 va 0,00535427 sonlari suriluvchi vergulli ko’rinishda quyidagicha bo’ladi:

535,427=103 •0,535427

535,427=104 •0,0535427

0,00535427=10- 2 •0,535427

0,00535427=10- 1 •0,0535427


Suriluvchi vergulli son mantissasining aniqligini oshirish maqsadida normallash qo’llaniladi. Normallashgan deb hisoblanuvchi sonda uning mantissasi quyidagi tengsizlikni qanoatlantirishi lozim:

1>êi p-i ê³p-1.

Boshqacha aytganda, normallashgan sonda 1 ¹0 bo’ladi.

Suriluvchi vergul uchun son formati ikkili sanoq sistemasida 2.2-rasmdagidek ko’rinishga ega. Bunda nM xona (2-1 dan 2-nM gacha) son mantissasini ifodalashga va nT xona son tartibini ifodalashga ishlatiladi (nT -tartib ishorasiga bitta xona ishlatilsa, tartib kodini 20 dan 2nt-2 gacha salmoqli xonalar tashkil etadi). Xona to’rida mantissa ishorasini ko’rsatuvchi xona ko’zda tutilgan.


a)

nT



nT-2

2


. . .

0

2

nm


-1

2


. . .

-nM

2





nT













nM













nT +

nM +

1






b)


nM

2 6

. . .

20

2 - 1

. . .

2 - 24







nT=7







3 bayt =

nM




1

bayt












v)


nM

2 6

. . .

20

2 - 1

. . .

2 - 56







nT=7







7 bayt = nM







1

bayt












2.2-rasm. Suriluvchi vergulli sonlarning formati.


Suriluvchi vergulli sonlarning diapazonini baholaylik. Ma’lumki,

Bu ifodadan:



Oxirgi tenglik normallashgan son uchun kuchga ega.

Bu tengliklarda çmmaksç=2nT-1-1

Demak, sonlarning suriluvchi vergulli ifodalanishidagi diapazoni quyidagicha ifodalanadi:



EHMlarda manfiy sonlarni ifodalashda to’g’ri, teskari va qo’shimcha kodlardan foydalaniladi.

Manfiy sonning to’g’ri kodi deb uning ishora xonasiga bir yozilgan tabiiy shakldagi yozuvi tushuniladi. Musbat sonning to’g’ri kodi uning tabiiy shakldagi odatdagi ifodasiga mos keladi, chunki uning ishora xonasiga nul yoziladi.

Butun sonning to’g’ri kodini hosil qilish uchun quyidagi ifodadan foydalaniladi:



[X]òo’g’ (2.7)

bu yerda n - son ifodasidagi xonalar soni.



Misol. a) X= +10110 va b) X= -10110 butun sonlarni to’g’ri kodda yozish lozim bo’lsin;

Javob: a)[X]t o’ g’=0.10110; b)[X]t o’ g’=1.10110;

To’g’ri kasrning to’g’ri kodini xosil qilish esa quyidagi ifoda yordamida bajariladi:



[X]to’g’ (2.8)

Misol. Quyidagi to’g’ri kasrlarni to’g’ri kodda yozish kerak bo’lsin:

a) X = + 0, 1010 ;

b) X = - 0, 1010;

Javob: a) [X]t o’ g’=0,1010; b)[X]ò o’ g’=1,1010 ;

Yuqoridagi ifodalardan ko’rinib turibdiki, nol to’g’ri kodda ikkita: musbat 0,000... va manfiy 1,000... qiymatga ega. Odatda EHMda musbat nol ishlatiladi. Lekin, hisoblash jarayonida nolning manfiy ifodasi paydo bo’lishi mumkin. Nolning ikkala ifodasi to’la ekvivalent hisoblanadi va har birining qo’llanishi xatolikka olib kelmaydi.

To’g’ri kod soddaligi tufayli EHMlarda keng qo’llaniladi. Bu kodda sonlarni xotirada saqlash, ko’paytirish va bo’lish amalini bajarish qulay hisoblanadi.

To’g’ri kodning kamchiligi sifatida son ifodalarining turli kombinasiyalaridagi jamlash amalining murakkabligini ko’rsatish mumkin.



Turli ishoralarga ega bo’lgan sonlarni qo’shish va ayirish uchun manfiy sonlarni ifodalovchi maxsus kodlar - qo’shimcha va teskari kodlardan foydalaniladi.

Qo’shimcha kodda X soni va uning ifodasi o’rtasidagi bog’liklik quyidagicha bo’ladi:

[X]qo’sh (2.9)

Rasman, manfiy sonning qo’shimcha kodiga o’tish quyidagicha amalga oshiriladi: ishora xonasiga bir yoziladi, raqam xonalaridagi birlar nollarga, nollar esa birlarga almashtiriladi, keyin eng kichik xonaga bir qo’shiladi.

Musbat sonning qo’shimcha kodi uning to’g’ri kodiga mos keladi.

Misol. a) X= +101101; b) X= -110011 butun sonlarni va

v) X= +0,110011; g) X= - 0,110011 kasr sonlarni qo’shimcha kodda ifodalash talab qilinsin.



Javob:

a) [X] q o’ sh=0.101101; b) [X]q o’ sh=1.001101;



v) [X]q o’ sh =0,110011; v) [X]q o’ sh=1,001101;

Teskari kodda X soni va uning ifodasi o’rtasida quyidagicha bog’liklik mavjud:

(2.10)

Rasman, manfiy sonning teskari kodiga o’tish quyidagicha amalga oshiriladi: ishora xonasiga bir yoziladi, raqam xonalaridagi birlar nollarga, nollar esa birlarga almashtiriladi.

Musbat sonning teskari kodi uning to’g’ri kodiga mos keladi.

Misol. a) X=+101101; b) X= -11011 butun sonlarni va

v) X=+0,110011; g) X= -0,11011 kasr sonlarni teskari kodda ifodalash talab qilinsin:



Javob: a) [X]t ye s k=0.101101; b) [X]t ye s k=1.00100;

v) [X]t ye s k=0,110011; g) [X]t ye s k=1,001100;



Ikkili-o’nli sanoq sistemasida arifmetik

amallarning bajarilishi
Ikkili-o’nli sanoq sistemasi EHMda sonlarni ifodalashda va ular ustida arifmetik amallar bajarishda keng qo’llaniladi. Ikkili-o’nli sanoq sistemasida arifmetik amallarni bajarish usuli ikkili arifmetika qoidalariga asoslansada, o’ziga xos xususiyatlarga ega.

 8421 kodida arifmetik amallarning bajarilishi. Ushbu koddan foydalanib, tetradalar yordamida o’nli sonlarni tabiiy pozision ifodalash mumkinligini hisobga olgan holda, o’nli raqamlarni qo’shish masalasi quyidagicha ikkita bosqichda hal etiladi.

Birinchi bosqichda o’nli raqamlarning ikkili kodlari ikkili sanoq sistemasi qoidalariga asosan jamlanadi.Ikkinchi bosqichda natijaga tuzatishlar kiritiladi.

Bunda uchta hol ro’y berishi mumkin:

1.Birinchi bosqich natijasi 10 dan kichik. Natija to’rtta ikkili xonalar orqali ifodalanib, katta o’nli xonaga ko’chirish qiymati signali shakllanmaydi. Natijaga tuzatish kiritish talab qilinmaydi. Masalan,

4+5=9 0100

+

0101

1001

Natija: 0000 1001.

2. Birinchi bosqich natijasi 10 dan 15 gacha oraliqda. Natija o’nli sanoq sistemasi asosidan katta, demak, yig’indini to’g’ri o’kish uchun olingan kodga tuzatish kiritish lozim, ya’ni ko’chirish qiymati bo’lgan birni qo’shni katta tetradaga yozib, asosiy tetradadan o’nni ayirish lozim. Masalan,



5+6=11 0101

+

0110

1011

Tuzatish kiritilgandan so’ng natija quyidagicha bo’ladi:



0001 0001

3. Birinchi bosqich natijasi 16 dan 19 gacha oraliqda. Bu holda ko’chirish qiymati bo’lgan birni qo’shni katta tetradaga yozish lozim. Lekin bunda asosiy tetradadagi son 10 ga kamayishi o’rniga birdaniga 16 ga kamayadi. Demak, natijani tuzatish uchun unga 6 ni qo’shish kerak. Masalan,



9+8=17 1001

+

1000



1 0001
Tuzatish kiritilgandan so’ng, quyidagini olamiz: 0001 0111

Shuni aytish lozimki, ikkinchi holda tuzatish uchinchi holdagidek amalga oshirilishi mumkin, chunki 10 sonini ayirishni uning qo’shimcha kodini, ya’ni 6 ni qo’shish bilan almashtirish mumkin.


Misol. [X1]10=4097 va [X2]10=5445 sonlarini 8421 kodda qo’shish talab etilsin:

0100 0000 1001 0111

+

0101 0100 0100 0101



1001 0100 1101 1100

+

0000 0000 0110 0110 tuzatish

1001 0101 0100 0010
Yakuniy natija [X3]10=9542
8421 kodida ko’paytirish va bo’lish amallarini bajarish aytarlicha qiyinchilik tug’dirmaydi, chunki ko’paytirish aslida ko’payuvchi modulini ko’p marta qo’shish bo’lsa, bo’lish bo’linuvchi modulidan bo’luvchi modulini ko’p marta ayirishdan iboratdir.
8421+3 kodida arifmetik amallarning bajarilishi. Ushbu kodda o’nli raqamlarni qo’shish ikkita bosqichda amalga oshiriladi.

Birinchi bosqichda o’nli raqamlarning ikkili kodlari ikkili sanoq sistemasi qoidalariga asosan jamlanadi.

Ikkinchi bosqichda natijaga tuzatishlar kiritiladi.

Bunda ikkita hol ro’y berishi mumkin:

1. Birinchi bosqich natijasi 10 dan kichik va yig’indi 3 ta ortig’i bilan emas, balki 6 ta ortig’i bilan hosil bo’ladi. Haqiqatan ham: x1i+3+x2i+3=x3i+6.

Yakuniy yig’indini olish uchun dastlabki natijadan 3 ni (ikkili sanoq sistemasida) ayirish lozim.



Masalan:

2+6=8 0101

+

1001



1110

-

0011 - tuzatish



1011

2. Birinchi bosqich natijasi 10 dan katta va katta o’nli xonaga ko’chirish qiymati signali shakllanadi. Yig’indi 6 ta birlikki kam holda hosil bo’ladi. Demak, yakuniy yig’indini olish uchun dastlabki natijaga 3 ni (ikkili sanoq sistemasida) qo’shish lozim.



Masalan:
4+7=11 0111

+

1010



1 0001

+

0011 tuzatish



1 0100
Misol. X1=3542 va X2=1476 sonlarni bir-biriga qo’shish talab etilsin.
Birinchi bosqich quyidagini beradi:
0110 1000 0111 0101

+

0100 0111 1010 1001



1011 0000 0001 1110

(0) (1) (1) (0)


Qavs ichidagi raqamlar o’ng tarafdagi tetradadan ko’chirish qiymati shakllanganligini ko’rsatadi.
Ikkinchi bosqich natijasi quyidagicha:
1011 0000 0001 1110

+

(-11) (+11) (+11) (-11)



1000 0011 0100 1011

Bu natija 8421+3 kodida 5018 ni beradi.




Arifmetik amallar natijalarini yaxlitlash

Ma’lumki, hisoblashlarning aniqligiga ta’sir etuvchi omillardan biri mashina xona to’rining chegaralanganligi sababli sodir bo’luvchi arifmetik amallar natijasidagi xatoliklardir. Bu ta’sirni kamaytirish maqsadida natijalarni yaxlitlash keng qo’llaniladi.

To’g’ri kodda ifodalangan qo’zg’almas vergulli sonlar ustida arifmetik amallar bajarilganda yaxlitlashni ko’raylik.

Qo’shish va ayirish. Bu amallarning bajarilishi jarayonida xatoliklar sodir bo’lmaydi. Shu sababli bu amallarda yaxlitlash bajarilmaydi.

Ko’paytirish. Ko’paytiruvchining kichik xonalaridan boshlab ko’paytirishda 2n xonali ko’paytma olinadi (n operandlar xonaliligi). Natija n xonagacha yaxlitlanganda 2-(n+1) dan to 2-2n gacha salmoqli xonalar tashlab yuboriladi. Natijada ko’paytmaga Dìàêñ=2-n-2-2n »2-n va Dìin=2-2n xatolik kiritiladi, ya’ni natija doimo ko’paytmaning absolyut qiymatidan farqlanadi.

Yaxlitlash 2-(n+1) salmoqli xonaga birni qo’shish orqali bajariladi va natija, tashlab yuborilgan xonalar qiymatlariga bog’liq holda, ko’paytmaning absolyut qiymatidan kichikroq yoki kattaroq bo’ladi.



Misollar.

1. Quyidagi ko’paytma yaxlitlanganda,

2-(n+1) 2-2n

| |


0, x31... x3n 0 1 ... 1

+1

--------------------------------------



0, x31... x3n
natija ko’paytma absolyut qiymatidan kichikroq bo’lib, D=2-(n+1)-2-2n xatolikka ega bo’ladi.
2. Quyidagi ko’paytma yaxlitlanganda,

2-(n+1)

|

0, x31... x3n-3 0 1 1 1 0 ... 0



+1

--------------------------------------

0, x31... x3n-3 1 0 0 0
natija ko’paytma absolyut qiymatidan kattaroq bo’lib, D=2-(n+1) xatolikka ega bo’ladi.

Ko’paytmaning 2-(n+1) salmoqli xonasiga tasodifiy birni qo’shish yo’li bilan ham yaxlitlash imkoni bor. Bunda natija |D|£2-n xatolikka ega va ishorasi turlicha bo’ladi.

Bunday yaxlitlashlarning kamchiligi sifatida ularning ikkita sonni jamlashga sarf qilinadigan vaqtni talab qilishini ko’rsatish mumkin. Yaxlitlangan ko’paytmaning eng kichik xonasini (x3n) doimo birga teng deb olish yo’li bilan ushbu kamchilikni bartaraf qilish mumkin. Bu holda ko’paytma xatoligi turli ishorali bo’lib, qiymati |D|£2-n bo’ladi.

Amalda tashlab yuboriladigan xonalarning eng kattasiga birni qo’shishga asoslangan usul keng tarqalgan.

Ko’paytiruvchining katta xonalaridan boshlab ko’paytirishda ham yaxlitlash yuqoridagi usullardan birini qo’llab bajariladi.

Bo’lish. Qoldiqni siljitish bilan bo’lishda bo’linma raqamlarining cheksiz qatorini olish mumkin. Natija n xonagacha yaxlitlanganda bo’linmaga |D|maks»2-n xatolik kiritiladi.

Yaxlitlash qo’llanganda, masalan, tashlab yuboriladigan xonalarning eng kattasiga bir qo’shilganda, xatolik ikki marta kamayadi va turli ishorali bo’ladi. Bunda bo’linmada verguldan keyin n+1 raqamga ega bo’lish kifoya.

Yuqorida keltirilgan yaxlitlash usullari suriluvchi vergulli, qo’shimcha va teskari kodlarda ifodalangan sonlar ustida amallar bajarilganda murakkablashadi. Manfiy natijaning qo’shimcha kodi yaxlitlanganda u avval to’g’ri kodga o’tkaziladi. Manfiy natijaning teskari kodi yaxlitlanganda esa birni qo’shish o’rniga tashlab yuboriladigan xonalarning eng kattasidan birni ayirish lozim.

Suriluvchi vergulli sonlar ustida arifmetik amallar bajarilishi natijalarini yaxlitlash usullarining murakkablashishiga quyidagilar sababchidir. Qo’shish-ayirish natijasi tartiblarni tenglashtirishdagi kichik qo’shiluvchi mantissasining normallashganligining buzilishi hamda yig’indi (ayirma) mantissasining o’ng tomonga normallashtirilishi evaziga xatolik bilan shakllanadi. Bo’lishdagi qo’shimcha xatolik manbai sifatida bo’linma mantissasining normallashtirilishini ko’rsatish mumkin.

Suriluvchi vergulli sonlar ustida qo’shish-ayirish amali natijasini yaxlitlash usuli operandlar ishoralariga bog’liq. Ishoralari bir xil sonlarni qo’shganda natijaning normallashtirilgan mantissasi yaxlitlanadi. Ishoralari turli sonlarni qo’shganda yaxlitlash amalga oshirilmaydi. Bunda paydo bo’lishi mumkin bo’lgan xatolik tarkibiga tartiblarni baravarlashtirishdagi tashlab yuborilgan raqamlar guruhi kodi hamda yakuniy natija shakllanishidagi tashlab yuboriladigan qo’shimcha xona raqami qiymati kiradi.

Xatolikni tashkil etuvchilarining ishoralari turlicha va har biri |D|£2-(n+1). Tartiblarni baravarlashtirishdagi xonalarni tashlab yuborish evaziga paydo bo’lgan xatolik ishorasi yig’indi ishorasiga teskari. Yig’indining qo’shimcha xonasini tashlab yuborish esa boshqa ishorali xatolikning paydo bo’lishiga sabab bo’ladi.

C++ ning standarti .h bilan tugaydigan (stdio.h ...) standart kutubhona e'lon fayllarini yangittan nomlab chiqdi. Bunda .h qo'shimchasi olib tashlandi.

C dan qolgan fayllar ismiga esa c harfi qo'shildi.

 Misol uchun:

iostream.h -> iostream

string.h -> cstring

stdlib.h -> cstdlib

time.h -> ctime

  C dan meros qolgan kutubhona 18 ta e'lon fayli orqali berilgan. C++ ga tegishli standart kutubhonada esa 32 ta e'lon fayl bor. Fayllarni yangittan belgilashdan maqsad kutubhodadagi funksiya va ob'ektlarni std deb ataluvchi ismlar sohasiga (namespace) kiritishdir.

  Ismlar sohasining o'zi ham nisbatan yangi tushuncha. Ismlar sohasini alohida dastur qismlari deb faraz qilsak boladi. Boshqa-boshqa sohalarda ayni ismli funksiya, o'zgaruvchi nomlari va ob'ektlar berilishi mumkin. Va bunda hech qanday ismlar to'qnashuvi sodir bo'lmaydi. Misol uchun bizda global, std va fun::obj degan ism sohalari bo'lsin. Ularning har birining ichida esa cout

nomli ob'ekt aniqlangan bo'lsin. C++ da to'liq aniqlangan ism (fully qualified name) degan tushuncha bor. Shunga ko'ra har bir cout ob'ektinig to'liq ismi quyidagicha bo'ladi:

 Ismlar sohasi ob'ekt

 global ::cout

std std::cout

fun::obj fun::obj::cout

:: operatori sohalarni bog'lash uchun qo'llaniladi. fun::obj nomli ismlar sohasida obj fun ichida joylashgan ism sohasidir. Global ismlar sohasida aniqlangan funksiya va boshqa turdagi dastur birliklariga programmaning

istalgan yeridan yetishsa bo'ladi. Masalan global ismlar sohasida e'lon qilingan int tipidagi k ismli o'zgaruvchimiz bol'sa, uning ustidan dasturning hohlagan blokida amal bajarsak bo'ladi.

Ismlar sohasi mehanizmi dasturchilarga yangi kutubhonalarni yozish ishini ancha osonlashtiradi. Chunki yangi kutubhonada ayni ismlar qo'llanishiga qaramay, ismlar konflikti yuz bermaydi. Dastur yoki kutubhona yozganda yangi ismlar sohasini belgilash uchun namespace istalgan_ism {

...


foo();

int k;


String str;

...


}

 deb yozamiz. Dasturimizda ushbu ismlar sohasida aniqlangan o'zgaruvchilarni ishlatish uchun ularning to'liq ismini yozishimiz kerak.

Masalan:

istalgan_ism::foo();

Ammo bu usul ancha mashaqqatli bo'ladi. Har bir funksiya yoki o'zgaruvchi oldiga uning to'liq aniqlangan ismini yozish ko'p vaqt oladi. Buning o'rniga biz

 using namespace istalgan_ism;

 deb yozib o'tsak kifoya. using (ishlatish, qo'llash) buyrug'i bizning ismlar sohamizni dasturimiz ichiga tanishtiradi. Eng asosiysi biz bu amalni sohada aniqlangan va biz qo'llamoqchi bo'lgan ismlarning ilk chaqirig'idan oldin yozishimiz kerak. C++ ning standart kutubhonasida aniqlangan ifodalarni qo'llash uchun biz

using namespace std; deymiz. Va albatta qo'llanilayotgan e'lon fayllari yangi tipda bo'lishi kerak. Endi bu tushunchalarni ishlatadigan bir dasturni keltiraylik.

 //Yangi tipdagi e'lon fayllari va ismlar sohasini qo'llash.

# include

using namespace std;

 int main()

{

std::cout << "Hello!\n";



cout << "Qale!";

return (0);

}

 Ekranda:



 Hello!

Qale!


 std::cout << "Hello\n"; satrida biz chiqish oqimi ob'ekti cout ning to'liq ismini qo'lladik. Keyingi satrda esa biz yana ayni ob'ektni ishlatdik, lekin endi uni to'liq atab o'tirmadik, chunki biz std ismlar sohasini using bilan e'lon qilib bo'ldik. Ismlarni global ismlar sohasida e'lon qilish uchun ularni blok va funkisiyalar tashqarisida aniqlash kerak. Masalan:

 # include

 int i;

 int main()

{

...


int k;

...


return (0);

}

Bu yerda i global ismlar sohasida joylashgan, k esa main() funksiyasiga tegishli. O'zgaruvchilarni global ism sohasida aniqlashning boshqa yo'li, ularni nomsiz ismlar sohasida belgilashdir. Yani:



 namespace {

int j;


}

j o'zgaruvchisi global boldi. Uni ishlatish uchun:

 

::j = ::j + 7;



 :: operatorini qo'llashimiz mumkin, yoki oddiygina qalib faqat o'zini:

 j = j * 9;

 kabi yozishimiz mumkin. Ammo agar biz ishlayotgan dastur blokida ayni ismli o'zgaruvchi bo'lsa, masalan j, unda ushbu lokal aniqlangan j bizning global j imizni berkitib qo'yadi. Biz j ni o'zini qo'llasak, lokal j ga murojat

qilgan bo'lamiz. Global j ni ishlatish uchun endi :: operatorini qo'llashga majburmiz. Bu mulohazalar umuman olganda boshqa ismlar sohalarini ishlatganimizda ham o'rinlidir.

Xulosa

Xulosa qilib aytish mumkinki, Ikkili-o’nli sanoq sistemasi EHMda sonlarni ifodalashda va ular ustida arifmetik amallar bajarishda keng qo’llaniladi. Ikkili-o’nli sanoq sistemasida arifmetik amallarni bajarish usuli ikkili arifmetika qoidalariga asoslansada, o’ziga xos xususiyatlarga ega.

 8421 kodida arifmetik amallarning bajarilishi. Ushbu koddan foydalanib, tetradalar yordamida o’nli sonlarni tabiiy pozision ifodalash mumkinligini hisobga olgan holda, o’nli raqamlarni qo’shish masalasi quyidagicha ikkita bosqichda hal etiladi.

Birinchi bosqichda o’nli raqamlarning ikkili kodlari ikkili sanoq sistemasi qoidalariga asosan jamlanadi.Ikkinchi bosqichda natijaga tuzatishlar kiritiladi.

Bunda uchta hol ro’y berishi mumkin:

1.Birinchi bosqich natijasi 10 dan kichik. Natija to’rtta ikkili xonalar orqali ifodalanib, katta o’nli xonaga ko’chirish qiymati signali shakllanmaydi.

Suriluvchi vergulli sonlar ustida arifmetik amallar bajarilishi natijalarini yaxlitlash usullarining murakkablashishiga quyidagilar sababchidir. Qo’shish-ayirish natijasi tartiblarni tenglashtirishdagi kichik qo’shiluvchi mantissasining normallashganligining buzilishi hamda yig’indi (ayirma) mantissasining o’ng tomonga normallashtirilishi evaziga xatolik bilan shakllanadi. Bo’lishdagi qo’shimcha xatolik manbai sifatida bo’linma mantissasining normallashtirilishini ko’rsatish mumkin.

Suriluvchi vergulli sonlar ustida qo’shish-ayirish amali natijasini yaxlitlash usuli operandlar ishoralariga bog’liq. Ishoralari bir xil sonlarni qo’shganda natijaning normallashtirilgan mantissasi yaxlitlanadi. Ishoralari turli sonlarni qo’shganda yaxlitlash amalga oshirilmaydi. Bunda paydo bo’lishi mumkin bo’lgan xatolik tarkibiga tartiblarni baravarlashtirishdagi tashlab yuborilgan raqamlar guruhi kodi hamda yakuniy natija shakllanishidagi tashlab yuboriladigan qo’shimcha xona raqami qiymati kiradi.




Foydalanilgan adabiyotlar.

  1. Jess Liberti, “Osvoy samostoyatelno S++ za 21 den”, Sankt Peterburg 2000, 815 s.

  2. Liberti D. Osvoy samostoyatelno S++: 10 minut na urok. Per s angl. Vilyams, 374 str,2004 g.

  3. Shmidskiy Ya.K. Prorammirovaniye na yazыke S++: Samouchitel. Uchebnoye posobiye. Dialektika. 361 str, 2004 g.

  4. Kimmel P., «Borland C++5» .  SPb.: BHV, 1997.

  5. Sayfiyev J. F., «S++ tiliga kirish», Buxoro 2004 y.

  6. Oripov A., «Oliy matematika». Farg’ona – 2000 y.





Download 255,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish