Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.docx
Скачиваний:
17
Добавлен:
14.04.2015
Размер:
325.87 Кб
Скачать

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

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

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

Randomize

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 ("нет решения")

EndIf

EndSub

Подпрограммы

При написании длинных программ рационально использовать подпрограммы.

Подпрограмма – это отдельный блок, который может восприниматься как отдельная программа. В VBAсуществует два вида подпрограмм: подпрограмма-процедура и подпрограмма-функция.

Подпрограмма-процедура

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

Синтаксис:

[Public|Private] [Static]SubИмя([Список аргументов])

Тело подпрограммы

End Sub

Элементы описания процедуры рассмотрены в табл. 10.

Таблица 10

Public

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

Private

Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана

Static

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

Список аргументов

Список переменных, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой

Вызов процедуры Subиз другой процедуры можно произвести следующим образом:

Имя процедуры [Список фактических параметров]

Список фактических параметров – это список аргументов, передаваемых процедуре. Он должен соответствовать списку, заданному в описании процедуры, по типу и количеству.

Пример

Основные способы передачи параметров в процедуре.

Option Explicit

Sub PR27()

Dim c As Double

Dim a As Integer

Dim b As Integer

B = 12

For a = 1 To 5

Summa a, b, c

MsgBox("c=" & c)

Next a

End Sub

Sub Summa(ByVal a1, b1 As Integer, ByRef s As Double)

S=a1 +b1

EndSub

В данной программе мы сталкиваемся с несколькими видами параметров:

  • глобальные параметры – c,a,b;

  • локальные параметры – s,a1,b1;

  • параметры, передающиеся по значению – a,b;

  • параметры, передающиеся по ссылке – s;

  • фактические параметры – a,b,c;

  • формальные параметры – a1,b1,s.

Рассмотрим каждый из этих видов параметров.