OF дан кейин келувчи <тур> Турбо Паскалнинг ихтиёрий тури, жумладан бошќа массив ћам бўлиши мумкин, масалан:
var
mat:array [0 .. 5] of array [-2 .. 2] of array [char] of Byte;
Бу ёзувни ихчам ћолда ќуйидагича ёзиш мумкин:
type
mat = array [0 .. 5, -2 .. 2, char] of Byte
Умуман, структурали турларнинг, демак, массивнинг ичма-ичлик чуќурлиги ихтиёрий, шунинг учун индекс турининг рўйхатдаги элементлар сонига ћам чегара йўќ, лекин ихтиёрий массивнинг ички узунлиги йиѓиндиси 65520 байтдан ошмаслиги керак. Шахсий компьютер хотирасида массив элементлари бири кетидан иккинчиси шундай келадики, бунда кичик адресли хонадан каттасига ўтганда массивнинг энг чекка ўнг индекси тез алмашинади. Агар, масалан,
var
а:array [1 .. 2, 1 .. 2] of Byte;
begin
a[1,1]:=1;
a[2,1]:=2;
a[1,2]:=3;
a[2,2]:=4;
end.
бўлса, хотирада 1,3,2,4 ќийматли байтлар кетма-кет жойлашади. Бу ћолат хотирани нусхалашнинг MOVE стандарт процедурасини ишлатишда мућим бўлиши мумкин.
Турбо Паскалда битта ўзлаштириш оператори билан бир массивнинг ћамма элементларини шу турдаги бошќа массивга узатиш мумкин, масалан:
var
а,b:array [1 .. 5] of Single;
begin
…………
a:=b;
…………
end.
Шу ўзлаштиришдан кейин А массивнинг ћамма бешта элементи В массив элементлари ќийматларини ќабул ќилади. Лекин массивлар устида муносабат амаллар аниќланмаган. Масалан,
if a=b then …
деб ёзиш мумкин эмас.
Икки массивни элементлари бўйича таќќослаш мумкин, масалан:
var
а,b:array [1 .. 5] of Single;
eg:Boolean;
i:Byte;
begin
…………
eg:=True;
for i:=1 to 5 do
if a [i] <> b [i] then
eg:=False;
if eg then
…………
end.
Масалалар ечишда бир, икки ва уч ўлчовли массивлардан фойдаланилади. Катта ўлчамдаги массивлар амалда оз учрайди.
Схематик равишда бир, икки ва уч ўлчовли массивларни ќуйидагича ифодалаш мумкин:
Do'stlaringiz bilan baham: |