Збекистон миллий университети



Download 1,98 Mb.
bet31/56
Sana23.06.2022
Hajmi1,98 Mb.
#694633
TuriПрограмма
1   ...   27   28   29   30   31   32   33   34   ...   56
Bog'liq
inf va dast-oquv-qollanma

§ 3.13. Регуляр турлар.

Регуляр тур ҳосилавий турлар синфига тегишли, яъни унинг қийматлар тўплами содда бўлмаган берилганлар структурасидан иборат. Жадвал катталик тушунчасини киритамиз. Жадвал катталик - бу чекланган миқдордаги баъзи бир қийматларнинг (жадвал катталик элементиларининг) тартибланган тўпламига айтилади. Барча элементлар бир хил турга тегишли бўлиб, улар элементнинг тури (жадвал катталик учун асос тур) деб номланади.


Ҳар бир жадвал катталикнинг номи бўлиши керак, бу ном тўлиқ ўзгарувчи деб номланади, чунки унинг қиймати жадвал катталикнинг ўзидан иборат. Жадвал катталикнинг ҳар бир элементи унинг номини кўрсатиш орқали эълон қилинган бўлиши, ундан кейин квадрат қавсга олинган индекс - элементнинг селектори келиши мумкин.
Шундай қилиб, алоҳида элементга мурожаат қилиш учун қуйидаги ёзув ишлатилади
<жадвал катталик номи>[<индекс>]
ва бу ўзгарувчига индексли ўзгарувчи дейилади. Умуман олганда индекс сифатида ифода ҳам ишлатилиши мумкин. Индексли ифоданинг тури индекснинг тури деб номланади. Индексли турнинг қийматлар тўплами тартибланган бўлиши керак.
Регуляр турни эълон қилишда индекснинг турини эълон қилишдан ташқари элементнинг турини ҳам эълон қилиш керак:
<регуляр тур> :: = array [<индекс тури>] of <элементни тури>;
Паскал тилида тўлиқ ўзгарувчига фақат қиймат бериш амалини қўллашга рухсат этилган, индексли ўзгарувчига эса <элементни тури> учун ўринли барча амалларни қўллаш мумкин.
Паскал тилида элементлар турига хеч қандай чегара қўйилмагани сабабли элемент сифатида регуляр турнинг ўзи ҳам қатнашиши мумкин. Шу йўл билан кўп ўлчовли жадвал катталик ҳосил қилиш мумкин. Жумладан, икки ўлчовли жадвал катталик учун қуйидаги икки хил эълон қилишни ишлатиш мумкин:
array[<индекс тури>,<индекс тури>] of <элемент тури>
array[<индекс тури>] of array[<индекс тури>] of <элемент тури>

Хусусий ўзгарувчи икки ўлчовли жадвал катталик бўлган ҳолда қуйидаги кўринишда бўлади:


<жадвал катталик номи>[<индекс>,<индекс>]
<жадвал катталик номи>[<индекс>][<индекс>]
Қуйида жадвал катталик туридаги ўзгарувчиларни эълон қилиш ва уларга мурожаатга доир мисоллар келтирилган.
1) м: array [1...100] of real;
{m - 1 дан 100 гача номерланган ҳақиқий сонлар жадвал катталиги }
2) v: array [5..20] of integer;
{ v - 5 дан 20 гача номерланган бутун сонлар жадвал катталиги }
3) z: array[1..10,1..10] of string[20];
{z - икки ўлчовли сатрлар жадвал катталиги (матрица)}
программада конкрет жадвал катталик элементларини ифодалаш учун жадвал катталик номидан сўнг квадрат қавс ичида элемент номери кўрсатилади. Масалан:
1) m[7] : = 4.35; { m жадвал катталикининг еттинчи элементига 4.35 сон қиймати берилди }
2) z[8,6] : = 'араб'; {z-матрицасининг 8 сатр 6 устун кесишуви элементига 'араб' сатри ўзлаштирилади}

  1. m[9] : = v[7]; {m жадвал катталикининг тўқкизинчи элементига с жадвал катталикнинг етинчи элементи ўзлаштирилади}.

Регуляр турнинг синтаксиси қуйидагича ёзилади:
< регуляр турнинг берилиши>::=type<тур номи>= array
[ индекс тури] of <элемент тури>;
< индекс тури>::charbooleanсанаб ўтилувчи турчегараланган тур.
< элемент тури>::<ихтиёрий тур бўлиши мумкин>

Бир ва икки ўлчовли массивларни қуйидаги тасвирлаш ҳам мумкин:


Var <массив номи>: array [<индекснинг ўзгариш чегараси>] of <элемент тури>;


< массив номи >: array [< сатрлар диапазони >,< устунлар диапазони >] of < элемент тури >
Массивлардан фойдаланишга доир мисоллар келтирамиз:
1-ўлчовли массивларни эълон қилиш:

Var A: array [1..4] of real;


B: array [1..3] of integer;
Type MAS1array[1..4] of real;
MAS2array[1..3] of integer;
Var A: MAS1;
B: MAS2; ёки

Type I11..4;


I21..3;
MAS1array[I1] of real;
MAS2array[I2] of integer;
Var A: MAS1;
B: MAS2;

2-ўлчовли массивларни эълон қилиш:


Var D:array[1..2,1..3] of integer; ёки
Type MATR=array[1..2,1..3] of integer;
Var D: MATR;

Type STarray[1..2] of integer;


MATRarray[1..3] of ST;
Var D: MATR;
Бир ўлчовли массивларни киритиш:
for I:1 to 4 do Read(A[I]);
ёки
for I:1 to 4 do begin
Writeln(‘A[‘,I,’]’);
Read(A[I])
end;

Икки ўлчовли массивларни киритиш:


for I:1 to 2 do
for J:1 to 3 do
Read(D[I,J]); {Киритиладиган сонлар: 1 3 2 4 6 7}
{Икки ўлчовли массив}

Бир ўлчовли массивларни чиқариш:

for J:1 to 3 do Write(B[J]:3);
for J:1 to 3 do Writeln(‘B[‘,J,’] =’,B[J]:3); B(12,34,56)

{сатр бўйича 12 34 56} {устун бўйича B[1]12


B[ 2] 34 B[3]56}

Бир ўлчовли массивларни чиқариш:


for I:1 to 2 do
for J: =1 to 3 do Write(D[I,J]);
ёки
for I: =1 to 2 do
begin Writeln;{янги сатрга ўтиш}
for J:1 to 3 do
Write(D[I,J]) {сатр элементларини чиқариш}
end; {натижа: 1 3 2
4 6 7 }

Turbo-Pascal 7.0 муҳитида массивларнинг бошланғич қийматлари қуйидаги келтирилган усулда ҳам киритилиши мумкин.


Type MAS2=array [1..3] of integer;
MATR=array[1..2,1..3] of integer;
Const B:MAS2=(12,34,56);{1 улчовли массив: 12 34 56}
D:MATR=((1,3,2),(4,6,7));{2 улчовли массив: 1 3 2
4 6 7}

Одатда матрица элементлари оператив хотирада сатр бўйича жойлашган бўлади. Шунинг учун матрица элементларига мурожаатни бир ўлчовли индекс (,IPR) киритиш ёрдамида осонлаштириш мумкин.


Мисол. Var D: array [1..M,1..N] of integer;


у ҳолда D[I,J] учун IPR=(I-1)*N+J бўлади.

Download 1,98 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish