ПАСКАЛЬ: МАСИВИ
type Game = array [ 1 .. 9 ] of
array [ 1 .. 3 ] of
array [ 'a' .. 'c' ] of char;
Нехай A – змінна типу Game. Вираз вигляду A[ i ], де 1 i 9, задає змінну типу Table, або типу
array [ 1 .. 3 ] of array [ 'a' .. 'c' ] of char;
вираз вигляду A[i][j], де 1 j 3, – змінну типу Row, або типу
array[ 'a' .. 'c' ] of char;
вираз вигляду A[i][j][k], де 'a' k 'c', – змінну типу char.
Мова Паскаль допускає іншу форму задання типів та елементів багатовимірних масивів: виміри та індекси записуються через кому в спільних дужках. Так, означення
type Game1 = array [ 1 .. 9, 1 .. 3, 'a' .. 'c' ] of char
еквівалентне означенню типу Game, а вираз A[i, j, k] – виразові A[i][j][k].
Елементи багатовимірних масивів розташовуються в пам'яті послідовно, найшвидше в них змінюється внутрішній індекс, найповільніше – зовнішній. Зокрема, двовимірні масиви (матриці) розташовуються за рядками. Так, послідовні числа масиву типу
array [ 1 ..2, 'a' ..'b' ] of real
мають набори індексів [1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], а послідовні символи в масиві типу Game – [1, 1, 'a'], [1, 1, 'b'], [1, 1, 'c'], [1, 2, 'a'], … , [1, 3, 'c'], [2, 1, 'a'], … , [9, 3, 'c'].
Задачі
30. Написати процедуру побудови за дійсними числами a1, … , an квадратної матриці
а) 1 1 … 1 б) a1 a2 … an-1 an
a1 a2 … an a2 a3 … an a1
… …
a1n-1 a2n-1 … ann-1 an a1 … an-2 an-1
31.* У матриці розмірами M N обміняти місцями
а) два рядки, б) два стовпці,
задані номерами.
32.* Транспонувати квадратну матрицю без використання додаткової матриці.