Двумерные массивы
Одномерный массив (вектор) имеет вид таблицы из одной строки, ячейки которой заполнены значениями. Рассматривая ДВУМЕРНЫЙ массив, можно провести аналогию с таблицей, имеющей несколько строк и столбцов. Если отдельный элемент одномерного массива обозначали именем массива с индексом (А[i]), то для обозначения элемента двумерного массива (матрицы) потребуются два индекса: один - для указания номера строки, другой - для указания номера столбца, на пересечении которых находится нужный элемент: А[i,j]. Двумерные массивы описываются сходно с массивами одномерными:
-
Const Str=4; Stolb=5;
Var A:Array[1..Str,1..Stolb] of Real;
Заполнение двумерных массивов данными и вывод данных из двумерного массива осуществляется с использованием двух циклов, один из которых вложен в другой. Внутренний цикл перебирает индексы столбцов, наружный - индексы строк:
-
FOR i:=1 TO Str DO
FOR j:=1 TO Stlb DO Readln(A[i,j]);
...............
FOR i:=1 TO Str DO
FOR j:=1 TO Stlb DO Writeln('A[',i,',',j,']=',A[i]:6:2);
здесь Str - число строк, Stlb - число столбцов.
Пример:
В программе необходимо описать двухмерный массив целых чисел:
4 0 7
2 1 5
Описание этого массива в соответствии с первым способом выглядит следующим образом:
Type mas = Array[1..2,1..3] Of Byte;
Var M : mas;
Для второго способа имеем:
Var M : Array[1..2,1..3] Of Byte;
Для обращения в программе к элементу во второй строке и третьем столбце используется запись M[2,3].
В качестве индексов массива могут использоваться выражения, частным случаем которых является константа или переменная, например:
Min := A[2*i]+1.3; {присвоить переменной Min значение элемента A c номером i*2, увеличенное на 1.3}
Sum := Sum - C[k]; {уменьшить значение в переменной Sum на значение из элемента C c номером k}
Rez := B[4] + 5.2; {присвоить переменной Rez значение элемента B c номером 4, увеличенное на 5.2}
Пример описания трехмерного массива:
Var A : Array[char,boolean,1..10 ] of Real;
В этом случае при использовании в программе элемента A [i,j,k] индексы i,j,k должны быть следующих типов: i - символьного, j - логического, k - интервального.
Для ввода и вывода числовых значений элементов массива используются циклы.
Например,
цикл For k := 1 To 13 Do Read(C[k]); организует ввод 13 значений элементов массива С,
а цикл For k := 1 To 13 Do Write(C[k],' '); – вывод этих элементов.
Начальные значения элементов массива могут быть введены сразу с описанием массива как типизированная константа в разделе Const. При этом могут применяться также две формы описания:
Type имя типа = Array[тип индекса] Of базовый тип элементов;
Const имя константы : имя типа = (список констант);
или
Const имя константы : Array[тип индекса] Of базовый тип элементов = (список констант);
При описании типизированной константы типа "многомерный массив" константы каждой строки заключаются в отдельные скобки. Например, описание двухмерного массива со следующими начальными значениями:
2 3 15 4
7 18 23 5
1 9 11 10
32 16 6 4
будет выглядеть следующим образом:
Const M : Array[1..4,1..4] Of Byte = (( 2, 3, 15, 4), ( 7, 18, 23, 5), ( 1, 9, 11, 10), (32, 16, 6, 4));
В языке Паскаль допускается использование массива в целом только в операторе присваивания вида:
M1 := M2;
где M1, M2 - два однотипных массива одинаковой размерности.
- Оглавление
- Комбинированный урок №8
- Массивы. Одномерные массивы. Понятие о массиве
- Описание массивов
- Var имя массива : имя типа;
- Var имя массива:Array[t ,t1,...,tn ] Of тип элементов;
- Действия над элементами массива
- Использование значений массивов, ввод и вывод значений массивов
- Двумерные массивы
- Полная переменная
- Примеры использования массивов
- Контрольные вопросы