Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Вычисление суммы, произведения, количества, минимума и максимума в двумерных массивах ⇐ ПредыдущаяСтр 4 из 4
Сумма, произведение, количество, минимум и максимум в двумерных массивах вычисляются точно так же, как и в одномерных, только после задания начальных значений нужно открыть не один, а два цикла (по строкам и по столбцам).
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) Next j Next i
Пример Задана целочисленная матрица 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 (" нет решения" ) End If End Sub
Подпрограммы
При написании длинных программ рационально использовать подпрограммы. Подпрограмма – это отдельный блок, который может восприниматься как отдельная программа. В VBA существует два вида подпрограмм: подпрограмма-процедура и подпрограмма-функция.
Подпрограмма-процедура
Подпрограмма-процедура может вычислять одно значение, несколько значений или не производить никаких вычислений, а использоваться в качестве программы, выводящей на экран текст или рисунки.
Синтаксис: [Public | Private] [Static] Sub Имя([Список аргументов]) Тело подпрограммы End Sub Элементы описания процедуры рассмотрены в табл. 10.
Таблица 10
Вызов процедуры 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 End Sub
В данной программе мы сталкиваемся с несколькими видами параметров: · глобальные параметры – c, a, b; · локальные параметры – s, a1, b1; · параметры, передающиеся по значению – a, b; · параметры, передающиеся по ссылке – s; · фактические параметры – a, b, c; · формальные параметры – a1, b1, s. Рассмотрим каждый из этих видов параметров.
Локальные и глобальные параметры (переменные)
Параметры, которые используются внутри процедуры, называются локальными, а параметры, которые могут использоваться в любом месте главной программы и в процедуре, называются глобальными.
Формальные и фактические параметры
Описываемые в заголовке процедуры параметры называются формальными, а те параметры, которые подставляются на их место при вызове процедуры, называются фактическими, так как они при выполнении процедуры как бы замещают все формальные. Формальные и фактические параметры должны совпадать по типу и по количеству.
Параметры, передающиеся по значению
Параметры, передающиеся по значению, – это параметры, значения которых передаются в подпрограмму и не передаются из нее обратно. Перед такими параметрами ставится оператор ByVal.
Подпрограмма-функция
Подпрограмма-функция Function является самостоятельной подпрограммой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Подпрограмма-функция может применяться в правой части выражения, как и любая другая встроенная функция, например косинус или синус угла. Подпрограмма-функция возвращает один результат и он должен быть присвоен имени этой функции.
Синтаксис: [Public [Private] [Static] Function Имя [(Список аргументов)] As Тип Тело подпрограммы Имя = Выражение End Function Подпрограмма-функция вызывается в выражении по своему имени, за которым следует список аргументов в скобках:
Переменная = Имя подпрограммы-функции(Список аргументов)
Пример 1 Даны действительные числа s, t. Получить значение выражения
,
где
Программный код
Option Explicit Sub PR31() Dim s As Double Dim t As Double Dim f As Double s = Val(InputBox(" Введи s" )) t = Val(InputBox(" Введи t" )) f = Q(1.2, s) + Q(t, s) – Q(2 * s – 1, s * t) MsgBox(" f=" & f) End Sub Private Function Q(ByVal a As Double, ByVal b As Double) As Double Q = (a^2 + b^2) / (a^2 + 2 * a * b + 3 * b^2 + 4) End Function
Популярное:
|
Последнее изменение этой страницы: 2017-03-08; Просмотров: 677; Нарушение авторского права страницы