Массивтерді өңдеу алгоритмдері



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 19 бет
Таңдаулыға:   
Қ. Жұбанов атындағы Ақтөбе өңірлік университеті
Физика-математика факультеті
Информатика және ақпараттық технологиялар кафедрасы
Курстық жоба

Курстық жоба
Тақырыбы: Массивтерді өңдеу алгоритмдері.

Орындаған: Әбуғали Д.Р
Тексерген:
Топ:ВТКО-202

Ақтөбе - 2021 жыл
КІРІСПЕ:
0.1 Алгоритм туралы түсінік .
1.2 Есепті шешу алгоритмін құру кезеңі .
1.3 Алгоритмді жүзеге асыру кезеңі .
Негізгі бөлім:
А)теория жүзінде
Б)зерттеу бөлімі
Қорытынды:

Кіріспе:
Көптеген есептерде деректерді массив түрінде көрсету оның шешімін едәуір жеңілдетеді. Кейбір есептер Жоғарғы математика курсынан сізге белгілі, мысалы, полиномды есептеу.

функциясы n-і дәрежелі Pn(x) полином деп аталады. Мүндағы ak мәні полином коэффициенті деп аталады және n+1 элементтері бар бір өлшемді массив түрінде көрсетіле алады.
Pn(x) полиномының коэффициенттер массивін біле тұра полином мәнін кез келген x нүктесінде есептеуге болады. Әдетте x нүктесінде полиномды есептеу есебі кейбір алгоритмдерді жүзеге асырумен байланысты, мысалы, Горнер алгоритмі, кесіндіні тең бөлу әдісі (егер кесіндінің ұштарында полином мәні түрлі таңбада болса), итерация әдісі, Ньютона, Лагранж әдістері және т.б. Барлық осы алгоритмдер полином коэффициентінің массивін өңдеумен байланысты.
Информатиканың өзінің есептері бар, олар деректерді массив түрінде көрсетуді талап етеді. Осы деректерді өңдеудің өз алгоритмдері бар. Деректерді өндеудің көптеген алгоритмдерінің ішінен сұрыптау (деректерді кейбір сипаты бойынша реттеу) және іздеу (деректерде берілген сипат бойынша элементті анықтау) алгоритмдері ерекшеленеді.
Математикалық есептерді шешу алгоритмі (әдісі) Жоғарғы математика курсында қарастырылады, сондықтан оқулықтың осы бөлімінде кейбір деректерді сұрыптау мен іздеу алгоритмдері ғана қарастырылады.

Негізгі бүөлім
Массив ұғымы
BASIC тілінде бірыңғай шамаларды массивке біріктіруге болады. Жалпы аты бар бірыңғай элементтердің реттелген жиыны массив болып табылады. Ол математикада вектор ұғымына, ал мектептік алгоритмдік тілде сызықтық кестеге сәйкес келеді. Массивтің аты жай айнымалының атын құрғандағы ережелерге сүйеніп құрылады.

Массивтің әрбір элементіне соңынан индексі келетін массивтің аты меншіктеледі. Сондыќтан да массив элементтерін индексті айырмалар деп те атайды.

Ұйымдастыру тәсілдері бойынша BASIC тілінде бір өлшемді екі өлшемді және көп өлшемді массивтер пайдаланылады. Бір өлшемді массивтің элементі массивтегі элементтің реттік нөмірін анықтайтын бір индекспен көрсетіледі. Мысалы:

::
А2) - А массивінің екінші элементі;
::
В1(3) - массивінің үшінші элементі;
::
С(N)-C массивінің N-ші элементі дегенді білдіреді.

Осылайша, индекстер массивінің атынан соң жақша ішіне орналасады.

Енді екі өлшемді массивке алып келетін мынадай есепті қарастырайық.

Айталық, 11-мөлтек ауданда тұратын тұрғындар саны және бір тұрғынға бөлінетін шаршы метр жер жөнінде деректерді өңдеу керек болсын. Өңдеу және кейбір сұрақтарға жауап алу мақсатында компьютерге деректерді енгізуді былай ұйымдастыруға болады. Мысалы, бір үйде қанша адам тұрады және 22 үй 3-пәтерде тұратын тұрғындарды кезекке қоюға бола ма? т.с.с. сұрақтарға жауап беру керек болсын.

Бұл есепті шешуде екі өлшемді массивті пайдалану ыңғайлы. Біз бірінші айнымалы ретінде үйдің нөмірін, екінші айнымалы ретінде пәтер нөмірін пайдаланамыз. Егер ол құрылып қойылған болса, онда біздің сұрақтарымыздың жауабы ретінде А[22,3] мәні баспаға шығарылады. Мұнда алғашқы индекс үй нөмірін, екіншісі пәтер нөмірін білдіреді. Ал егер А[22,3]=4 мәнін меншіктесе, онда бұл үйде 4 адам тұратын болғаны.

Екі өлшемді массивке математикада матрица, алгоритмдік тілде төртбұрышты кесте мысал бола алады.

Сонымен, екі өлшемді массивтердің элементтері екі индекспен көрсетіледі, оның біріншісі қатардың нөмірін, ал екіншісі бағанның нөмірін анықтайды, екеуінің қиылысында массивтің сәйкес элементі орналасқан болады. Мысалы, А(0,0) екі өлшемді А массивінің нөлдік қатары мен нөлдік бағанына орналасқан элемент; В3(2,3) екі өлшемді В3 массивінің екінші қатары мен үшінші бағанына орналасқан элемент екендігін білдіреді. Екі өлшемді массивтерде индекстер үтірмен бөлінеді. BASIC тілінде индекстер нөлден бастап нөмірленеді.

DIM операторы
Егер индексті өрнек ретінде формула пайдаланатын болса, онда оның мәні есептеліп болғаннан соң бүтін санға дөңгелектенеді. Егер программада массив пайдаланылатын болса, онда олар алдын ала сипатталған болуы тиіс. Бұл компьютерге массивтің құрылымы және өлшемі туралы информация берілуі керек деген сөз. Осы информацияны қабылдау арқылы компьютер өзінің жадында массив элементтерін орналастыру үшін қажетті орын қалдырады. Массивтерді сипаттау үшін DIM (dimension-өлшемділік) операторы қолданылады.

Оператордың жазылу пішімі:

k DIM m1(m1-ң шек.), m2(m2-ң шек.),..., mN(mN-шек)

мұнда k-қатар нөмірі; DIM-оператордың аты; m1, m2,..., mN-массивтің аттары; m1-шек., m2-шек., mN-шек.,..., mN-шек. - m1, m2,..., mN-ге сәйкес массивтің шекаралары. Мұнда массивтің тек жоғарғы шекаралары көрсетілген, өйткені төменгі шекаралары 1-ге тең деп қабылданады.

Егер массив бір өлшемді болса, "m шек." сол массивтің элементтер санын бүтін сан ретінде көрсететін болады.

Мысалы, мына оператор 10 DIM С(5), D(1,2) С массивінің С(0), С(1), С(2), С(3), С(4) элементтерден тұратын бір өлшемді массив екендігін және D массивінің

D(0,0) D(0,1) D(0,2)

D(1,0) D(1,1) D(1,2)

элементтерден тұратын, екі қатары және үш бағаны бар екі өлшемді массив екендігін білдіреді.

DIM операторы массивке сілтеме жасамастан бұрын программаның басында орналасқаны жөн.

Индекстің ең кіші мәні нөл, ең үлкен мәні DIM операторында хабарланған мәннен асып кетпеуі керек. Егер индекстің мәні бұл шекарадан асып кетсе, онда программаны орындауда қателік кеткендігі жөнінде хабар экранға шығады. Бір өлшемді массивті цикл ішінде FOR және NEXT операторларын қолданып өңдеген ыңғайлы.

Бұл жағдайда цикл параметрі циклдің саны, санау қызметін атқарады және массив элементтерінің индексін белгілеуде қолданылады.

DIM операторында массивтің атынан соң дөңгелек жақша ішінде массив өлшемінің көрсеткіші ретінде мәндері алдын ала анықталған, ендірілген немесе есептелген тұраќты (бүтін типі), әйтпесе айнымалының аты (арифметикалық өрнек) пайдаланылуы мүмкін. Мысалы,

10 INPUT K,L,M

20 DIM D(K), E(L), F(L+M)

.

.

.

Бұл жағдайда D массивіне жадтың К+1 ұясы, Е массивіне (L+M)+1 ұясы бөлінеді.

Программада пайдаланылатын массивтер DIM операторында тек бір рет хабарланады.

Массивті қайталап хабарлаған жағдайда "redimensione arry" ("Массивті екінші рет хабарлау") хабары экранға шығады. Мысалы, программаның мына төмендегі үзіндісінде:

10 DIM А(10), В(10), С(20)

20 DIM В(30), D(20)

.

.

.

В массиві екі рет хабарланған.

Бірақ массивті ERASE операторын пайдаланып қайтадан хабарлауға да болады. ERASE операторында жойылуға тиісті массивтің аты көрсетіледі. Мысалы, 15 ERASE В операторы В массивін қайта хабарлайды.

Массивтің жеке элементтерімен орындалатын операциялар. Массивтерді ендіру - шығару

BASIC тілінде массивтерді өңдейтін арнайы операциялар жоқ, сондықтан массивті оның элементтері бойынша өңдейді. Қарапайым айнымалылармен қандай амалдар орындауға болатын болса, массивтің элементтерімен де дәл сондай амалдар орындауға болады. Бұл жағдайда меншіктеу немесе шартты өту операторларында массив элементтерін пайдаланғанда массив атынан соң жақша ішінде мәні анықталуға тиісті индекстің тұрғандығына барлық уақытта ерекше назар аударуға тиіспіз.

Мысалы, мәндері

А(1)
А(2)
А(3)
А(4)
А(5)

-8
3.2
4
15
18

Бес элементтен тұратын массив үшін А(2)=3.2 екінші элементті 8.3 санына ауыстыру операцияясы мынадай болып жазылады:

::

::

::

30 А(2)=8.3

Мына программа үзіндісінің

::

::

::

80 J=1

90 I=3

100 A (4)=27

110 A (I)=94

120 A(2*I-1)=A(J)+A(I)

орындалуы 100 - оператор орындалғанан соң массивтің А(4) төртінші элементі бұрынғы 15 санының орына 27 санының ендірілуіне алып келеді.

110 - оператор бойынша массивтің А(І), (І=3) үшінші элементіне 94 саны меншіктеледі, ал 120 - оператордың орындалуы нәтижесінде А (2*3-1)=А(5) элементіне массив элементтерінің қосындысы А(1)+А(3)=-8+94=86 мәні меншіктелетін болады.

Осылайша, келтірілген программа үзіндісінің орыдалуы нәтижесінде жоғарыда келтірілген А массивінің түрі мынадай болып өзгереді.

А(1)
А(2)
А(3)
А(4)
А(5)

-8
3.2
94
27
86

Көптеген жағдайларда массивтерді өңдеуде массив элементтеріне ретімен қатынас жасау талап етіледі.

Сонымен, массивті хабарлағаннан және оның элементтеріне жадтан орын бөлгеннен соң, келешекте компьютер оны өңдеу үшін жадтың бөлінген аймағына оның элементтерінің сандық мәндерін ендіру және орналастыру талап етіледі.

Массивтің өлшемі шағын болатын ең қарапайым жағдайда мұны INPUT, READ және DATA операторларының көмегімен массив элементтеріне аты және индекстерінің сандық мәндері бойынша қатынас жасай отырып, массивтің әрбір элементін ендіру арқылы жүзеге асыруға болады.

Массивтерді ендіру мысалдарын қарастырайық.

1. А массив берілсін. Оны мына төмендегідей жолмен ендіруге болады.

10 DIM A(5)

20 INPUT A(1), A(2), A(3), A(4), A(5)

::

::

::

100 END

А массивіне жадтан қажетті орынды сақтап қоюшы 10 - оператор орындалғанан соң, 20 - оператордың жүзеге асырылуы монитор экранына ? таңбасын шығарады. Компьютер А массивінің элементтерінің сан мәндерін, ол 20 - операторда индексті айнымалылар қандай реттілікпен берілсе, дәл сондай реттілікпен ендіруді күтіп тұрады. Компьютердің пернетақтасынан А массиві элементтерін мына түрде енгізу керек:

В - 7,6.3,5,17,9 ЕП Осымен массивті ендіру аяқталады.

А массивіне жадтан орын бөлінгенен соң оның элементтерін ендіру компьютерді пайдаланушылардан сұрамай - ақ жүзеге асырылады. Мысалы, мына программа:

10 DIM A(5)

20 READ A(1), A(2), A(3), A(4), A(5)

30 DATA -7,6.3,5,17,9

::

::

::

100 END

орындалғанда READ операторының тізімінде бірінші тұрған А(1) айнымалыға DATA операторындағы бірінші мән - 7 меншіктеледі, А(2) айнымалысына 6.3 мәні, А3 айнымалысына 5 мәні т.с.с. меншіктеледі.

Массив элементтеріне қатынас жасаудың екң ыңғайлы құралы, массив элементінің индексі ретінде циклді басқарушы айнымалыны пайдалану болып табылады.

Мұндай тәсіл массивтермен жұмыс істеуді оңай тәртіпке келтірілетіндіктен массивтерді өңдеудегі негізгі тәсілдердің бірі болып табылады. Бұл жағдайда FOR - NEXT операторларындағы цикл айнымалысы индекстің алғашқы және соңғы мәндерінің аралығында бір бірлікке артады, ал массивтің кезектегі элементі автоматты түрде алынады.

Мұны А массивін ендіру мысалы арқылы бейнелеп көрсетуге болады.

А массивін ендірудің блок - схемасын келтірейік.

басы

А(5)

--------- [ массивті хабарлау

І=1

--------- [ индекстің алғашқы мәнін беру

A(I)

-------- [ элементті ендіру

I=I+1

--------- [ индексті өзгерту

I5

ия ---------- [ тексеру: барлық элементтер ендірілген бе?

жоқ

А массивін диалогтық режімде ендіруді мына программа арқылы орындауға болады.

10 DIM A(5)

20 FOR І=1 TO 5

30 INPUT A(I)

40 NEXT I

::

::

::

100 END

20 - оператормен ендіру циклі басталады. Онда І айнымалысы 1 - ге тең мәнді меншіктейді. Бұдан әрі INPUT операторы бойынша А(1) айнымалысының мәнін сұрайтын экранда ? таңбасы пайда болды. Оған бірінші санды ендіру арқылы жауап береміз:

Бұдан соң NEXT операторы І - ді бір бірлікке арттырады, яғни І=2 болады, бұл мән басқарушы және басқару қайтадан 30 - операторға беріледі. Монитор экранында қайтадан ? таңбасы пайда болады. Пернетақтадан екінші санды ендіреміз:

? 6.3 ЕП

Осылайша компьютер жадына А массивінің қалған үш элементі ендіріледі:

? 5 ЕП

? 7 ЕП

? 9 ЕП

Массивті ендіруді жүзеге асыратын мына төмендегі програма:

10 DIM A(5)

20 FOR І=1 TO 5

30 READ A(І)

40 NEXT I

50 DATA -7,6.3,5,17,9

::

::

::

1 ден 5 - ке өзгеретін І - дің әр түрлі мәндері үшін А(І) айнымалысына мәндер DATA операторындағы сандардан алынып ретімен меншіктеледі.

Өлшемдері әр түрлі бірнеше массивтерді ендіруде бірдей өлшемді массивтерді бір циклмен ендіру есебінен циклдер санын азайтуға болады.

Айтайық, А массивінен басқа В={2.3, 3.4, 8.3} және С={0.7, -3.1, 5.7} массивтерін ендіру қажет болсын.

Программа мына төмендегідей түрде берілуі мүмкін:

10 INPUT В және А массивтерінің өлшемдерін енгізіңдер; K,L

20 DIM B(K), C(K), A(L)

30 FOR І=1 TO K

40 INPUT B(I), C(I)

50 NEXT I

60 FOR J=1 TO L

70 INPUT A(J)

80 NEXT J

::

::

::

150 END

Программаны орындау В және А массивтерінің өлшемдерінің мәндерін сұраудан басталады.

В және А массивтерінің өлшемдерін енгізіңдер.

? 3,5 ЕП

Барлық массивтерге жадтан орын бөлінгенен соң В және С массивтерін ендіру циклі жұмысын бастайды. Пайда болған сұрақ ? таңбасына В және С массивтерінен алынған жұп сандармен жауап беру керек:

? 2.3, -7 ЕП

? 3.4, -3.1 ЕП

? 8.7, 5.7 ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Сұрыптау есептері
Информатика пәнінен лекциялық сабақтардың тезистері
Массивтерді сұрыптаудың қарапайым алгоритмдері
Сұрыптау есептері. қою арқылы сұраптау
Сұрыптау есептері, сұрыптау алгоритмдері туралы ақпарат
Сұрыптау есептері. Сұрыптау алгоритмі
Сұрыптау есептері. Сұрыптау алгоритмдері
Массивтер жайлы
Бір өлшемді массивтерді сұрыптау алгоритмдері
Python бағдарламалау тілінің тарихы
Пәндер