Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / VBA / Усольцева Л.А.- Программир.на VBA.doc
Скачиваний:
110
Добавлен:
10.04.2015
Размер:
1.71 Mб
Скачать

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

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

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

Построчное вычисление в матрице

При построчном вычислении в матрицах все первоначальные значения для суммы, произведения, количества, минимума и максимума необходимо располагать между операторами начала циклов, причем если вычисления производят по строкам, то первым должен быть открыт цикл по строкам, а если вычисления производят по столбцам, то первым открывают цикл по столбцам. Вывод результатов должен находиться между операторами концов циклов.

Пример.

Задана целочисленная матрица А(5, 5). В каждом столбце матрицы вычислить произведение отрицательных элементов. Рассмотрим фрагмент программы, вычисляющий произведение.

For j = 1 To 5 ‘ открываем цикл по столбцам

P = 1 ‘ задаем начальное значение для произведения

For i = 1 To 5 ‘ открываем цикл по строкам

If A(i, j) > 0 Then P = P * A(i, j) ‘ вычисляем произведение

Next i ‘ элементов в столбце

Cells(7, j) = P ‘ выводим результат

Next j

Пример.

Задана целочисленная матрица Z(n, n). В каждой четной строке матрицы вычислить сумму четных элементов и количество нечетных элементов. Рассмотрим фрагмент программы.

i = 2

While i <= N

S = 0 : K = 0

For j = 1 To N

If Z(i, j) mod 2 = 0 Then S = S + Z(i, j)

If Z(i, j) mod 2 <> 0 Then K = K + 1

Next j

Cells(N + 1 + i, 1) = "сумма=" : Cells(N + 1 + i, 2) = S

Cells(N + 2 + i, 1) = "количество=" : Cells(N + 2 + i, 2) = K

i = i + 2

Wend

2.7. Пользовательский тип данных и формы пользователя

2.7.1. Пользовательский тип данных

В практических задачах управления данными чаще приходится работать с наборами элементов совершенно разных типов. В VBA-программе для управления такой информацией лучше всего создать пользовательский тип данных.

Огромное число баз данных фактически представляют такого же типа организованную структуру, но в электронном виде.

База данных – это набор записей, каждая из которых состоит из полей для хранения отдельных элементов информации. Разные поля могут хранить данные совершенно различных типов (строки, числа, даты или что-то другое). Содержимое одного и того же поля при переходе от записи к записи может меняться, но тип хранимых в поле данных остается во всех записях одним и тем же.

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

Таблица 6. Массив данных.

1

Запись

(Курсант)

5

Петров

Николай

ОТИИ -

12 курс

112

12.09.86

12

Сидоров

Михаил

ОТИИ –

24 курс

124

15.06.84

11

Иванов

Сергей

ОТИИ –

15 курс

115

21.08.83

Поля

Для объявления пользовательского типа данных используется оператор Type, который имеет вид:

Type Имя записи

Имя поля As Тип

.............

Имя поля As Тип

End Type

Пример. Объявляется тип данных, указанных в табл. 6.

Type Курсант

Nom As Integer

Fam As String

Im As String

Ad As String

Tel As Вуtе

Dat As Date

End Type

В операторе Type объявляется тип данных одной записи, которая состоит из переменной целого типа, трех строковых значений, малого целого и даты.

Когда переменная типа Курсант будет объявлена, то в этой переменной автоматически будет предусмотрено место для всех шести элементов, перечисленных в объявлении типа.

Чтобы получить целую базу данных (см. табл. 6), необходимо объявить массив с помощью оператора Dim:

Dim T(10) As Курсант

После объявления переменной ее можно заполнять и обрабатывать. При работе с элементами записи необходимо указывать имя записи и через точку имя поля.

Пример.

Курсант. Nom = 15

Курсант. Fam = "Петров"

Курсант. Im = "Николай"

Курсант. Ad = "ОТИИ – 12 курс "

Курсант. Tel = 112

Курсант. Dat = #12.09.86#

Имя записи

Имя поля