Согласно приоритету операций, слева направо, с учетом скобок 4 страница



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

Решение:

Public Sub Proc2()

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

Set a = Selection

s = 0

For Each i In a

If i Mod 2 = 0 And i > 0 Then s = s + 1

Next i

Cells(15, 2).Value = s

End Sub

Ответ: 7

Задание 4

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

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

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

Решение:

Public Function fun10(a As Variant, k As Double)

Dim s As Double, i As Variant

c = 0

For Each i In a

If i Mod k = 0 Then s = s + i

Next i

fun10 = s

End Function

Ответ: 5

 

Задание 5

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

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

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

Решение:

Public Function fun9(a As Variant) As Double

Dim s As Double, i As Variant

s = 0

For Each i In a

If i > 0 Then s = s + i

Next i

fun9 = s

End Function

Ответ:25

Задание 7

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

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

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

Решение:

Public Sub Proc2()

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

Set a = Selection

s = 0

For Each i In a

If i Mod 2 = 0 And i < 0 Then s = s + i

Next i

Cells(15, 2).Value = s

End Sub

Ответ: -6

Задание 8:

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

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

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

Решение:

Public Function fun9(a As Variant) As Double

Dim s As Double, i As Variant

s = 0

For Each i In a

If i > 0 Then s = s + 1

Next i

fun9 = s

End Function

Ответ: 8

 

 

Задание 9:

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

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

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

Решение:

Public Sub Proc1()

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

Set a = Range("K1:N4")

s = 0

For Each i In a

If i < 0 Then s = s + i

Next i

Cells(14, 2).Value = s

End Sub

Ответ: -6

Задание 10:

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

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

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

Решение:

Public Sub Proc2()

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

Set a = Selection

Max = a(1, 1)

For Each i In a

If i > Max Then Max = i

Next i

Cells(15, 2).Value = Max

End Sub

Ответ: 140

 

Задание 1,2

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

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

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

Решение:

Открываем Userform2, 2 раза щёлкаем по кнопке Выполнить

Сначала пишем прогу для простых чисел

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

Потом пишем форму

Private Sub CommandButton1_Click()

m = Val(TextBox1.Text)

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

Нажимаем выполнить UserForm2 и, в появившемся окне, нажимаем на выполнить

Ответ: Сумма простых: 72

Если нужно найти количество, то вместо этого If prostoe(i) = True Then s = s + i, пишем If prostoe(i) = True Then s = s + 1

Ответ: Количество: 6

 

 

Задание 3,4.

В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm1 (уже создана), которая среди трех заданых в форме чисел A, B, C, задающих коэффициенты квадратного уравнения, находит сумму корней уравнения. Если корней не существует, возвращает сово "нет". Результат должен быть получен в текстовом поле TextBox4 (Результат).

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

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

Решение:

Private Sub CommandButton1_Click()

a = Val(TextBox1.Text)

b = Val(TextBox2.Text)

c = Val(TextBox3.Text)

Dim d As Double, x1 As Double, x2 As Double, s As Double

d = b ^ 2 - 4 * a * c

If d >= 0 Then

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

s = x1 + x2

TextBox4.Text = Format(s)

Else

TextBox4.Text = "Нет"

End If

End Sub

Ответ: 8

Если произведение корней, то вместо этого s = x1 + x2, пишем s = x1 * x2

Ответ: 15

 

 

Задание 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 значение введите в ответ теста.

Решение:

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 значение введите в ответ теста.

Решение:

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 значение введите в ответ теста.

Решение:

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 значение введите в ответ теста.

Решение:

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 значение введите в ответ теста.

Решение:

Public Function fun1_1(x As Double) As Double

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

End Function

 

Тест 5_1.

Вопрос 1

Каких типов данных не существует в языке VBA:

· variant

· case

· longint

· single

 

Вопрос 2

Определить значения следующего арифметического выражения на VBA:

 

26 \ 4 * 2 + 19 mod 3

 

Ответ: 14

Вопрос 3

Дана последовательность операторов VBA:

 

x = 12 mod 5

 

If x = 0 Then x = 2 ^ x - 1

 

If x > 1 Then y = x ^ 2

 

If x > 2 Then y = x + 2 / x - 1

Ответ: 4

 

4) Если значение переменной а равно 6, то какое значение получит переменная b при выполнении оператора:

 

Select Case a

 

Case 5

 

b = 1

 

Case 3 to 15

 

b = 2

 

Case Is > 5

 

b = 3

 

Case 2, 4, 6, 8, 10

 

b = 4

 

End Select

 

Ответ: 2

 

5) Функция Sqr(число) возвращает:

 

· квадратный корень из числа

· квадрат числа

· дробную часть числа

· целую часть числа

Вопрос 6

 

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

 

1-x^2

 

fun1 = ---------

 

2 - 3x

 

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

 

Решение:

Public Function fun1(x As Double) As Double

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

End Function

Ответ: -1

 

Вопрос 7.

 

В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию в модуле 1 с именем fun2 на VBA (вставьте нужные операторы в загововки уже созданной функции), которая вычисляет выражение по формуле: если x больше 0, то fun2=(1-2x)/(2+x), иначе fun2=Sin(3x)-1

 

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

 

Решение:

Public Function fun2(x As Double) As Double

If x > 0 Then

fun2 = (1 - 2 * x) / (2 + x)

Else

fun2 = Sin(x) * 3 - 1

End If

End Function

 

Ответ: -1,69

Вопрос 8

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

 

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

 

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

Решение:

Public Function fun3(a As Double, b As Double, c As Double) As Double

If a < c And b < c Then

fun3 = a * b

Else

If b < a And c < a Then

fun3 = b * c

Else

fun3 = a * c

End If

End If

End Function

 

Ответ: 26

Вопрос 9

 

В сложных выражениях операции выполняются по следующем правилам:

согласно скобок, а если их нет - слева направо

сначала числовые операции, затем строковые и последними - логические

от простых к сложным


Дата добавления: 2015-12-17; просмотров: 27; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!