Двумерные массивы

Поиск
Популярные статьи
Главная » Статьи » Pascal » Двумерные массивы

Двумерные массивы

Двумерный массив - это набор однотипных данных, имеющий общее имя, доступ к элементам которого осуществляется по двум индексам: номер строки - i; номер столбца – j. Элементами массива может быть любой из известных типов данных, следовательно и сам массив.

Например,

Const n=10; m=20;

Type aa2=array[1..n] of

Array[1..m]

Of real;

Var: aa2;

 

Более распространено другое описание двумерных массивов. Например:

Type bb2=array[1..n,1..m] of real;

Var b: bb2;

Вводить двумерные массивы нужно поэлементно.

Считать элементы массива и распечатать их в виде таблицы можно следующим образом:

For i:=1 to n do

For j:=1 to m do

Read(b[I,j]);

Readln;

For i:=1 to n do

Begin

For j:=1 to m do

Write(b[I,j]:6:1);

Writeln

End;

Элементы многомерных массивов в памяти компьютера располагаются

«по строкам». То есть сначала расположены все элементы первой строки, затем второй и т.д.

Рассмотрим как эффективно обрабатывать различные части матриц.

Проведем в таблице «главную диагональ» - линию соединяющую левый верхний и правый нижний угол матрицы. Пометим все элементы цифрами 0,1,2 в зависимости от расположения элемента относительно главной диагонали:

0

1

1

1

1

2

0

1

1

1

2

2

0

1

1

2

2

2

0

1

2

2

2

2

0

 

Элементы, стоящие на главной диагонали матрицы, обозначены цифрой 0.

У произвольного элемента матрицы a[i,j] i – номер строки, а j – номер столбца.

·       Если номер строки элемента совпадает с номером столбца( i=j ), то элемент лежит на главной диагонали (на рисунке они обозначены цифрой 0). Для обработки всех элементов главной диагонали достаточно одного цикла:

      For i:=1 to n do

      …a[i,i]…

·       Если номер строки превышает номер столбца ( i>j ), то элемент находится ниже главной диагонали (на рисунке они обозначены цифрой 2). Эти элементы описываются так:

      For i:=2 to n do

      For j:=1 to i-1 do

      …a[i,j]…

·       Если номер столбца больше номера строки ( i<j ), то элемент находится выше главной диагонали (на рисунке они обозначены цифрой 1)

Для их обработки можно написать цикл:

      For i:=1 to n-1 do

(это цикл по всем строкам)

      For j:=i+1 to n do

(цикл по столбцам: от диагонали до n)

      …a[i,j]…

Добавил: iDen (10.09.2009) | Автор: Денис
Просмотров: 2737 | Рейтинг: 0.0/0 |
Всего комментариев: 0

Имя *:
Email *:
Код *:
Меню Пользователя
Привет, Гость!
Наш опрос
Оцените мой сайт
Всего ответов: 31
Друзья сайта

iDen Corporation/Создать бесплатный сайт с uCoz