Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР VBA_.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
513.02 Кб
Скачать

Вариант №29

Создайте рабочую книгу под именем, содержащим номер студенческой группы, вашу фамилию и номер варианта, например, ПГС-101 Петров (В.12).

Задание 1

Создать пользовательскую функцию, которая определяет среднее значение квадратов отрицательных элементов заданного диапазона. Исходные данные для тестирования задать самостоятельно. На рабочем листе Excel “Задание 1” создать таблицу, содержащую исходные данные и результаты вычисления.

Задание 2

Используя VBA, создать процедуру табулирования функции

для a = 0,75; 0,8; 0,85; 0,9; 0,95; 1; 1,1; 1,4; 1,5; 2,

где

пренебречь членами ряда, по абсолютному значению меньшими 10-7.

Командную кнопку для запуска процедуры и результаты выполнения представить на рабочем листе Задание2.

Задание 3

Сформировать на рабочем листе Задание3 одномерный массив, состоящий из положительных, отрицательных и нулевых элементов. Используя VBA, создать новый массив путем замены всех нулевых элементов исходного массива максимальным значением среди отрицательных элементов.

На рабочем листе Задание3 создать таблицу, содержащую результат выполнения процедуры, и командную кнопку для запуска процедуры.

Вариант №30

Создайте рабочую книгу под именем, содержащим номер студенческой группы, вашу фамилию и номер варианта, например, ПГС-101 Петров (В.12).

Задание 1

Создать пользовательскую функцию, которая определяет разность между наибольшим и наименьшим значениями элементов заданного диапазона. Исходные данные для тестирования задать самостоятельно. На рабочем листе Excel “Задание 1” создать таблицу, содержащую исходные данные и результаты вычисления.

Задание 2

Используя VBA, создать процедуру табулирования функции

для a = 0,25; 0,5; 0,75; 1; 1,5; 2; 2,5; 3; 4; 5; 6; 7,

где

пренебречь членами ряда, по абсолютному значению меньшими 10-6.

Командную кнопку для запуска процедуры и результаты выполнения представить на рабочем листе Задание2.

Задание 3

Сформировать на рабочем листе Задание3 одномерный массив, состоящий из положительных, отрицательных и нулевых элементов. Используя VBA, создать новый массив из индексов элементов исходного массива, значения которых меньше разности между максимальным элементом и средним значением элементов массива.

На рабочем листе Задание3 создать таблицу, содержащую результат выполнения процедуры, и командную кнопку для запуска процедуры.

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

Задание 1

Создать пользовательскую функцию, определяющую количество элементов меньших, чем сумма квадратов отрицательных элементов заданного диапазона. Исходные данные для тестирования задать самостоятельно. На рабочем листе Excel “Задание 1” создать таблицу, содержащую исходные данные и результаты вычисления.

Код программы:

Public Function Kol_vo(Диапазон As Object) As Integer

Dim elm As Object, s As Single

s = 0

For Each elm In Диапазон

If elm < 0 Then s = s + elm ^ 2

Next elm

Kol_vo = 0

For Each elm In Диапазон

If elm < s Then Kol_vo = Kol_vo + 1

Next elm

End Function

Результат выполнения:

Задание 2

Используя VBA, создать процедуру табулирования функции

для a = 0,51; 0,6; 0,75; 1,1; 1,4; 1,6; 1,75; 1,88; 2,

где

пренебречь членами ряда, по абсолютному значению меньшими 10-6.

Командную кнопку для запуска процедуры и результаты выполнения представить на рабочем листе Задание2.

Код программы:

Public Sub prog()

Dim a(1 To 9) As Single, z As Single, y As Single

Dim x As Single, sl As Single, i As Byte, n As Integer

y = 0

n = 0

x = 0.81

Do

sl = x ^ n / ((3 * x + 1) ^ (n + 1))

y = y + sl

n = n + 1

Loop Until Abs(sl) < 10 ^ (-6)

Range("c5") = y

For i = 1 To 9

a(i) = Cells(2, i + 2)

If a(i) <= 1.5 Then

z = a(i) * y + 3

Else

z = 3 * a(i) * y - a(i)

End If

Cells(3, i + 2) = z

Next i

End Sub

Результат выполнения:

Задание 3

Сформировать на рабочем листе Задание3 одномерный массив, состоящий из положительных, отрицательных и нулевых элементов. Используя VBA, создать новый массив, в котором переставлены местами k-й элемент исходного массива (k – задается) с первым элементом, имеющим значение больше 7.

На рабочем листе Задание3 создать таблицу, содержащую результат выполнения процедуры, и командную кнопку для запуска процедуры.

Код программы:

Public Sub prog2()

Dim a() As Single, b() As Single, d As Single

Dim n As Integer, i As Integer, k As Integer, m As Integer

n = Range("b3", Range("b3").End(xlDown)).Count

ReDim a(1 To n)

ReDim b(1 To n)

k = Range("d3")

For i = 1 To n

a(i) = Cells(i + 2, 2)

b(i) = a(i)

Next i

For i = 1 To n

If a(i) < 7 Then

m = i

Exit For

End If

Next i

d = b(m)

b(m) = b(k)

b(k) = d

For i = 1 To n

Cells(i + 2, 6) = b(i)

Next i

End Sub

Результат выполнения: