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

Информатика / VBA.Контрольный тест 5_6-5_7

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

Задание 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