Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие Серкова1

.pdf
Скачиваний:
22
Добавлен:
02.03.2016
Размер:
994.9 Кб
Скачать

UserForm2.Hide

Exit Sub label:

MsgBox "Не найдено"

End Sub.

Задания для самостоятельной работы

VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub.

Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений.

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

Пример выполнения работы.

Даны матрицы:

 

2.1

3.2

4.5

7.1

 

 

2.5

4.3

7.2

9.4

 

A

.

 

3.2

4.8

9.3

 

 

 

18.1

Найти максимальный элемент в каждой матрице. Использовать подпрограмму.

101

Блок– схема процедуры

Точка входа maxum(d,k,L,mx)

 

maxc=-1000

 

I=1;k;1

 

j=1;L;1

 

нет

да

Dij< maxc

 

 

maxc=Dij

mx= maxc

Точка выхода

102

Блок-схемы основной программы.

Начало

Ввод

матрицы А

i1=3, j1=4

maxum (а,i1,j1,mxa);

Вывод матрицы А

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

i1=5, j1=2

maxum (в,i1,j1,mxb);

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

Вывод mxa, mxb

конец

103

Рисунок 17Результат работы приложения

Событийная процедура кнопки Вычислить. Dim c(1 To 6, 1 To 6) As Single

Function maxum(k, L, n, m) max = -10000

For i = 1 To n

For j = 1 To m

c(i, j) = Cells(i + k, j + L)

If c(i, j) > max Then max = c(i, j) Next j

Next i maxum = max End Function.

Private Sub CommandButton1_Click()

Dim c(1 To 6, 1 To 6) As Single

Dim b(1 To 6, 1 To 6) As Single

104

Dim i, j, k, L, m, n As Byte For i = 1 To 3

For j = 1 To 4

c(i, j) = Cells(i + 1, j) Next j

Next i n = 3 m = 4 k = 1 L = 0

maxa = maxum(k, L, n, m) TextBox1.Text = Format(maxa, "0.00") k = 6

L = 2

maxb = maxum(k, L, 5, 2) TextBox2.Text = Format(maxb, "0.00") End Sub.

Варианты заданий

Вариант 1.

Упорядочить по убыванию массив, содержащий 20 целых чисел. Найти сумму и произведение элементов массива. Использовать процедуру и функции.

Вариант 2.

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

Вариант 3.

Упорядочить по не убыванию массив, содержащий 15 вещественных чисел. Найти сумму и произведение положительных элементов массива. Использовать процедуру и функции.

Вариант 4.

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

Вариант 5.

105

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

Вариант 6.

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

Вариант 7.

Дан двухмерный массив, содержащий 4 строки и 5 столбцов. Элементами массива являются целые числа. Упорядочить массив по невозрастанию элементов пятого столбца. Подсчитать сумму положительных элементов, отрицательных элементов и нулей. Использовать процедуру и функции.

Вариант 8.

Дан двухмерный массив, содержащий 3 строки и 4 столбца. Элементами массива являются вещественные числа. Упорядочить массив по неубыванию элементов первого столбца. Подсчитать произведение и сумму положительных элементов массива. Использовать процедуру и функции.

Вариант 9.

Дан двухмерный массив, содержащий 4 строки и 4 столбца. Элементами массива являются вещественные числа. Упорядочить массив по невозрастанию элементов первой строки. Подсчитать количество строк, начинающихся с отрицательных элементов. Использовать процедуру и функции.

Вариант 10.

Дан двухмерный массив, содержащий 2 строки и 4 столбца. Элементами массива являются целые числа. Упорядочить массив по не убыванию элементов второй строки. Подсчитать количество четных элементов матрицы и их сумму. Использовать процедуру и функции.

Вариант 11.

Найти сумму элементов главной диагонали матрицы С(5,5) с нечетными индексами. Элементы матрицы задать самостоятельно. Использовать процедуру и функции.

Вариант 12.

106

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

Вариант 13.

Даны три матрицы:

 

 

7.9

8.3

4.5

8.4

 

2.1

4.3

8.9

5.3

5.2

 

 

 

8.1

9.3

5.1

 

,

 

9.2

8.4

3.5

9.4

8.2

 

 

 

A

3.1

B

,

 

 

 

5.2

8.4

5.9

 

 

 

4.1

9.5

8.4

5.3

8.1

 

 

 

 

7.3

 

 

 

2.1

4.3

5.2

5.2

7.3

8.1

 

 

 

 

 

 

 

 

 

3.2

4.5

9.3

7.3

5.2

9.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

8.2

8.7

4.1

7.5

8.2

14.5

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19.1

3.2

7.1

4.3

9.4

 

 

 

 

 

 

 

 

14.1

 

 

 

 

 

 

 

 

Поменять местами первую и третью строки в каждой матрице. Использовать процедуру.

Вариант 14.

Даны матрицы:

4.1

2.3

6.8

9.4

 

 

 

4.2

7.4

 

 

 

 

9.3

2.4

 

 

7.1

2.4

5.9

4.3

 

,

B

 

 

A

 

 

 

12.3

,

 

2.1

7.3

9.3

5.8

 

 

 

15.7

 

 

 

 

 

 

 

19.2

 

 

 

 

 

 

 

 

 

14.7

 

Найти суммы элементов по столбцам. Использовать процедуру.

Вариант 15.

Дана матрица Z(6,6). Найти количество отличных от нуля элементов, расположенных ниже побочной диагонали. Нулевые элементы матрицы заменить на -1. Элементы матрицы Z задать самостоятельно. Использовать процедуру.

Вариант 16.

В исходной матрице найти количество четных элементов, больших 4, и количество нечетных элементов, меньших 67.

2.1

4.3

5.2

5.2

7.3

8.1

 

 

3.2

4.5

9.3

7.3

5.2

9.1

 

 

 

C

8.2

8.7

4.1

7.5

8.2

14.5

.

 

 

 

 

19.1

3.2

7.1

4.3

9.4

 

14.1

 

Использовать процедуру.

Вариант 17.

Сформировать матрицу С(5,5) по правилу: ci,j = arctg((i+j)/28)+4.

Hайти сумму отрицательных элементов матрицы, расположенных ниже побочной диагонали. Использовать процедуру.

Вариант 18.

107

Hайти разность двух произведений: произведения элементов выше главной диагонали и произведения элементов ниже побочной диагонали матрицы В.

2.1

4.3

8.9

5.3

5.2

 

 

9.2

8.4

3.5

9.4

8.2

 

B

.

 

4.1

9.5

8.4

5.3

8.1

 

 

 

Использовать процедуру.

Вариант 19.

Дана матрица А(5,5). Сформировать два массива В и С. В массив В войдут максимальные элементы каждого столбца, а в массив С – максимальные элементы каждой строки матрицы.

 

2

3

5

0

77

 

 

13

11

14

4

0

 

 

2

2

3

7

15

 

A

.

 

3

6

9

8

1

 

 

 

 

0

4

5

2

9

 

 

 

Использовать процедуру.

Вариант 20.

Сформировать матрицу С(5,5) по правилу: ci,j = arctg((i+j)/28)+4.

Hайти сумму отрицательных элементов матрицы, расположенных ниже побочной диагонали. Использовать процедуру.

Вариант 21.

Hайти все разности между максимальным элементом матрицы А (6,6) и всеми элементами матрицы, расположенными на главной диагонали.

ai,j = 14* /i + cos(j). Использовать процедуру.

Вариант 22.

В исходную матрицу А(7,5) добавить новую строку, элементами которой являются количество отрицательных элементов соответствующих столбцов. Элементы матрицы задать самостоятельно. Использовать процедуру.

Вариант 23.

Записать в массив X подряд отрицательные элементы матрицы В(7,5). Элементы матрицы В формируются по правилу: bi,j = COS(i+j).

Вывести X и B(7,5). Использовать процедуру.

Вариант 24.

108

Вычесть из суммы элементов матрицы В(5,5), расположенных ниже главной диагонали, произведение элементов побочной диагонали.

1

2

3

4

5

6

5

4

3

2

 

7

8

9

 

B 1

6 .

 

9

6

3

 

5

4

 

7

8

6

 

1

2

Использовать процедуру.

Вариант 25.

В построенной матрице A(7,4) определить количество элементов, для которых выполнено условие: -0,5 < aij < 0,5. Элементы матрицы строятся по правилу: aij = sin (i + j / 2). Матрицу напечатать. Использовать процедуру.

Вариант 26.

Определить суммы положительных элементов матрицы А для каждой строки, исключая элементы главной диагонали.

2

6

4

1

 

4

0

13

2

 

A

0.5

2

14

 

.

 

7.1

 

3

2.5

0.1

2

 

 

 

Использовать процедуру.

Вариант 27.

Подсчитать количество нулевых элементов среди элементов, расположенных выше главной диагонали матрицы В(8,8), которые формируются по правилу:

bij = cos

(i j) – 16, (i, j = 1,…,8).

 

2

Использовать процедуру.

109

Библиографический список

1.С. Браун. . Visual Basic 5 с самого начала [Текст]. - ПИТЕР. – С.-П., 1998.

2.Гарнаев А.Ю. Самоучитель по VBA [Текст] А. Ю. Гарнаев – СПб: БХВ – Санкт - Петербург, 1999. – 512 с.

3.Ломтадзе В. В. Информатика [Текст]: учебное пособие / В. В. Ломтадзе,

Л. П. Шишкина – Иркутск: Изд-во Иркутского госуд. технич. ун-та, 1999. – 116 с

4.Нестерова Л.А. Основы алгоритмизации и языки программирования. Конспект лекций [Текст]. Часть 1 и 2. – Киров. – 1997.

5.О.Н. Туманова и др. Практикум для проведения лабораторных работ по программированию на языке Турбо Паскаль [Текст]. Уч. Пособие. – Ухта 1996 г.

6.Шишкина Л.П. Лабораторный практикум по информатике. Часть II. Visual Basic for Applications [Текст] Л. П. Шишкина, Т. П. Бояринцева, Т. Н. Сержант – Иркутск: Изд-во Иркутского госуд. техн. ун-та, 2001. – 52 с.

110