Вычисление минимального и максимального элементов в одномерных массивах

При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия:

 
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru

Y(i), если Y(i) > Max;

Max =

Max, если Y(i) £ Max.

 
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru

Y(i), если Y(i) < Min;

Min =

Min, если Y(i) ³ Min.

За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то

Max = – 32000 или Max = Y(1),

Min = 32000 или Min = Y(1).

Пример 1

Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.

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

Sub PR17()

Dim A(10) As Integer

Dim i As Integer, R As Integer

Dim Min As Integer, Max As Integer, IMin As Integer, IMax As Integer

For i = 1 To 10

A(i) = Cells(1, i) ‘ ввод массива

Next i

Min = 32000: Max = –32000

For i = 1 To 10

If A(i) > Max Then

Max = A(i) ‘ вычисление максимума

IMax = i ‘ и его номера

End If

If A(i) < Min Then

Min = A(i) ‘ вычисление минимума

IMin = i ‘ и его номера

End If

Next i

Cells(2, 1) = "Max="

Cells(2, 2) = Max

Cells(2, 4) = "IMax"

Cells(2, 5) = IMax

Cells(3, 1) = "Min="

Cells(3, 2) = Min

Cells(3, 4) = "IMin"

Cells(3, 5) = IMin

R = A(IMax) ‘ меняем местами

A(IMax) = A(IMin) ‘ максимальный и

A(IMin) = R ‘ минимальный элементы

For i = 1 To 10

Cells(5, i) = A(i) ‘ вывод массива

Next i

End Sub

 
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru

В результате работы этой программы на рабочем листе Excel появятся следующие данные (рис. 5).

Рис. 5. Вычисление минимального и максимального элементов массива

Пример 2

Задан одномерный массив Х(N). Вычислить максимальный из отрицательных элементов этого массива.

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

Sub PR18()

Dim Х(100) As Integer

Dim i As Integer, N As Integer, Max As Integer

N = Val(InpurBox(“Введите N”))

For i = 1 To 10

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

X(i) = Cells(1, i)

Next i

Max = –32000

For i = 1 To 10

If X(i) > Max And X(i) < 0 Then Max = X(i)

Next i

MsgBox(“Max=” & Max)

End Sub

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

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

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.

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

Dim A(1 To 10, 1 To 10) As Тип ‘ нумерация с единицы

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

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

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

For i = 1 To N

For j = 1 To M

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

Next j

Next i

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

2. Формирование массива на рабочем листе 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)

Next j

Next i

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

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

For i = 1 To N

For j = 1 To M

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

Next j

Next i

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

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

А11 А12 А13 А14
А21 А22 А23 А24
А31 А32 А33 А34
А41 А42 А43 А44

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

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

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

 
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru

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

 
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru

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

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

       
  Вычисление минимального и максимального элементов в одномерных массивах - student2.ru
 
   
(I>J) and (I+J>N+1)

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

Пример 1

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

На побочной диагонали матрицы стоят 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) вида

N
. . . . .
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) вида

. . . . .

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) вида

. . . . . . .
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) вида

. . . .

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

Наши рекомендации