Омарбек Шыңғысхан ВТиПО 20-11
Программада массивтерді сипаттаудың немесе хабарлаудың екі түрлі жолы бар. Біріншісі, массивтерді программаның типтер бөлімінде күрделі тип ретінде сипаттауға болады. Бұл бір өлшемді массивтер үшін төмендегідей түрде жазылады:
type массивтің аты = array [индекс диапазоны] of мәліметтіңтипі; мұндағы, массивтің аты – дұрыс идентификатор, array, of – қызметші сөздер, индекс диапазоны, бұл екі нүктемен ажыратылған индекстік типтер. Индекстік типтер ретінде longint типінен басқа кез–келген реттелген типтерді алуға болады. Мысалы, n символдан тұратын mas массиві программаның типтер бөлімінде,
type
mas= array[1..n] of char;
түрінде хабарланады.
Сондай–ақ массив элементтерінің типі басқа бір массивке тәуелді болуы мүмкін, мұндай жағдайда of қызметші сөзінен кейін сол массив көрсетіледі.
type
mas= array[0..5] of array[-1..2] of byte;
Массивтерді сипаттау, типтер бөлімінде жүргізілген жағдайда, әрі қарай массив элементтерімен жұмыс істеу үшін оларды, яғни мәндері массив элементтері болатын айнымалыларды программаның var бөлімінде сипаттап кету керек, айталық с1 және с2 айнымалылары жоғарыда келтірілген m массивімен жұмсы істеу үшін қажет болатын болса, онда оларды программада төмендегідей сипаттайды:
type
mas= array[1..n] of char;
var
с1, с2: mas;
Программадағы массивтерді хабарлаудың екінші бір жолы – массивтер тікелей var айнымалыларды сипаттау бөлімінде бірден көрсету болып табылады, мұндай жағдайда жоғарыдағы программа фрагментін,
var
mas= array[1..n] of char;
түрінде қысқаша жазуға болады. Массивтердің сипаттаудың осы екінші жолы практикада көбірек қолданылады. Жоғарыда айтылған массивті сипаттау бөліміне бір мысал келтірейік:
Сиволдарының саны n(15<=n<= 100) сөз тіркесі берілген. Сол сөз тіркесін енгізуді аяқтау Enter-ді басу арқылы жүзеге асырылады. Енгізілген сөздегі символдар санын және 7-символдан бастап 15-символға дейін «+» белгісі қанша рет кездесетінін анықтау керек.
Program Simboldar1;
Const Plus=’+’;
K1=7;
K2=15;
Var SIM:array [1..100] of char;
i,k:integer;
Begin
Writeln (‘Сөз тіркесінің символдарын енгізіңдер:’);
i:=0;
Readln;
While not EOLN DO
Begin
i:=i+1;
read(SIM[i]);
End;
Writeln;
Writeln (‘Тіркестегі символдар саны =’,i);
k:=0;
For i:=k1 to k2 do
If sim[i]=plus then k:=k+1;
Writeln (‘7-15 символдар арасындағы + таңбалр саны =’,k);
End.
Массивтің элементтері индекстері арқылы көрсетіледі және оларға мәнді беру үшін меншіктеу операторы қолданылады. Айталық mas[5] – m массивінің 5–ші реттік нөмірлі элементі дегенді білдірсе, mas[5]:=’b’ – m массивінің 5–ші элементінің мәні b–ға тең екенін көрсетеді, ал mas[i] – m массивінің i –ші элементі дегенді білдіреді.
Массивтерді немесе олардың элементтерін енгізу үшін цикл операторлары қолданылады және мұнда for…do операторын қолану ыңғайлы болып табылады. Мысалы, жоғарыда келтірілген mas массивін (бір өлшемді массив) енгізудің қарапайым жолы мына түрде болуы мүмкін:
for i:=1 to n do
real (mas [i]);
Бұл программа фрагменті орындалғанда массивінің элементтері ретінде енгізілетін n символ, аралығына бос орын қою арқылы жол бойына енгізіледі. Егер қолданушы қай элементі енгізіп отырғанын алдын–ала біліп отырғысы келсе, онда жоғарыдағы программа фрагментін жалпы түрде,
for i:=1 to n do
begin
writeln(‘mas[‘,i,’]=’);
real (mas [i]);
end;
жазуына болады.
Бір өлшемді массивті баспаға шығаратын программа фрагменттері:
for i:=1 to n do
writeln(mas[i]: 5);
Мұнда массив элементтері экранға жол бойынша шығады, ал
for i:=1 to n do
writeln(‘mas[‘,i,’]=’, mas[i]);
бұл жағдайда массив элементтері экранға баған түрінде және реттік номерлері көрсетіліп mas [1]=..., mas [2]=..., mas [n]=.... түрінде шығарылады.
Массивтің кез–келген элементтерімен жұмыс істегенде программалау барысында олардың индексінің мәні типтер немесе айнымалылар бөлімінде сипатталған шектеуден аспауы тиіс. Егер массив индексінің мәні сипатталған шектеуден асып кетсе, онда статистикалық қате тіркеліп, экранда «Index type is not compatible with declaration» деген сөз тіркестері шығарылады.
Массивтер қолданылатын программада «{R+}» директивасын жазу арқылы массивтің шектеулерін тексеруге болады. Егер программада {R+} директивасы беріліп, массив индексі шектеуден асып кетсе, онда экранға «Range check error» сөз тіркесі шығарылады.
Массивтің кез–келген элементіне нәтиже беру үшін, меншіктеу операторы қолданылады:
Массив атауы [индекс]:= нәтиже
Мысалы:
а) А массивінің бірінші элементіне 12 санын меншіктеу үшін: A[1]:=12;
ә) А массивінің бесінші элементіне 405 санын меншіктеу үшін: A[5]:=405;
б) А массивінің екінші элемент нәтижесін экранға шығару үшін: writeln (A[2]); (экранға 11 шығады),
в) А массивінің бірінші элемент нәтижесі пернелер тақтасы көмегімен енгізу үшін: readln (А[1]);
г) А массивінің бірінші және үшінші элементтерінің қосындысын Sum айнымалысына меншіктеу үшін: Sum:= А[1]+ А[3]; (нәтижесіне Sum айнымалысына 17 саны меншіктеледі).
Достарыңызбен бөлісу: |