
Информатика / VBA.Контрольный тест 5_6-5_7
.docxЗадание 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