Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_Dvumernye_massivy.doc
Скачиваний:
7
Добавлен:
02.05.2015
Размер:
122.37 Кб
Скачать

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

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

4 –3 2 4 5

6 3 2 4 0

7 1 2 6 0

12 24 25 8 4

0 4 5 8 3

Каждый элемент двумерного массива обозначается при помощи имени и индексов, заключенных в круглые скобки, например, A(i, j), X(4, 3),P(2i,j+1), первый индекс – номер строки, второй – номер столбца.

Двумерный массив, называемый также матрицей, описывается при помощи оператора Dim.

DimA(10, 10)AsТип ‘ нумерация с нуля

DimA(1To10, 1To10)AsТип ‘ нумерация с единицы

Матрица, у которой количество строк равно количеству столбцов, называется квадратной матрицей.

Ввод двумерного массива

  1. Считывание массива с рабочего листа Excel.

For i = 1 To N

For j = 1 To M

A(i, j) = Cells(i, j)

Nextj

Nexti

‘ N– количество строк массива,M– количество столбцов массива.

  1. Формирование массива на рабочем листе Excelпри помощи счетчика случайных чисел, а затем считывание массива с рабочего листа.

Randomize

For i = 1 To N

For j = 1 To M

Cells(i, j) = Int(Rnd * 100 ­– 50)

A(i, j) = Cells(i, j)

Nextj

Nexti

Вывод двумерного массива

Вывод двумерного массива на рабочий лист Excelвыглядит следующим образом:

For i = 1 To N

For j = 1 To M

Cells(i, j) = A(i, j)

Nextj

Nexti

Формирование матрицы

При формировании квадратной матрицы будем пользоваться следующими инструкциями. Общий вид квадратной матрицы, например размерности 44, выглядит следующим образом:

А11

А12

А13

А14

А21

А22

А23

А24

А31

А32

А33

А34

А41

А42

А43

А44

В квадратной матрице выделяются главная и побочная диагонали. Условия нахождения элемента на главной или побочной диагонали показаны на рис. 7.

Относительно каждой диагонали элемент матрицы может находиться выше или ниже диагонали. Условия нахождения элемента в каждой из частей матрицы показаны на рис. 8.

I,J– номера строки и столбца, в которых находится элемент матрицы.

Побочная диагональ, I + J = N + 1

Главная диагональ, I = J

Рис. 7. Главная и побочная диагонали

I = J

I+J = N+1

Рис. 8. Условия нахождения элемента выше или ниже диагонали

Относительно обеих диагоналей элемент матрицы может находиться в одной из четвертей. Условия нахождения элемента в каждой из них показаны на рис. 9.

(I>J) and (I+J>N+1)

Рис. 9. Нахождение элемента в одной из четвертей

Пример 1

Сформировать матрицу X(N,N) вида

4

0

0

0

5

1

4

0

5

2

1

1

4

2

2

1

5

3

4

2

5

3

3

3

4

На побочной диагонали матрицы стоят 5, на главной диагонали стоят 4, в Iчетверти – 0, воIIчетверти – 2, вIIIчетверти – 3, вIVчетверти – 1.

Программный код

Option Explicit

Sub PR22()

Dim a(10, 10) As Integer

Dim N As Integer

Dim i As Integer

Dim j As Integer

N = Val(InputBox("Введите N"))

Range(Cells(1, 1), Cells(100, 100)).Select ‘ выделяет диапазон ячеек

Selection.Clear ‘ очищает выделенный диапазон ячеек

Cells(1, 1).Select ‘ снимает выделение

For i = 1 To N

For j = 1 To N

If i + j = N + 1 Then a(i, j) = 5

If i = j Then a(i, j) = 4

If i < j And i + j < N + 1 Then a(i, j) = 0

If i < j And i + j > N + 1 Then a(i, j) = 2

If i > j And i + j > N + 1 Then a(i, j) = 3

If i > j And i + j < N + 1 Then a(i, j) = 1

Next j

Next i

Cells(1, 1) = "Полученная матрица"

For i = 1 To N

For j = 1 To N

Cells(i + 1, j) = a(i, j)

Next j

Next i

End Sub

Пример 2

Сформировать матрицу X(N,N) вида

1

0

0

0

N

0

2

0

0

0

0

0

3

0

0

.

.

.

.

.

0

2

0

0

0

1

0

0

0

N

Описание и вывод матрицы будут как в предыдущем примере, здесь и далее будем рассматривать только фрагмент программы, в котором формируется матрица.

For i = 1 To N

For j = 1 To N

X(i, j) = 0

If i = j Then X(i, j) = i

If i + j = N + 1 Then X(i, j) = N + 1 – i

Next j

Next i

Пример 3

Сформировать матрицу Y(N,N) вида

1

1

1

1

1

1

0

0

0

1

1

0

0

0

1

.

.

.

.

.

1

0

0

0

1

1

0

0

0

1

1

1

1

1

1

For i = 1 To N

For j = 1 To N

If i = 1 Or i = N Or j = 1 Or j = N Then Y(i, j) = 1 Else Y(i, j) = 0

Next j

Next i

Пример 4

Сформировать матрицу Z(N,N) вида

1

0

0

0

0

0

1

2

0

0

0

0

1

2

3

0

0

0

1

2

3

4

0

0

.

.

.

.

.

.

.

1

2

3

4

5

0

1

2

3

4

5

N

For i = 1 To N

For j = 1 To N

If i >= j Then Z(i, j) = j Else Z(i, j) = 0

Next j

Next i

Пример 5

Сформировать матрицу Q(N,N) вида

1

2

1

2

2

1

2

1

1

2

1

2

.

.

.

.

1

2

1

2

For i = 1 To N

For j = 1 To N

If (i +j) mod 2 = 0 Then Q(i, j) = 1 Else Q(i, j) = 2

Next j

Next i

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]