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

Вычисление суммы, произведения, количества, минимума и максимума в двумерных массивах

Сумма, произведение, количество, минимум и максимум в двумерных массивах вычисляются точно так же, как и в одномерных, только после задания начальных значений нужно открыть не один, а два цикла (по строкам и по столбцам).

S = 0 : P = 1 : K = 0 : Min = 32000 : Max = – 32000

For i = 1 To N

For j = 1 To N

S = S + x(i, j)

P = P * x(i, j)

K = K + 1

If x(i, j) < Min Then Min = x(i, j)

If x(i, j) > Max Then Max = x(i, j)

Nextj

Nexti

Пример

Задана целочисленная матрица X(5, 5). Вычислить значение выражения

,

где Р – произведение четных элементов матрицы; S– сумма нечетных элементов;Max– максимальный из положительных элементов;iMin,jMin– номера строки и столбца минимального элемента матрицы.

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

Option Explicit

Sub PR23()

Dim X(5, 5) As Integer

Dim i As Integer, j As Integer

Dim T As Double, S As Double

Dim P As Double, Q As Double

Dim Max As Integer, Min As Integer

Dim iMin As Integer, jMin As Integer

‘ очистка ячеек электронной таблицы

Range(Cells(1, 1), Cells(100, 100)).Select

Selection.Clear

Cells(1, 1).Select

‘ ввод матрицы

For i = 1 To 5

For j = 1 To 5

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

X(i, j) = Cells(i, j)

Next j

Next i

P = 1: S = 0: Max = –32000: Min = 32000

For i = 1 To 5

For j = 1 To 5

If X(i, j) Mod 2 = 0 Then P = P * X(i, j)

If X(i, j) Mod 2 <> 0 Then S = S + X(i, j)

If X(i, j) > 0 And X(i, j) > Max Then Max = X(i, j)

If X(i, j) < Min Then

Min = X(i, j)

iMin = i

jMin = j

End If

Next j

Next i

T = P * S – Max * iMin * jMin

If T >= 0 Then

Q = Sqr(T)

MsgBox ("Q=" & Q)

Else

MsgBox ("нет решения")

End If

End Sub

Диагональное вычисление в матрице

Задана матрица Y(n,n). Вычислить сумму элементов вIVчетверти, произведение четных элементов воIIчетверти, поменять местами минимальный элемент вIчетверти и максимальный элемент вIIIчетверти (рис. 10).

Рис. 10. Диагональное вычисление в матрице

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

Option Explicit

Sub PR24()

Dim Y(50, 50) As Integer

Dim n As Integer

Dim i As Integer, j As Integer

Dim R As Integer

Dim S As Double

Dim P As Double

Dim Min As Integer

Dim Max As Integer

Dim iMin As Integer, jMin As Integer

Dim iMax As Integer, jMax 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

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

Y(i, j) = Cells(i, j)

Next j

Next i

P = 1: S = 0: Max = –32000: Min = 32000

For i = 1 To n

For j = 1 To n

If (i + j < n + 1) And (i > j) Then S = S + Y(i, j)

If (Y(i, j) Mod 2 = 0) And (i < j) And (i + j > n + 1) Then P = P * Y(i, j)

If (Y(i, j) > Max) And (i > j) And (i + j > n + 1) Then

Max = Y(i, j)

iMax = i

jMax = j

End If

If (Y(i, j) < Min) And (i < j) And (i + j < n + 1) Then

Min = Y(i, j)

iMin = i

jMin = j

End If

Next j

Next i

Cells(n + 2, 1) = "Сумма="

Cells(n + 2, 3) = S

Cells(n + 3, 1) = "Произведение="

Cells(n + 3, 3) = P

‘ Перестановка минимума и максимума

R = Y(iMax, jMax)

Y(iMax, jMax) = Y(iMin, jMin)

Y(iMin, jMin) = R

Cells(n + 5, 1) = "новая матрица"

For i = 1 To n

For j = 1 To n

Cells(n + i + 6, j) = Y(i, j)

Next j

Next i

End Sub

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