Двухмерные массивы Данникова Г.А.
Описание Массивы, положение элементов в которых описывается двумя индексами, называют двухмерными. Их можно представить в виде прямоугольной таблицы или матрицы. Рассмотрим матрицу А размером 2*3, то есть в ней будет 2 строки, а в каждой строке по 3 элемента: а 11 а 12 а 13 а 11 а 12 а 13 А = А = а 21 а 22 а 23 а 21 а 22 а 23
Существует несколько способов объявления двухмерного массива: 1)если в программе указанный тип используется для определения одного массива: const n=5; m=3; var a: array [1..n,1..m] of Существует несколько способов объявления двухмерного массива: 1)если в программе указанный тип используется для определения одного массива: const n=5; m=3; var a: array [1..n,1..m] of
2) более распространённым является другое описание двухмерных массивов: const n=5; m=3; type massiv = array[1..n,1..m] of real; var a,b: massiv;
3) элементами массива может быть любой из известных типов данных, следовательно, и сам массив, поэтому допустимо и следующее описание массива: const n=5; m=3; type matr = array[1..n] of array [1..m] of real; var a: matr;
Обработка таких массивов производится с помощью двух вложенных циклов. Обращение к конкретному элементу массива выглядит следующим образом: a[1,2] или в общем случае a[i,j]
Пример. Заполнение двухмерного массива случайными целыми числами от -20 до 20. …… randomize for i:=1 to n do begin for j:=1 to m do begin a[i,j]:= random(41)-20; write(a[i,j], ); end; writeln; end; В данном случае происходит заполнение массива по строкам.
Формирование двухмерного массива можно осуществить тремя способами: ввод с клавиатуры, с помощью генератора случайных чисел, с помощью файла.
Закрепление 1) Некоторый массив описан следующим образом: const n=5; m=3; var a: array [1..n,1..m] of Сколько всего элементов в массиве а? Сколько в нём строк? Сколько столбцов? Может ли данная матрица содержать элемент равный 5.5?
Проанализируйте следующее описание, ответьте на вопросы: const n=5; m=3; var a: array[1..n,1..m] of real; b:array[1..n,1..m] of real; Сколько массивов описано? Назовите имена массивов. Что можно сказать о размере этих массивов? Можно ли в дальнейшей программе выполнить операцию a:=b?
Как нужно описать массивы в примере b) чтобы в программе можно было бы выполнить эту операцию присваивания? const n=5; m=3; type massiv = array[1..n,1..m] of real; var a,b: massiv;
Двумерный массив введён следующим образом: …randomize for j:=1 to n do begin begin for i:=1 to m do for i:=1 to m do begin begin a[i,j]:= random(41)-20; a[i,j]:= random(41)-20; write(a[i,j], ); write(a[i,j], ); end; end; writeln; writeln; end; end; Что можно сказать о способе заполнения массива? Сколько в нём строк? Сколько столбцов?