Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Процедуры и функции. Function <имя_функции> (<список-формальных_параметров>) As <тип_результата>




 

Заголовок функции:

Function <имя_функции> (<список-формальных_параметров>) As <тип_результата>

 

Конец текста функции обозначает оператор

End Function

Результат присваивается переменной <имя_функции>.

Заголовок процедуры:

Sub <имя_процедуры> (<список-формальных_параметров>)

End Sub

Параметры передаются:

ByVal – по значению

ByRef – по ссылке.

Если способ передачи не указан, то считается ByRef. Массивы всегда передаются по ссылке.

Вызов процедуры осуществляется с помощью управляющего слова Call.

 

Пример программы для работы с двумерным массивом

 

На рисунке представлена таблица с заданными числами (6 строк, 5 столбцов). Программа вычисляет значение максимального элемента (Function) и находит индексы минимального элемента массива (Sub). Основной макрос получает из таблицы значения элементов двумерного массива, вызывает процедуру и функцию и выводит результаты в таблицу, окрашивая при этом результирующие ячейки розовым цветом.

Sub main()

Dim A(1 To 10, 1 To 10) As Single

Dim n As Integer, m As Integer

Dim i As Integer, j As Integer

Dim Index1 As Integer, Index2 As Integer

Dim Max As Single

 

n = 6

m = 5

Ввод массива

For i = 1 To n

For j = 1 To m

A(i, j) = Cells(i + 2, j + 1)

Next j

Next i

‘ Вызов процедуры

Call Index_Min(n, m, A, Index1, Index2)

‘ Выделение ячейки с минимальным значением

Cells(Index1 + 2, Index2 + 1).Select

With Selection.Interior

.ColorIndex = 38

.Pattern = xlSolid

End With

‘ Вызов функции

Max = Max_Item(n, m, A)

‘ Вывод результата

Cells(11, 6) = Max

Cells(11, 6).Select

With Selection.Interior

.ColorIndex = 38

.Pattern = xlSolid

End With

End Sub

 

Function Max_Item(ByVal n As Integer, ByVal m As Integer, _

ByRef X() As Single) As Single

Dim Max As Single

Max = X(1, 1)

For i = 1 To n

For j = 1 To m

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

Next j

Next i

Max_Item = Max

End Function

 

Sub Index_Min(ByVal n As Integer, ByVal m As Integer, _

ByRef X() As Single, ByRef Ind1 As Integer, _

ByRef Ind2 As Integer)

 

Ind1 = 1

Ind2 = 1

For i = 1 To n

For j = 1 To m

If X(i, j) < X(Ind1, Ind2) Then

Ind1 = i

Ind2 = j

End If

Next j

Next i

End Sub

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных