Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
массивы.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
269.31 Кб
Скачать

Индексы элементов двумерного массива

Двумерный массив A из 25 элементов 5 строк * 5 столбцов имеет индексы представленные ниже (первый индекс - это номер соответствующей строки, а второй - номер соответствующего столбца):

5

-2

3

14

11

A[1,1]

A[1,2]

A[1,3]

A[1,4]

A[1,5]

17

13

1

7

1

A[2,1]

A[2,2]

A[2,3]

A[2,4]

A[2,5]

5

-2

3

14

20

A[3,1]

A[3,2]

A[3,2]

A[3,4]

A[3,5]

8

0

9

10

-4

A[4,1]

A[4,2]

A[4,3]

A[4,4]

A[4,5]

3

-6

3

14

16

A[5,1]

A[5,2]

A[5,3]

A[5,4]

A[5,5]

При обработке в программе всех элементов двумерного массива необходимо писать "вложенные" операторы FOR :

FOR I:=1 TO 5 DO

FOR J:=1 TO 5 DO ... A [ I , J ] ....

Индексы строки и столбца двумерного массива

Рассмотрим в качестве примера индексы 2-ой строки:

A[2,1] A[2,2] A[2,3] A[2,4] A[2,5]

Легко заметить, что первый индекс - номер строки - фиксирован и равен 2 (для 2-ой строки), а второй индекс последовательно пробегает значения от 1 до 5. Поэтому в случае необходимости обработки 2-ой строки двумерного массива достаточно написать:

FOR I:=1 TO 5 DO ... A [ 2 , I ] ....

Переменная I может быть по необходимости заменена любой другой, например M:

FOR M:=1 TO 5 DO ... A [ 2 , M ] ....

Теперь рассмотрим в качестве примера индексы третьего столбца:

A[1,3]

A[2,3]

A[3,3]

A[4,3]

A[5,3]

Очевидно, что теперь второй индекс - номер столбца фиксирован, а первый индекс - номер строки пробегает последовательно все значения от 1 до 5. Поэтому цикл обработки элементов третьего столбца должен выглядеть так :

FOR I:=1 TO 5 DO ... A [ I , 3 ] ....

Индексы диагоналей двумерного массива

Элементы первой диагонали двумерного массива имеют индексы:

A[1,1]

A[2,2]

A[3,3]

A[4,4]

A[5,5]

Легко заметить, что индекс строки равен индексу столбца для всех элементов первой диагонали, и потому цикл обработки элементов первой диагонали должен выглядеть следующим образом:

FOR I:=1 TO 5 DO ... A [ I , I ] ...

Элементы первой диагонали двумерного массива имеют индексы:

A[1,5]

A[2,4]

A[3,3]

A[4,2]

A[5,1]

Нелегко, но можно, заметить, что сумма индексов строки и столбца для всех элементов второй диагонали постоянна и равна 6 (для массива 5*5 и N+1 для массива N*N), и потому цикл обработки элементов второй диагонали должен выглядеть следующим образом:

FOR I:=1 TO 5 DO ... A [ I , 6 - I ] ..

Перенос простейших алгоритмов на двумерные массивы

Учитывая все вышеизложенное, можно согласиться со следующей методикой переноса алгоритмов с одномерных массивов на двумерные, проиллюстрированной далее для алгоритма суммирования элементов:

...

s:=0; {Суммирование элементов одномерного массива}

for i:=1 to 10 do s:=s+a[i];

...

s:=0; {Суммирование элементов 2-ой строки двумерного массива}

for i:=1 to 5 do s:=s+a[2,i];

...

s:=0; {Суммирование элементов 3-го столбца двумерного массива}

for i:=1 to 5 do s:=s+a[i,3];

...

s:=0; {Суммирование элементов 1-ой диагонали двумерного массива}

for i:=1 to 5 do s:=s+a[i,i]; ...

s:=0; {Суммирование элементов 2-ой диагонали двумерного массива}

for i:=1 to 5 do s:=s+a[i,6-i];

...

s:=0; {Суммирование элементов двумерного массива}

for i:=1 to 5 do

for j:=1 to 5 do s:=s+a[i,j];

...

В чем же заключается методика переноса алгоритмов на двумерные массивы? В замене индексов одномерного массива на индексы соответственно строки, столбца, 1-ой или 2-ой диагоналей или всего двумерного массива. В случае обработки всего двумерного массива

необходимо также использовать "вложенные" операторы FOR.

Кроме того, в программе, обрабатывающей двумерный массив, необходимо объявлять, вводить и выводить именно двумерный массив. Как это правильно делать показывается ниже: