5-лаборатория иши. Матрицалар билан ишлаш


Download 0.83 Mb.
bet1/3
Sana30.05.2020
Hajmi0.83 Mb.
#112074
  1   2   3
Bog'liq
algoritimlar5

5-лаборатория иши.

Матрицалар билан ишлаш


Мақсад: Талабаларда Матрицаларга айлантириш,массивларни қайта ишлаш учун мўлжалланган алгоритмларни ишлаб чиқиш, дастурлаштириш ва тестлаш кўникмасини ҳосил қилиш.

Лаборатория ишини бажариш учун зарур жиҳозлар. Зарур дастурий таъминот (C++ дастурлаш тили компилятори, матн муҳаррири) ўрнатилган персонал компьютер, лаборатория ишини бажариш бўйича (ушбу) услубий кўрсатма

Зарур назарий маълумотлар.


Ушбу лаборатория иши массивларни қайта ишлаш учун мўлжалланган алгоритмларни ишлаб чиқиш, псевдокод ва блок-схема кўринишида ифодалаш, дастурлаштириш ва тестлаш малакаларини эгаллашга бағишланган. Ушбу лаборатория ишлари олдинги ( биринчи) лаборатория ишига нисбатан мураккаб бўлиб, ичма-ич цикллардан фойдаланиш талаб этилади.

Массив ва уни аниқлаш. Массив элементларига мурожаат қилиш. Бир ҳил типдаги миқдорлар устида бирор амални (амаллар кетма-кетлигини) бажариш талаб этилганда массивлардан фойдаланилади. Шуни айтиш керакки агар ушбу миқдорларнинг ҳар бирига дастур иши давомида фақат бир марта мурожаат қилинса, унда бундай масалаларни массивлардан фойдаланмасдан ҳам ишлаб чиқиш мумкин. Масалан сонлар кетма-кетлигнинг максимуми, минимуми, йиғиндиси ёки ўрта арифметигини топиш талаб этилса, массивдан фойдаланиш шарт эмас, чунки бунжай масалаларда ҳар бир миқдорга бир марта мурожаат килиш етарли. Лекин берилган миқдорлар кетма-кетлигида нечта миқдор уларнинг ўрта арифметик қийматидан катта эканлигини аниқлаш учун массивдан фойдаланиш зарур, чунки ўрта арифметик миқдор ҳисоблаб топилгандан сўнг ўрта арифметик миқдордан катта сонларни аниқлаш учун миқдорларга яна бир марта мурожаат қилиш зарур.

Массив – бир типга тегишли миқдорларнинг номерланган кетма-кетлиги бўлиб, массивнинг ҳар бир элементига мурожаат қилиш учун массивнинг номи, шу элементнинг кетма-кетликдаги номери (индексдан) фойдаланилади. Массив элементлари компилятор томонидан хотирада кетма-кет жойлаштирилади ва шу сабабли унинг бирор элементига мурожаат қилишда, массивнинг бошланиш адреси ва элемент номерини билиш етарли. C++ тилида массив қуйидагича эълон қилинади



Frame1

Юқоридаги мисолда 10 бутун типдаги сондан ташкил топган массив эълон қилинган. C++ тилида массив элементлари 0 дан бошлаб индексланади. Демак массивда 10 элемент мавжуд бўлса, биринчи элементнинг номери 0 ва охирги элементнинг номери 9 га тенг бўлади.



ХОТИРА



1620

1624

1628

1632

1636

1640

1644

1648

1652

1656

1660

1664

1672

1676



Массив индекси







0

1

2

3

4

5

6

7

8

9













Массив қиймати







8

13

24

6

-8

19

31

-13

66

105













Келтирилган расмда A массивнинг хотирада жойлашишининг мумкин бўлган ҳолатларидан бири келтирилган. Массив элементларини жойлаштириш 1624 – адресдан бошланади, ҳар бир элемент бутун типда бўлгани учун хотирада 4 байтдан жой эгаллайди, шу сабабли бутун массив 40 байт жойни банд қилади. 0 – индексли элемент 1624, 1625, 1626, 1627 байтларни эгаллайди, 1 – элемент 1628 байтдан бошлаб 4 та кетма-кет байтни эгаллайди ва хакозо. Энг охирги 9 – индексли элемент хотирада 1660 байтдан бошлаб жойлаштирилади ва 1660, 1661, 1662 ҳамда 1663 байтларни эгаллайди. 1664 байтдан бошлаб хотида бошқа ўзгарувчилар учун ажратилиши мумкин. Компилятор массивнинг ихтиёрий элемент адресини қуйидаги формула асосида аниқлайди:



Бу ерда  массининг бошланиш адреси келтирилган мисолда 1624 га тенг, шунинг  функцияси типнинг узунлигини (аниқроғи шу типга тегишли қийматларнинг хотирада эгаллайдиган жойини) аниқлайди, int типи учун бу 4 байтни ташкил этади. Масалан 7 элементнинг адреси юқоридаги формулага кўра


Умумий ҳолда агар A массив

Frame2

юқоридаги формула қуйидагича ёзилади:



Келтирилган хусусиятлар массивни бир ҳил типдаги ва бир ҳир тарзда қайта ишланадиган маълумотларни сақлаш учун ажойиб воситага айлантирилади.

Массив элементига мурожаат қилиш учун индекс қиймати сифатида исталган манфий бўлмаган (ишорасиз) бутун типдаги миқдордан (ҳусусан, сондан, бутун типдаги ўзгарувчидан, бутун типдаги қийматни қайтарувчи арифметик ифода ёки функциядан) фойдаланиш мумкин.


Download 0.83 Mb.

Do'stlaringiz bilan baham:
  1   2   3




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