Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Для заданного массива чисел X и некоторой величины h определить, сколько элементов массива больше h. Для решения этой задачи необходимо разработать функцию.



Для выполнения задания выполните следующие действия:

1. Поместить в окно кода модуля заготовку создаваемой функции. Выполнить команду Insert (Вставить), Procedure (Процедура). В появившемся окне Add Procedure (Добавить процедуру) установить переключатель типа процедуры в положение Function (Функция) и ввести имя функции Fun Pr 1.

2. Ввести код функции Fun Pr 1:

Public Function FunPr 1 (X As Variant,h As Variant) As Integer

Dim kol As Integer, i As Integer, j As Integer

2 n= X.Rows.Count

3 m= X.Columns.Count

4: kol = 0

5: For i = 1 To n

6: For j = 1 To m

7: If X(i, j) > h Then

8: kol = kol + 1

End If

Next

Next

1 2 : FunPr1 = kol

End Function

Обратить внимание: при объявлении аргументов функции Fun Pr 1 в качестве массива выступает диапазон, поэтому при объявлении соответствующего аргумента (X) он объявляется не как имя массива, а имеет тип Variant.

В строке 2 значение выражения X.Rows.Count равно числу строк диапазона X. Значение выражения X.Columns.Count в строке 3 равно числу столбцов диапазона X.

3. Cвернуть окно редактора Visual Basic. В открывшемся окне Microsoft Excel Массивы.xls протестировать созданную функцию

4. Продемонстрируйте результат преподавателю.

5. Выполнить задание следующего содержания:

 

Пусть задан массив чисел X и некоторая величина h. Значения всех элементов этого массива, которые меньше h, требуется заменить нулем. Для решения этой задачи необходимо разработать функцию Fun Pr 2.

6. В окне модуля Module1 создать функция аналогично функции FunPr1.

7. Ввести код этой функции:

Public Function FunPr2(X As Variant, h As Variant) As Variant

Dim i As Integer, j As Integer

Dim R() As Variant

3 n= X.Rows.Count

4 m= X.Columns.Count

ReDim R(1 To n,1 To m)As Variant

6: For i = 1 To n

7: For j = 1 m

8: If X(i, j) < h Then

9: R(i, j) = 0

Else

11: R(i, j) = X(i, j)

End If

Next

Next

15: FunPr2 = R

End Function

Смысл инструкций программы функции Fun Pr 2 достаточно прозрачен и не требует дополнительного комментария. Следует лишь обратить внимание на строку 15, в которой функция принимает значение не скаляра, а массива.

8. Свернуть окно редактора Visual Basic.

9. Провести тестирование

10. Продемонстрировать преподавателю результаты выполненной работы.

11. Выполнить индивидуальное задание в соответствии с номером своего
 варианта.


Варианты индивидуальных заданий

№ вар. Функция
1. По заданной прямоугольной матрице получает новую, являющуюся результатом поворота исходной матрицы на 90 градусов;
2. Находит скалярное произведение двух векторов C = ∑ Ai * Bi;
3. Находит матрицу, равную сумме двух матриц Ci j = Ai j+ Bi j;
4. Находит матрицу – произведение двух матриц Ci j = Ai j * Bi j;
5. По заданному одномерному массиву получает новый, отличающийся от исходного тем, что значения отрицательные элементов заменены заданной величиной;
6. Вычисляет число инверсий в порядке возрастания значений элементов вектора. Инверсия порядка возрастания – это когда два соседних элемента вектора расположены в порядке убывания;
7. Вычисляет число инверсий в порядке убывания значений элементов вектора. Инверсия порядка убывания – это когда два соседних элемента вектора расположены в порядке возрастания;
8. Проверяет, все ли элементы одномерного массива имеют значение больше заданной величины;
9. Проверяет, есть ли хотя бы один элемент одномерного массива, имеющий значение, меньше заданной величины;
10. Определяет для двух целочисленных одномерных массивов количество элементов первого массива, значение которых равно значению хотя бы одного элемента второго массива;
11. Вычисляет количество элементов одномерного массива, значение которых больше заданной величины h1, но в тоже время меньше заданной величины h2;
12. Проверяет, действительно ли количество положительных элементов одномерного массива больше количества его отрицательных элементов;
13. Вычисляет сумму элементов одномерного массива;
14. Вычисляет произведение элементов одномерного массива;
15. Вычисляет среднее арифметическое значение одномерного массива;
16. Вычисляет минимальный элемент одномерного массива;
17. Вычисляет максимальный элемент одномерного массива;
18. Вычисляет число элементов вектора, предшествующих его первому отрицательному элементу;

 

Вопросы для самоподготовки

1. Дайте понятие массива данных.

2. Как задаются элементы массива? Приведите примеры массивов.

3. Как можно объявить массив?

4. Какой тип переменных должен быть задан для элементов массива при работе с ячейками таблицы?

5. Как можно задать одномерный массив?

6. Опишите объект Range.

7. Какие виды форматов могут использоваться при адресации ячеек? Опишите эти форматы.

8. Для каких целей используется метод Offset ?

9. Как создать функцию с использованием команды главного меню VBA?

10. Какое свойство используется для подсчета элементов семейства?



ЛИТЕРАТУРА

 

1. Гарнаев А.Ю. Microsoft Excel 2002: Разработка приложений /А.Ю.Гарнаев. – СПб.: БХВ-Петербург, 2003. – 768с.

2. Гарнаев А.Ю. Microsoft Excel 2000: Разработка приложений /А.Ю.Гарнаев. – СПб.: БХВ-Петербург, 2000 – 576с.

3. Кнут Дональд Э. Искусство программирования. Основные алгоритмы: пер. с англ. / Дональд Э.Кнут. – М. : Издательский дом «Вильямс», 2000. – 720с.

4. Хальворсон Микаэл. Microsoft Visual Basic 6.0 для профессионалов. Шаг за шагом. Практ.пособие: пер. с англ. / Микаэл Хальворсон. – М.: Изд-во ЭКОМ, 2000.–720с.

5. Глушков С.В. Программирование в среде Windows: учебный курс / С.В.Глушков, В.В. Мельников, Сурядный А.С. – М.:Изд-во АСТ, 2000. – 487с.

6. Матросов А.В. MS Office XP: разработка приложений / А.В. Матросов – СПб.: БХВ , 2003. – 944с.


 

 

© Чубина Т.В.


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 264; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь