Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

DIM операторы

Читайте также:
  1. RESTORE операторы
  2. T Кооператоры
  3. Операторы QBASIC
  4. Операторы синектики
  5. Структурные операторы
  6. Туроператоры и турагенты: типы и функции

Егер индексті өрнек ретінде формула пайдаланатын болса, онда оның мәні есептеліп болғаннан соң бүтін санға дөңгелектенеді. Егер программада массив пайдаланылатын болса, онда олар алдын ала сипатталған болуы тиіс. Бұл компьютерге массивтің құрылымы және өлшемі туралы информация берілуі керек деген сөз. Осы информацияны қабылдау арқылы компьютер өзінің жадында массив элементтерін орналастыру үшін қажетті орын қалдырады. Массивтерді сипаттау үшін 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      

 

Бес элементтен тұратын массив үшін А(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      

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

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

Массивтің өлшемі шағын болатын ең қарапайым жағдайда мұны 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 операторларындағы цикл айнымалысы индекстің алғашқы және соңғы мәндерінің аралығында бір бірлікке артады, ал массивтің кезектегі элементі автоматты түрде алынады.

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

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

 

 


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

 


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


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

I=I+1


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

 


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


жоқ

 

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

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 < ЕП >

 

Келесі бес «?» таңбасына А массивінің бес санын ендіріп жауап береміз.

? -7 < ЕП >

? 6.3 < ЕП >

? 5 < ЕП >

? 17 < ЕП >

? 9 < ЕП >

 

READ, DATA ендіру операторларын пайдалану алдыңғы программа үзіндісін былайша өзгертуге алып келеді:

40 READ B(L), C(L)

70 READ A (J)

90DATA 2.7,.7, 3.4, -3.1, 8.7, 5.7, -7, 6.3

100 DATA 5, 17, 9

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

Мысалы, а массивінің мәндерін монитор экранына шығару үшін мына циклді пайдалануға болады:

160 FOR І=1 TO 5

170 PRINT A(I)

180 NEXT I

Бұл жағдайда А массиві элементтерінің мәндері баған түрінде баспаға шығарылады. 170 – оператор шығарылатын сандар үшін мынадай:

170 PRINT “A(“;I;”)=”;A(I) мәтінмен толықтыру шығарылған нәтижені түсінуді жақсартады:

A(1)=-7

A(2)=6.3

A(3)=5

 

А массивінің элементтерін қатар түрінде де баспаға шығаруға болады. Ол үшін 170 – қатардағы PRINT операторын нүктелі үтірмен аяқтау керек.

Қатынас жасау талап етілетін массив элементтерінің индекстерінің мәндерін есептейтін формуланы құру массивтің жеке элементтері жұмыс істеудің басқа маңызды тәсілі болып табылады.

Мысалы, А массивінің барлық жұп элементтеріне 4-ке тең сандық мән меншіктеу талап етілсін.

А массивін хабарлағаннан соң және оның мәндерін компьютер жадына ендіргеннен кейін программаның мынадай үзіндісі пайдаланылуы мүмкін:

70 FOR І=1 TO 2

80 А (2*І)=4

90 NEXT I

80 – оператордағы индексті есептеуші формула А массивінің тек жұп элементтерімен ғана қатынас жасауға мүмкіндік береді.

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

Массивтерді өңдеудің типтік


Дата добавления: 2015-08-05; просмотров: 166 | Нарушение авторских прав


Читайте в этой же книге: Блок-схема | Программалау саймандары | Трансляторлар | Ассемблер | Айнымалылар | RESTORE операторы | Клиент-сервер технологиясы | Программасымен танысу | Outiook программасын орнату |
<== предыдущая страница | следующая страница ==>
K NEXT v| Процедуралары

mybiblioteka.su - 2015-2024 год. (0.031 сек.)