Матрицалар менен иштөө
Автор: matkerimova.1995 • Февраль 14, 2019 • Лабораторная работа • 1,607 Слов (7 Страниц) • 632 Просмотры
№ 7 -Лаборатордук иш
Матрицалар менен иштөө
1. Иштин максаты
Лаборатордук иштин негизги максаты – Си++ тилинде матрицаларды практикада колдонуу ыкмаларын өрчүтүү.
2. Алдын-ала дайардоо темалары
- Си++ тилинде цикыл операторлору.
- Кийишилген цикылдар.
- Си++ тилинде шарттуу оператор.
- Матрицалар.
3. Тапшырма
9х9 өлчөмүндөгү бүтүн элементтерден турган матрицаны түзгүлө. Жеке тапшырмаларда матрицаны кандайча түзүү керек экендиги көрсөтүлгөн.
Эгерде тапшырмада матрицаны кокус сандар менен толтуруу талабы койулса сандарды 0-99 диапазонунан алуу сунушталат. Эгерде тапшырмада сандардын сызыктуу удаалаштыгын (СУ) топтоо талабы койулса, 1, 2, 3, …удаалаштыгы алынат.
4. Жеке тапшырмалардын варианттары
№ | Тапшырма | Сүрөттөлүшү |
1 | Матрицаны кокус сандар менен толтургула. Саат жебеси бойунча матрицаны 90o бургула. | [pic 1] |
2 | Матрицаны кокус сандар менен толтургула. Матрицаны негизги диагоналына карата симметрик түрдө чагылдыргыла. | [pic 2] |
3 | Спирал бойунча жогорку бурчтан баштап (оңго, ылдый, солго, өйдө) матрицаны СУ менен толтургула. | [pic 3] |
4 | Спирал бойунча борбордон баштап (солго, ылдый, оңго, өйдө) матрицаны СУ менен толтургула. | [pic 4] |
5 | Матрицаны кокус сандар менен толтургула. Негизги диагоналды ошол сап жана мамычада жайгашкан элементтердин суммасы менен толтургула. | [pic 5] |
6 | Жогорку сол бурчтан баштап диагонал бойунча (оңго, өйдө) матрицаны СУ менен толтургула. | [pic 6] |
7 | Негизги жана кошумча диагоналдардын сол жана оң жагында жайгашкан секторлорду жогорку сол бурчтан баштап (ылдый, оңго) матрицаны СУ менен толтургула. Бош жерлерди 0 менен толуктагыла. | [pic 7] |
8 | Матрицаны кокус сандар менен толтургула. Матрицанын негизги жана кошумча диагоналдарынын оң жана сол жагында жайгашкан элементтерди матрицанын вертикалдуу огуна карата симметрик түрдө жайгаштыргыла. | [pic 8] |
9 | Төмөнкү сол бурчтан баштап диагонал бойунча (солго, өйдө) матрицаны СУ менен толтургула. | [pic 9] |
10 | Матрицаны кокус сандар менен толтургула. Негизги жана кошумча диагоналдарды вертикалдуу огуна карата симметрик түрдө чагылдыргыла. | [pic 10] |
11 | Матрицаны кокус сандар менен толтургула. Негизги диагоналга ал диагонал менен перпендикуляр жайгашкан элементтердин суммасын жайгаштыргыла. | [pic 11] |
12 | Матрицаны кокус сандар менен толтургула. Матрицанын жогорку бөлүгүн горизонтал огуна карата күзгү түрүндө төмөнкү бөлүгүнө чагылдыргыла. | [pic 12] |
13 | Матрицаны кокус сандар менен толтургула. Матрицаны 3х3 өлчөмүндөгү квадраттарга ажыраткыла. Ар бир квадраттын борборуна ал квадраттын элементтеринин суммасын жайгаштыргыла. | [pic 13] |
14 | Матрицаны кокус сандар менен толтургула. Матрицанын сол бөлүгүн вертикалдуу огуна карата оң бөлүгүнө чагылдыргыла. | [pic 14] |
15 | Негизги жана кошумча диагоналдардын сол жана оң жагында жайгашкан секторлорду жогорку сол бурчунан баштап (оңго, ылдый) матрицаны СУ менен толтургула. Бош жерлерин 0 менен толуктагыла. | [pic 15] |
16 | Матрицаны кокус сандар менен толтургула. Матрицаны саат жебесине каршы 90o бургула. | [pic 16] |
17 | Матрицаны кокус сандар менен толтургула. Кошумча диагоналга карата матрицаны симметрик түрдө чагылдыргыла. | [pic 17] |
18 | Жогорку сол бурчтан баштап спирал бойунча (ылдый, оңго, өйдө, солго) матрицаны СУ менен толтургула. | [pic 18] |
19 | Борбордон баштап спирал бойунча (ылдый, солго, өйдө, оңго) матрицаны СУ менен толтургула. | [pic 19] |
20 | Матрицаны кокус сандар менен толтургула. Кошумча диагоналга ошол сап жана мамычада жайгашкан элементтердин суммасын жайгаштыргыла. | [pic 20] |
21 | Жогорку сол бурчтан баштап (солго, ылдый) матрицаны СУ менен толтургула. | [pic 21] |
22 | Жогорку сол бурчунан баштап (оңго, ылдый) негизги жана кошумча диагоналдардын жогорку жана төмөнкү секторлорун СУ менен толтургула. Бош жерлерин 0 менен толуктагыла. | [pic 22] |
23 | Матрицаны кокус сандар менен толтургула. Негизги жана кошумча диагоналдардын жогорку жана төмөнкү секторлорун горизонталдуу огуна карата симметрик түрдө чагылдыргыла. | [pic 23] |
24 | Жогорку оң бурчунан баштап (солго, ылдый) матрицаны СУ менен толтургула. | [pic 24] |
25 | Матрицаны кокус сандар менен толтургула. Матрицанын төмөнкү бөлүгүн горизонтал огуна карата симметрик түрдө жогорку бөлүгүнө чагылдыргыла. | [pic 25] |
26 | Негизги жана кошумча диагоналдарынын төмөнкү жана жогорку секторлорун жогорку сол бурчунан баштап (ылдый, оңго) матрицаны СУ менен толтургула. Бош жерлерин 0 менен толуктагыла. | [pic 26] |
5. Тапшырманы чыгарууга мисал (26-вариант)
5.1. Маселени чыгаруу алгоритмин иштеп чыгуу.
Массивдин өлчөмүн S, саптын номерин L, мамычанын номерин R деп белгилейбиз. Матрицанын жогорку бөлүгүндө L номерлүү сапта нөл эмес элементтер R1=L < R < R2=S-L номерлүү, төмөнкү бөлүгүндө R1=S-L-1 < R < R2=L номерлүү мамычаларда жайгашат. Демек алгоритм матрицаны сап-сап боюнча терилип, ар бир сап үчүн жогорку шарттын аткарылышын текшерүү керек. Эгерде шарт чын болсо, анда элементке сызыктуу удаалаштыктын кийинки мааниси менчиктелет, жалган болсо 0 саны менчиктелет.
Бирок ар бир элемент үчүн чек арада жайгашкан маанилерди эсептөөдөн жана матрицанын жогорку же төмөнкү бөлүгүндө жайгашканын текшерүүдөн кутулуп, бул алгоритмди жөнөкөйлөтсө болот. Биринчи сап үчүн(L=0) R1=1, R2=S-2 барабардыктар аткарылаарына көңүл буралы. Ар бир кийинки сап үчүн R1 дин мааниси бирге чоңойот, ал эми R2 ники болсо бирге азайат. Матрицанын ортосунан өткөндөн кийин өзгөртүү багыты карама-каршы багытка өзгөртүлөт: R1 бирге азайат, R2 бирге чоңойот. Борбордон өтүштүн белгиси катары R1 > R2 шартын алса болот. Бул алгоритм блок схемде келтирилген.
...