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

Информатика / VBA.Контрольный тест 5_1-5_7(8 заданий)

.docx
Скачиваний:
199
Добавлен:
01.03.2016
Размер:
18.63 Кб
Скачать

Задание 1

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun1_1 (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле:

1-x^2

fun1_1 = ----------

2 - 3x

На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста. Дробная часть числа от целой отделяется запятой. Правильно 1 / 1

Решение:

Public Function fun1_1(x)

fun1_1 = (1 - x ^ 2) / (2 - 3 * x)

End Function

Задание 2

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5_1, которая вычисляет сумму S=1-2^3+3^3-...-n^3.

Заголовок функции, который должен иметь вид: Function fun5_1(n), уже создан в модуле 1, необходимо только записать тело процедуры.

На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста.

Правильно 1 / 1

Решение:

Public Function fun5_1(N As Integer)

Dim s As Double

Dim i As Integer

Dim z As Integer

s = 0

z = 1

For i = 1 To N

s = s + z * (i ^ 3)

z = -z

Next i

fun5_1 = s

End Function

Задание:

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun8_1, которая подсчитывает количество русских букв "а" и "е" в заданом тексте S.

Заголовок функции, который должен иметь вид: Function fun8_1(S As String), уже создан в модуле 1, необходимо только записать тело процедуры.

На листе 1 книги выполните функцию и полученное в ячейке B11 значение введите в ответ теста. Правильно 1 / 1

Решение:

Public Function fun8_1(s As String)

Dim i As Integer

Dim p As Integer

p = 0

For i = 1 To Len(s)

If Mid(s, i, 1) = "a" Then

p = p + 1

ElseIf Mid(s, i, 1) = "e" Then

p = p + 1

End If

Next i

fun8_1 = p

End Function

Задание:

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA с именем fun3_1 для нахождения из трех произвольных чисел A, B, C суммы двух найбольших чисел.

Заголовок функции, который должен иметь вид: Function fun3_1(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры.

На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста.

Правильно 1 / 1

Public Function fun3_1(a, b, c)

If a < b Then

fun3_1 = c + b

Else

If b < c Then

fun3_1 = c + a

Else

fun3_1 = b + a

End If

End If

End Function

Задание:

В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне L1:R4 активного Листа Excel находит наибольшее число. Результат процедура должна вернуть в ячейку B14.

Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры.

На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста.

Правильно 2 / 2

Решение:

Public Sub Proc1()

Dim a As Range, i As Variant, s As Double

Set a = Range("L1:R4")

Max = a(1, 1)

For Each i In a

If i > Max Then Max = i

Next i

Cells(14, 2).Value = Max

End Sub

Задание:

В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm2 (уже создана), которая на отрезке [m+20;n] находит сумму простых чисел. Результат должен быть получен в текстовом поле TextBox3 (Результат).

Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm2.

На листе 1 книги выполните форму UserForm2 и полученное в ячейке B19 значение введите в ответ теста.

Правильно 2 / 2

Решение:

Private Sub CommandButton1_Click()

M = Val(TextBox1.Text) + 20

N = Val(TextBox2.Text)

Dim i As Long, s As Double

s = 0

For i = M To N

If prostoe(i) = True Then s = s + i

Next i

TextBox3.Text = Format(s)

End Sub

Private Sub CommandButton2_Click()

UserForm2.Hide

End Sub

Public Function prostoe(ByVal N As Long) As Boolean

Dim i As Long

prostoe = True

If N > 1 Then

For i = 2 To Sqr(N)

If N Mod i = 0 Then

prostoe = False

Exit For

End If

Next i

Else

prostoe = False

End If

End Function

Задание:

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7_1, которая вычисляет количество простых чисел на отрезке [10..N].

Заголовок функции, который должен иметь вид: Function fun7_1(n), уже создан в модуле 1, необходимо только записать тело процедуры.

На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста. Правильно 1 / 1

Решение:

Public Function fun7_1(n As Long)

Dim s As Long

Dim i As Long

Dim str As String

s = 0

str = 0

For i = 10 To n

For j = 1 To i

If i Mod j = 0 Then

s = s + 1

End If

Next j

If s = 2 Then str = str + 1

s = 0

Next i

fun7_1 = str

End Function

Задание:

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию в модуле 1 с именем fun1_1 на VBA (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле:

(2x+1)^2

fun1_1 = ------------ - (x+2)^3

x+1

На листе 1 книги выполните функцию и полученное в ячейке B4 значение введите в ответ теста.

Правильно 1 / 1

Решение:

Public Function fun1_1(x As Double) As Double

fun1_1 = (((2 * x + 1) ^ 2) / (x + 1)) - ((x + 2) ^ 3)

End Function