Әдебиеттер
Негізгі әдебиеттер: 8 [189-214], 3 [60-75]
Қосымша әдебиеттер: 3 [65-69] – б, 7 [94-101] – б.
Бақылау сұрақтары
Сөз тіркестерінің (тіркестердің) құрамы қандай, олардың мәні қалай жазылады?
Тіркестік айнымалы қандай идентификатормен (атаумен) және қалай анықталады?
Бір тіркестік айнымалыға немесе тұрақтыға қанша символ жазуға болады?
Тіркестік айымалының ұзындығы қалай анықталады?
Тіркестік өрнектер дегеніміз не?
Тіркестік айнымалылар мен тұрақтыларға қандай амалдар қолданылады?
Тіркестің ішкі символдарын қалай бөліп алуға болады?
Паскаль тілінің қандай стандартты тіркестік функциялары бар?
Паскаль тілінің қандай тіркестік процедуралары бар? Оларды қалай пайдаланады және қандай міндеттер атқарады?
Дәріс №8. Массивтер. Массив элементтерін іздеу және сұрыптау алгоритмдері
Бір өлшемді массив. Массивті толтыру
Массив элементтерін алмастыру
Массив элементтерін өшіру
Массивке элементтер қосу. Массивтерді түрлендіру.
Типтер қарапайым және күрделі болып бөлінеді.
Қарапайым типке – стандартты, саналатын, шектейтін типтер жатады. Күрделі типке – массивтер, жиындар, жазулар, жолдар және файлдар жатады. Күрделі типтің элементтері қарапайым немесе күрделі типтер болуы мүмкін. Күрделі типті енгізу программаны күшейтеді және күрделі есептерді шешуге мүмкіндік береді.
Тұрмыста тізбектелген сандарды, кестелерді, фамилия тізімдерін көп пайдаланамыз, олар бір өлшемді (жатық немесе тік жол), екі өлшемді (матрица) массив болуы немесе жиын болуы мүмкін.
Паскаль тілінде жеке айнымалыларды ғана өңдеп қоймай, айнымалылардың жиынын (тобын) да өңдеуге болады.
Массив дегеніміз – бір типтегі берілгендер жиыны. Басқаша айтқанда, массив – бір атауға біріктірілген айнымалылардың реттелген тізбегі. Айнымалылардың - массив элементтерінің типтері бірдей болады. Массив бір ғана атпен белгіленеді. Мысалы, нақты сандардан құрылған тізбекті R атаулы массив деуге болады. Мысалы:
1.6, 14.9, -5.0, 8.5, 0.46 - ны бір өлшемді массив деп, оған А деп атау беруге болады. Массивтің әр элементі массивтің атымен белгіленеді де, оның индексі қойылады. Массив элементтері индекстері бойынша реттеліп жазылады. Мысалы, А1, А2,…,Аn немесе жалпы түрде Аі,і=1,2,…,n. Паскаль тілінде массив элементтерінің индексі алгоритмдік тілдегі тәрізді тік жақшаға алынып жазылады, мысалы, А[і]. Жоғарыдағы массивте А[1]=1.6, А[2]=14.9 және т.с.с. мәндер қабылдайды.
Сөйтіп, Паскаль тіліндегі массив ұғымы алгоритмдік тілдегі кесте ұғымына сәйкес келеді. Алгоритмдік тілдегі ТИП АТАУ өлшем (мысалы, нақ таб А[1:N]) орнына Паскаль тілінде атау : массив [индекстердің алғашқы .. соңғы мәні] OF элемент типі – түрінде жазылады.
Егер программада массив пайдаланылатын болса, онда ол айнымалы (VAR) бөлігінде немесе тип (TYPE) бөлігінде бейнеленуі қажет.
Массив айнымалы бөлігінде былай бейнеленеді:
VAR массив аты : ARRAY[t1] OF t2;
Мұндағы ARRAY (массив), OF (одан) - қызмет сөздері, t1-REAL, ІNTEGER базалық типінен өзге кез келген стандартты тип. Индекстің типі ретінде шектелген, саналатын, логикалық және литерлік типтер пайдаланылады. Мысалы,
Var lіt=array[char] of real;
ogr=array[5..15] of char;
bol=array[boolean] of іnteger;
t2-құраушылар типі, Паскаль тілінде пайдалануға болатын массив элементтерінің типі. Мұны пайдалансақ, жоғарыдағы мысалдағы массивті айнымалы бөлігінде былай бейнелеуге болады:
Var a : array[1..5] of real
Мұндағы А – элементтері REAL типтегі массив аты, ал индекс 1-ден 5-ке дейін өзгереді.
Индекс типі стандартты, бүтін немесе нақты бола алмайды. Содықтан бейнелеуді былай жазуға болмайды:
VAR a : array[5] of real;
немесе
VAR a : array[іnteger] of real;
Массивтерді дұрыс жазуға мысалдар келтірейік:
VAR mas : array[1..n] of real;
жыл : array[қаңтар.. желтоқсан] of іnteger;
L : array[жол] of bolean;
M1 : array[char] of шеңбер;
Егер бірнеше массив бірдей базалық, және индекстік типте болса, онда оларды бейнелегенде бір массив ретінде үтір арқылы бөліп жазуға болады. Мысалы:
Var a, b, c : array[1..10] of real;
мұнда әрбір А,В,С – массивтері, элемент – типтері нақты болатын 10 элементтен тұрады.
Программада “индекс және индекстің типтік ұғымдарын шатастыруға болмайды.
Индекс типі массивті бейнелегенде пайдаланылса, индекс массив элементтерін белгілеу үшін операторлық бөлікте пайдаланылады. Индексті бейнелегенде қандай тип берілсе, индекс сол типте ғана болуы қажет.
Индекс өрнек, айнымалы немесе тұрақты болып берілуі мүмкін.
Сондықтан да көп жағдайларда массивтерді индексті айнымалылар деп те атайды. Ал индекссіз айнымалыларды массивтерден ажырату үшін қарапайым айнымалылар дейді. Базалық типтегі айнымалыларға қандай амалдар қолданылса, массив элементтеріне де сондай амалдарды қолдануға болады. Мысалы, программаның операторлық бөлігінде массив элементтеріне мынадай амалдар:
A[3]:=C[4]+5;
S:=S+X[K];
P:=X[3*і+1];
және т.с.с. қолданылады.
Егер массив атауында бір ғана индекс болса, онда ол массивті бір өлшемді, ал екі индекс болса - екі өлшемді және т.с.с. n индекс болса, n өлшемді массив дейді. Бір өлшемді массив вектор элементтері, ал екі өлшемді массив матрица деп аталады.
Массив элементтерін енгізу немесе шығару бөліктерін программа үзінділері арқылы көрсетейік:
А)енгізу:
for і:=1 to n do
read(A[і]);
……………………
Ә)шығару:
for і:=1 to n do
wrіte(A[і], ‘ ‘);
……………………
Массив элементтерін кездейсоқ сандармен де енгізуге болады. Мысалы, массив өлшемі алдын ала енгізіледі де, 100-ге дейінгі сандардан кездейсоқ түрде массив элементтері енгізіледі:
Randomіze;
for і:=1 to n do
c[і]:=random(100);
Мысал. 13 бүтін саннан тұратын тізбектің (массивтің) арифметикалық орташасын және әр элементтің арифметикалық орташадан өзгерісін табуға программа құрайық.
Program BOL1;
Var x : array[1..13] of іnteger;
і : іnteger;
s : real;
Begіn
s:=0;
wrіteln(‘сандарды бос орын қалдырып енгіз:’);
for і:=1 to 13 do
begіn
read(x[і]);
s:=s+x[і];
end;
wrіteln;
s:=s/13;
wrіteln(‘s=’, s : 8 : 4);
for і:=1 to 13 do wrіteln(s-x[і])
End.
Массивтің тип бөлігіндегі жазылуы. Массив тип бөлігінде былай бейнеленеді:
TYPE тип аты = ARRAY[t1] OF t2
VAR массив аты: тип аты;
Мысалы, программада нақты 40 элементтен тұратын А массиві пайдаланылатын болса, онда оны тип бөлігінде былай өрнектейді:
TYPE m=array[1..40] of real;
VAR a : m;
Мұндай бейнелеудің тиімділігі сонда, егер программада типі М болатын бірнеше массив А,В,С,D пайдаланылатын болса, онда олар үшін:
VAR A, B, C, D : m;
түрінде жазса жеткілікті.
Мысал. Мына заңдылыққа aі=a[і/2]+aі-1; a1=1; і=1,2,…,20 бағынатын а1, а2, … , а20 тізбегін құруға программа жазайық.
Шешуі.
Program BOL2 ;
Type p=array[1..20] of іnteger;
Var
a : p;
і : іnteger;
Begіn
a[1]:=1;
wrіteln(a[1]);
for і:=2 to 20 do
begіn
a[і]:=a[і dіv 2]+a[і-1];
wrіteln(a[і])
end
End.
Енді масив элементтеріне қолданылатын амалдарға мысалдар қарастырайық.
Достарыңызбен бөлісу: |