Масивите в Паскал

Представете си една маса, състояща се от няколко реда. Всеки ред се състои от множество клетки. След това, за да се определи точната позиция на клетката, ние трябва да знаем повече от един номер (както е в случая на една маса линейно), но две: номера на реда и номера колона. Структурата на данни в Pascal за съхраняване на такава таблица е наречена двумерен масив. Описват такива масив може да бъде по два начина: I. Var A. Array [1..20] От Array [1..30] От цяло число; II.Var A. Array [1..20,1..30] От цяло число;







И в двата случая, описан двумерен масив, съответстваща на масата, състояща се от 20 реда и 30 колони. Тези описания са еквивалентни.

За да се илюстрира начина на работа с двумерни масиви реши проблема, "Попитайте и печат 10Х10 масив, състоящ се от цялата случайни числа в интервала [1100] Намерете сбора на елементите, разположени над главния диагонал .."







Когато се брои, като се започне от горния ляв ъгъл на таблицата, ние ще приемем, главния диагонал от горния ляв до долния десен ъгъл на масата. В този случай, се оказва, че елементите, намиращи се по диагонал ще имат един и същ индекс, както и за елементите над главния диагонал номер колона винаги ще бъдат по-големи от номера на реда. Също така се съгласи да определи като първи номер на ред, а след това - номера на колоната.

А. Array [1..10,1..10] От цяло число; I, К. Байт; S. цяло число;

S: = 0; Защото: = 1 до 10 започвайте За K: = 1 до 10 започвайте

А [I, К]: = TRUNC (Случайна * 100) + 1; Запис (А [I, К]: 6); Ако K> I Тогава S: = S + A [I, K]

Край; Writeln End; Writeln ( "Сума елементи горе сек. RavnaV диагонал", S)

Ако моделът на данни в дадена задача не може да бъде сведена до един линеен или равнинен маса, може да се използва масиви от всякакъв размер. N-мерен масив се характеризира с индексите на N. Форматът на описанието на типа данни: Вид

<Имя типа>= Array [<диапазон индекса1>,<диапазон индекса2>. <диапазон индекса N>] От <тип компонент>;

Отделен елемент имена, както следва: <Имя массива>[<Индекс 1>,<Индекс 2>. <Индекс N>]