|
Двумерные массивы (матрицы) Двумерный массив - это структурированный тип данных в виде прямоугольной таблицы. Положение элементов в двумерных массивах описывается двумя индексами. Например, двумерный массив размером 3*3, то есть в нем будет три строки, а в каждой строке по три элемента: Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. A[2,1] - это элемент, стоящий во второй строке и в первом столбце. Описание двумерного массива (матрицы): Var A: array[1..100,1..100] of integer; Ввод двумерного массива Для последовательного ввода элементов двумерного массива используется цикл for, в котором нужно последовательно изменять номер строки с 1-й до последней и в каждой строке перебирать элементы столбцов с 1-го до последнего. Рассмотрим пример ввода двумерного массива Паскаля с клавиатуры: var a, : array [1..5, 1..10] of integer; i, j: integer; { индексы массива } begin for i :=1 to 5 do {цикл для перебора всех строк} for j :=1 to 10 do {перебор всех элементов строки по столбцам} readln ( a [ i , j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце} Двумерный массив можно заполнить случайным образом, т.е. использовать функцию random (N), а также присвоить каждому элементу матрицы значение некоторого выражения. Способ заполнения двумерного массива выбирается в зависимости от поставленной задачи, но в любом случае должен быть определен каждый элемент в каждой строке и каждом столбце. Вывод двумерного массива Паскаля на экран Вывод элементов двумерного массива также осуществляется последовательно, необходимо напечатать элементы каждой строки и каждого столбца. При этом нужно, чтобы элементы, стоящие в одной строке, печатались рядом, т.е. в строку, а элементы столбца располагались один под другим. Для этого необходимо выполнить следующую последовательность действий (рассмотрим фрагмент программы для массива, описанного в предыдущем примере): for i :=1 to 5 do {цикл для перебора всех строк} begin for j :=1 to 10 do {перебор всех элементов строки по столбцам} write ( a [ i , j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции} writeln ; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки} end ; |
Обратная связьЗадачи для самостоятельной работы:
|